




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用标准力然Q分娉滨江学院数据结构课程设计题 目 校园导游咨询程序设计学 号学生姓名院 系专 业指导教师二0一二年 月 日1、题目的内容及要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。2、需求分析(1)设计你的学校的校园平面图,所含景点不少于 io个。以图中顶点表示学校各景点,存 放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简 单路径。(3)为来访客人提供图中任意景点相关信息的查询。3、概要设计void CreateUDN();/ 创建无向网void Search。;/查询景点信
2、息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 struct ArcCellint adj;
3、/*相邻接的景点之间的路程*/ArcCell; /* 定义边的类型 */typedef struct VertexTypeint number; /* 景点编号 */char *sight; /*景点名称*/char "description;/*景点描述*/VertexType; /*定义顶点的类型 */ typedef structVertexType vexNUM; /*图中的顶点,即为景点 */ArcCell arcsNUMNUM;/* 图中的边,即为景点间的距离*/int vexnum,arcnum;/* 顶点数,边数 */ MGraph; /* 定义图的类型二、算法1 .
4、主程序 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请选择终点景点(。9):");scanf("%d",&v1);ShortestPath(v0);/*计算两个景点之间的最短
5、路径*/output(v0,v1);/*计算两个景点之间的最短路径*/printf("nntttt请按任意键继续n");getchar();getchar();break; |case '2':search();break;case '3':system("cls");/narrate。;x0=1;HaMiTonian;printf("nntttt请按任意键继续n");getchar(); getchar(); break; | ;while(ck!='e');2 .输出程序void o
6、utput(int sight1,int sight2)int a,b,c,d,q=0;a=sight2;if(a!=sight1)/* 如果景点二不和景点一输入重合,则进行 */ printf("nt从 s 到 s 的 最 短 路 径 是”,G.vexsight1.sight,G.vexsight2.sight);/*输出提示信息*/printf("t( 最短距离为 %dm.)nnt",Da);printf("t%s",G.vexsight1.sight);d=sight1; /*将景点一的编号赋值给d */for(c=0;c<NUM;
7、+c) gate:;Pasight1=0;for(b=0;b<NUM;b+)if(G.arcsdb.adj<30000&&Pab)/*如果景点一和它的一个临界点之间存在路径且最短路径*/printf("->%s",G.vexb.sight); /*输出此节点的名称 */q=q+1; /*计数变量加一,满 8控制输出时的换行*/Pab=0;d=b;/* 将b作为出发点进行下一次循环输出,如此反复*/if(q%9=0) printf("n");goto gate;匚3 .求最短路径void ShortestPath(int
8、num) int v,w,i,t;int finalNUM;int min;for(v=0;v<NUM;v+) -| finalv=0;Dv=G.arcsnumv.adj;for(w=0;w<NUM;w+)Pvw=0;if(Dv<30000)Pvnum=1;Pvv=1;Dnum=0;finalnum=1;for(i=0;i<NUM;+i)min=Max;for(w=0;w<NUM;+w)if(!finalw)if(Dw<min)1v=w;min=Dw;finalv=1;for(w=0;w<NUM;+w)if(!finalw&&(min+
9、G.arcsvw.adj)<Dw)二 ZlDw=min+G.arcsvw.adj;for(t=0;t<NUM;t+)Pwt=Pvt;Pww=1;二 口4 .说明函数 void narrate()'int i,k=0;printf("ntt*欢迎使用校园导游程序*n)printf("ntt*南京信息工程大学*n");printf("tn");printf("皿景点名称tt|t 景点描述n");printf("t|n");for(i=0;i<NUM;i+)printf("t
10、(%2d)%-10sttt|t%-25sn",i,G.vexi.sight,G.vexi.description);k=k+1; printf("t|n");5、查询景点信息void search()int num;int i;char c;char name20;dosystem("cls");c=SearchMenu();switch (c)case '1':system("cls");narrate();printf("nntt请输入您要查找的景点编号:");scanf("
11、%d",&num);for(i=0;i<NUM;i+)if(num=G.vexi.number)printf("nnttt您要查找景点信息如下 :”);printf("nnttt%-25snn",G.vexi.description);printf("nttt按任意键返回.”);getchar();getchar();break;if(i=NUM)printf("nnttt没有找到!");printf("nnttt按任意键返回.”);getchar();getchar();break;case
12、9;2':narrate。;system("cls");printf("nntt请输入您要查找的景点名称:");scanf("%s",name);for(i=0;i<NUM;i+)if(!strcmp(name,G.vexi.sight)printf("nnttt您要查找景点信息如下:”);printf("nnttt%-25snn",G.vexi.description);printf("nttt按任意键返回.”);getchar();getchar();break;二匚 if(i
13、=NUM) printf("nnttt没有找到! ");printf("nnttt按任意键返回.”);getchar();getchar(); break;while(c!='t'); |6.选择菜单char SearchMenu()char c;int flag;doflag=1;system("cls");narrate();printf("nttt n");printf("ttt11 n");printf("tttI 1、按照景点编号查询1 n");printf(
14、"tttI 2、按照景点名称查询1 n");printf("tttI t、返回1 n");printf("ttt11 n");printf("ttt11n");printf("tttt请输入您的选择:");scanf("%c",&c);if(c='1'|c='2'|c='t')|flag=0;while(flag);return c;5、运行结果及分析系统主界面1昔甘:1;111甘:1国11 葡帧:1前南京信息"
15、;|"程大学1(:1*1«)011 "1甘有蔺1景点名称f 景点描述大耆学东气体大7 7 7 70 12 3馆堂 书江4爸 图演综需要 7 7 7 7,7 4 S 6 7 8 9 <<££££书图室室阅患 普普闲休 ,:球. 览rvp挈占工痈 ,曼塞 询W出 查查普请输入您的选择:.查询路径请选择起点意点3)i, 4请选靠终点熹点耳“ 1 8从图书馆到新食堂的最短路径是最短距离为21丽C图书馆一 老食堂一 新食堂请按任意键继续-(T); H(09): 9从新食堂到文园的最短路径是工最簿距离为I*-新食堂一, 文园
16、请按任意键继续.查询信息大家,东气体大> > > >0 12 3< < < <活动中心馆营呈堂书江合食食园图滨综老要>>>>>>4 5 6 7 8 9请输入您要查找的景点编号13您要查找景点信息如下: 竞赛、晚会举办地按任意键返回6、收获及体会非常高兴能和同学们一起做实验,感谢各位老师以及同学们对我的帮助,特别是老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次数据结构设计的每个实验细节和每个数据,都离不开老师您的细心指导。7、源代码#include "string.h"#includ
17、e "stdio.h"#include "malloc.h"#include "stdlib.h"#define Max 30000#define NUM 10typedef struct ArcCell int adj;ArcCell;typedef struct VertexTypeint number;char *sight;char "description;VertexType;typedef structVertexType vexNUM;ArcCell arcsNUMNUM;int vexnum,arcnum;
18、MGraph;MGraph G;int PNUMNUM;long int DNUM;int x9=0;void CreateUDN(int v,int a);void narrate();void ShortestPath(int num);void output(int sight1,int sight2);char Menu();void search();char SearchMenu();void HaMiTonian(int);void NextValue(int);void display。;void main()int v0,v1;char ck;CreateUDN(NUM,11
19、);dock=Menu();switch(ck)case '1':system("cls");/ narrate。;printf("nnttt请选择起点景点(09):");scanf("%d",&v0);printf("ttt请选择终点景点(09):");scanf("%d",&v1);ShortestPath(vO);output(v0,v1);printf("nntttt请按任意键继续n");getchar();getchar();brea
20、k;case '2':search();break;case '3':system("cls");/narrate。;x0=1;HaMiTonian;printf("nntttt请按任意键继续n");getchar();getchar();break;while(ck!='e');char Menu()char c;int flag;doflag=1;system("cls");narrate。;printf("ntttn");printf("ttt|1 n
21、");printf("ttt|1、查询景点路径1 n");printf("ttt|2、查询景点信息1 n");printf("ttt|3、推荐参观路线1 n");printf("ttt| t 、退出1 n");printf("ttt|1 n");printf("ttt11n");printf("tttt请输入您的选择:");scanf("%c",&c);if(c='1'|c='2'|c=
22、'3'|c='t')flag=0;while(flag);return c;char SearchMenu()char c;int flag;doflag=1;system("cls");narrate。;printf("nttti n");printf("ttt11 n");printf("ttt11、按照景点编号查询I n");printf("ttt12、按照景点名称查询I n");printf("tttt 、返回n");printf(&q
23、uot;ttt11 n");printf("ttt11n");printf("tttt请输入您的选择:");scanf("%c",&c);if(c='1'|c='2'|c='t')flag=0;while(flag);return c;void search()int num;int i;char c;char name20;dosystem("cls");c=SearchMenu();switch (c)case '1':syste
24、m("cls");narrate。;printf("nntt请输入您要查找的景点编号:");scanf("%d",&num);for(i=0;i<NUM;i+)if(num=G.vexi.number)printf("nnttt您要查找景点信息如下:");printf("nnttt%-25snn",G.vexi.description);printf("nttt按任意键返回 ”力getchar();getchar();break;if(i=NUM)printf("
25、;nnttt没有找到!");printf("nnttt按任意键返回.”);getchar();getchar();break;case '2':narrate。;system("cls");printf("nntt请输入您要查找的景点名称:");scanf("%s",name);for(i=0;i<NUM;i+) if(!strcmp(name,G.vexi.sight)printf("nnttt您要查找景点信息如下:”);printf("nnttt%-25snn"
26、;,G.vexi.description);printf("nttt按任意键返回 ”力getchar();getchar();break;if(i=NUM)printf("nnttt没有找到!");printf("nnttt按任意键返回.”);getchar();getchar();break;while(c!='t');void CreateUDN(int v,int a)int i,j;G.vexnum=v;G.arcnum=a;for(i=0;i<G.vexnum;+i) G.vexi.number=i;G.vex0.sigh
27、t="东大门"G.vex0.description="学校正门。"G.vex1.sight="气象楼"G.vex1.description="校气象研究楼。"G.vex2.sight="体育馆"G.vex2.description="运动,放松心情"G.vex3.sight="大学生活动中心"G.vex3.description="竞赛、晚会举办地"G.vex4.sight="图书馆"G.vex4.descripti
28、on="阅览,借阅图书"G.vex5.sight="滨江楼"G.vex5.description="学习,自习室"G.vex6.sight="综合楼"G.vex6.description="学习,办公室"G.vex7.sight="老食堂"G.vex7.description="餐饮休闲"G.vex8.sight="新食堂"G.vex8.description="餐饮休闲"G.vex9.sight="文园&
29、quot;G.vex9.description="宿舍,休息";for(i=0;i<G.vexnum;+i)for(j=0;j<G.vexnum;+j)G.arcsij.adj=Max;G.arcs01.adj=G.arcs10.adj=2;G.arcs02.adj=G.arcs20.adj=1;G.arcs03.adj=G.arcs30.adj=7;G.arcs14.adj=G.arcs41.adj=8;G.arcs24.adj=G.arcs42.adj=9;G.arcs35.adj=G.arcs53.adj=5;G.arcs57.adj=G.arcs75.a
30、dj=2;G.arcs46.adj=G.arcs64.adj=3;G.arcs47.adj=G.arcs74.adj=2;G.arcs68.adj=G.arcs86.adj=2;G.arcs78.adj=G.arcs87.adj=1;G.arcs89.adj=G.arcs98.adj=1;void narrate()int i,k=0;printf("ntt* printf("ntt*欢迎使用校园导游程序*n)MT信息工程入学*n");printf("tn");printf("tt景点名称tt|t景点描述n");printf
31、("t|n");for(i=0;i<NUM;i+)printf("t(%2d)%-10sttt|t%-25sn",i,G.vexi.sight,G.vexi.description);k=k+1;printf("t|n");void ShortestPath(int num)int v,w,i,t;int finalNUM;int min;for(v=0;v<NUM;v+)finalv=0;Dv=G.arcsnumv.adj;for(w=0;w<NUM;w+)Pvw=0;if(Dv<30000)Pvnum=1;Pvv=1;Dnum=0;finalnum=1;for(i=0;i<NUM;+i)min=Max;for(w=0;w<NUM;+w)if(!finalw) if(Dw<min)v=w;min=Dw;finalv=1;for(w=0;w<NUM;+w)if(!finalw&&(min+G.arcsvw.adj)<Dw)Dw=min+G.arcsvw.adj;for(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瓷砖填缝剂课件
- 高校青年教师帮扶-结对协议书8篇
- 诗歌阳光课件
- IT科技创新项目计划
- 软件服务协议软件使用与更新政策
- 7月医药卫生习题及答案
- 爆竹点燃物理知识培训课件
- 目的论视角下英剧《神探夏洛克》的字幕汉译研究
- 2025及未来5年中国VGA分屏器市场调查、数据监测研究报告
- 2025及未来5年中国酥枣市场调查、数据监测研究报告
- 石油化工课件
- 6.1正视发展挑战 课件 2025-2026学年度道德与法治九年级上册 统编版
- 2025年气管插管术考试题及答案
- 2025年自考考英语二试题及答案
- 放射性药品及辐射安全考核试题及答案
- 2025至2030中国垃圾袋行业发展趋势分析与未来投资战略咨询研究报告
- 兼职教练聘用协议
- 苏轼《临江仙·夜归临皋》课件
- 2025年中国财税科技服务行业市场全景分析及前景机遇研判报告
- 涉密人员岗前知识培训课件
- 社会工作者考试题库及答案
评论
0/150
提交评论