校园导游课程设计 毕业论文 .docVIP

  • 18
  • 0
  • 约8.85千字
  • 约 23页
  • 2017-04-03 发布于辽宁
  • 举报
校园导游课程设计 毕业论文

校园导游课程设计 一、问题描述用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。 基本要求查询各景点的相关信息;查询图中任意两个景点间的最短路径查询图中任意两个景点间的所有路径增加、删除、更新有关景点和道路的信息。 选作内容①求多个景点的最佳(最短)游览路径。 区分机动车道和人行道。 实现导游图的仿真界面。struct message { int num;//景点代码 char name[100];//景点名称 char pro[500];//简介 }Ciceroni; Ciceroni school[10]={{1,行政楼\n},{2,食堂\n},{3,赛博楼,信息分院办公室所在地\n},{4,求是楼,实验楼计算机中心\n},{5,格致楼,法学管理学院}, {6,工程实习中心,金工实习\n},{7,仰仪楼,机电计测分院\n},{8,体育馆,旁边有篮球场`足球场`还有网球场\n},{9,一号教学楼,主要以阶梯教室为主\n},{10,二号教学楼,小教室为多\n}}; /*景点名称和简介*/ 操作: /*给景点之间的路径赋最大值*/ /*最短路径的C语言函数*/ /*输出最短路径和最短距离函数*/ /*输入景点代码查景点名称和简介*/ /*输入景点代码查到其它景点的最短距离*/ 四、需求分析: 现在大多数学校由于不断扩张,造成学校面积大而造成人们人出游困难的问题 ,人们如果不熟悉该地点。找到一个地方就会很困难,然而如果有一个校园导游系统,人们出行就会方便很多。 五、概要设计: 用图的算法进行构造,用链表建立无向图,然后再用深度优先遍历进行搜索,查找所需的路径。再用弗洛伊德算法求出两个景点之间的最短路径。 系统结构图: 六、详细设计: 浏览学校全景:用数组存放这个学校的全部景点,再通过遍历数组打印出学校的所有景点及其信息。 寻找最短路径:利用佛洛伊德算法,在两个节点之间设置节点通过对比权值大小,找出权值最小的路径,即为所求路径。 增加项目:在链表中增加一个元素,调整元素指针指向该元素,将该元素的指针指向后一个元素。 删除项目:在链表中删除一个元素,将该元素前面的元素指针断开指向该元素后的元素,再将该元素的指针断开。 七、程序源代码: #includestdio.h #includeiostream #includestdlib.h #includestring.h #define N 100 //服务个数最大100 #define Road 1000 //定义路径为1000 int Num=9; //目前服务个数 using namespace std; typedef struct Elemtype { char name[30]; char number[10]; char introduce[200]; }Elemtype; typedef struct Place { int num; //位置序号 Place *next; Elemtype date; //服务信息 }Place; //定义服务 typedef struct MGraph { Place place; int legs[N][N]; //存放路径长 }MGraph; MGraph MGr; //全局变量,定义MGr为MGraph类型 int shortest[N][N]; //定义全局变量存贮最小路径 int path[N][N]; //定义存贮路径 Place *p; void init(Place *head) //定义服务位置 { Place *p,*q; head=(Place *)malloc(sizeof(Place)); head-next=NULL; q=head; p=(Place *)malloc(sizeof(Place)); p-num=1; strcpy(p-date.name,锦绣); strcpy(p-date.number,1); strcpy(p-date.introduce,又称一教,是学校主要教学楼之一,位于春华路与校园西路交叉口西北150米(来自高德地图),是同学们上课的主要场所之一); p-next=q-next; q-next=p; q=p; p=(Place *)malloc(sizeof(Place)); p-num=2; strcpy(p-date.name,丹青); str

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档