数据结构_校园导游系统课程设计.doc
《数据结构_校园导游系统课程设计.doc》由会员分享,可在线阅读,更多相关《数据结构_校园导游系统课程设计.doc(39页珍藏版)》请在三一办公上搜索。
1、数据结构_校园导游系统课程设计滨江学院数据结构课程设计 题 目 校园导游咨询程序设计 学 号 学生姓名 院 系 专 业 指导教师 二一二 年 月 日1、 题目的内容及要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。2、 需求分析(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 (3)为来访客人提供图中任意景点相关信息的查询。 3、概要设计1功能模块图;void CreateUDN();/创建无向
2、网void Search();/查询景点信息void Shortestpath(int i);/计算最短路径void Output(int sight1,int sight2);/输出函数2各个模块详细的功能描述。CreateUDN();/创建无向网、主要用来保存各景点信息Search();/查询景点信息、景点的名称及介绍Shortestpath(int i);/计算两景点间最短路径Output(int sight1,int sight2);/输出两景点最短路径及信息3.模块图4、 详细设计一、图的储存结构#define Max 30000#define NUM 10typedef struc
3、t ArcCell int adj; /*相邻接的景点之间的路程*/ArcCell;/*定义边的类型*/typedef struct VertexType int number; /*景点编号*/ char *sight; /*景点名称*/ char *description;/*景点描述*/VertexType; /*定义顶点的类型*/typedef struct VertexType vexNUM;/*图中的顶点,即为景点*/ ArcCell arcsNUMNUM;/*图中的边,即为景点间的距离*/ int vexnum,arcnum;/*顶点数,边数*/MGraph; /*定义图的类型二
4、、 算法1.主程序void main() int v0,v1; char ck; CreateUDN(NUM,11); do ck=Menu(); switch(ck) case 1: system(cls); / narrate(); printf(nnttt请选择起点景点(09):); scanf(%d,&v0); printf(ttt请选择终点景点(09):); scanf(%d,&v1); ShortestPath(v0); /*计算两个景点之间的最短路径*/ output(v0,v1); /*计算两个景点之间的最短路径*/ printf(nntttt请按任意键继续.n); getch
5、ar(); getchar(); break; case 2:search(); break; case 3: system(cls); /narrate(); x0=1; HaMiTonian(1); printf(nntttt请按任意键继续.n); getchar(); getchar(); break; ; while(ck!=e); 2. 输出程序void output(int sight1,int sight2) int a,b,c,d,q=0; a=sight2; if(a!=sight1) /*如果景点二不和景点一输入重合,则进行*/ printf(nt从%s到%s的最短路径是,
6、G.vexsight1.sight,G.vexsight2.sight);/*输出提示信息*/ printf(t(最短距离为 %dm.)nnt,Da); printf(t%s,G.vexsight1.sight); d=sight1; /*将景点一的编号赋值给d*/ for(c=0;cNUM;+c) gate:; Pasight1=0; for(b=0;bNUM;b+) if(G.arcsdb.adj%s,G.vexb.sight); /*输出此节点的名称*/ q=q+1; /*计数变量加一,满8控制输出时的换行*/ Pab=0; d=b; /*将b作为出发点进行下一次循环输出,如此反复*/
7、if(q%9=0) printf(n); goto gate; 3. 求最短路径 void ShortestPath(int num) int v,w,i,t; int finalNUM; int min; for(v=0;vNUM;v+) finalv=0; Dv=G.arcsnumv.adj; for(w=0;wNUM;w+) Pvw=0; if(Dv30000) Pvnum=1; Pvv=1; Dnum=0; finalnum=1; for(i=0;iNUM;+i) min=Max; for(w=0;wNUM;+w) if(!finalw) if(Dwmin) v=w; min=Dw;
8、finalv=1; for(w=0;wNUM;+w) if(!finalw&(min+G.arcsvw.adj)Dw) Dw=min+G.arcsvw.adj; for(t=0;tNUM;t+) Pwt=Pvt; Pww=1; 4. 说明函数void narrate() int i,k=0; printf(ntt*欢迎使用校园导游程序*n); printf(ntt*南京信息工程大学*n); printf(t_n); printf(tt景点名称tt|t景点描述n); printf(t_|_n); for(i=0;iNUM;i+) printf(t (%2d)%-10sttt|t%-25sn,i,
9、G.vexi.sight,G.vexi.description); k=k+1; printf(t_|_n);5、查询景点信息void search() int num; int i; char c; char name20; do system(cls); c=SearchMenu(); switch (c) case 1: system(cls); narrate(); printf(nntt请输入您要查找的景点编号:); scanf(%d,&num); for(i=0;iNUM;i+) if(num=G.vexi.number) printf(nnttt您要查找景点信息如下:); pri
10、ntf(nnttt%-25snn,G.vexi.description); printf(nttt按任意键返回.); getchar(); getchar(); break; if(i=NUM) printf(nnttt没有找到!); printf(nnttt按任意键返回.); getchar(); getchar(); break; case 2: narrate(); system(cls); printf(nntt请输入您要查找的景点名称:); scanf(%s,name); for(i=0;iNUM;i+) if(!strcmp(name,G.vexi.sight) printf(nn
11、ttt您要查找景点信息如下:); printf(nnttt%-25snn,G.vexi.description); printf(nttt按任意键返回.); getchar(); getchar(); break; if(i=NUM) printf(nnttt没有找到!); printf(nnttt按任意键返回.); getchar(); getchar(); break; while(c!=t);6. 选择菜单char SearchMenu() char c; int flag; do flag=1; system(cls); narrate(); printf(ntttn); printf
12、(ttt n); printf(ttt 1、按照景点编号查询 n); printf(ttt 2、按照景点名称查询 n); printf(ttt t、返回 n); printf(ttt n); printf(tttn); printf(tttt请输入您的选择:); scanf(%c,&c); if(c=1|c=2|c=t) flag=0; while(flag); return c;5、运行结果及分析系统主界面查询路径查询信息6、收获及体会 非常高兴能和同学们一起做实验,感谢各位老师以及同学们对我的帮助,特别是老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次数据结构设计的每个实验细节和每
13、个数据,都离不开老师您的细心指导。7、源代码#include string.h#include stdio.h#include malloc.h#include stdlib.h#define Max 30000#define NUM 10typedef struct ArcCell int adj; ArcCell;typedef struct VertexType int number; char *sight; char *description;VertexType; typedef struct VertexType vexNUM; ArcCell arcsNUMNUM; int v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 校园 导游 系统 课程设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4264455.html