




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学计算机科学与技术学院实验三:校园导游咨询一、 设计方案简介设计一个校园导游程序,为来访的客人提供各种信息查询服务。1)设计你所在学校的校园平面图,2)为来访客人提供图中任意景点相关信息的查询。3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。二、 设计题目实现:实际需求1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息:以边表示路径,存放路径长度等相关信息。2)为来访客人提供图中任意景点相关信息的查询。3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。2)概要设计1、 校园全景一览图、显示出校园的平面图。2、 提供校园中任意景点问路查询,即求任意两个景点之间的所有路径。3、提供校园图中多个景点的最佳访问路线查询,即求途径这过个景点的最佳(短)路径。1功能模块图;void map();/校园地图void creategraph();/创建图void outputplace();/输出景点列表void searchplace();/查询景点信息void searchpath();/查询最短路径void shortpath(int i);/计算最短路径void output(int sight1,int sight2);/输出函数2各个模块详细的功能描述。map();/显示校园整体的地图、包含学校各景点的详细位置creategraph();/创建图、主要用来保存各景点信息outputplace();/输出景点列表、供选择景点信息查询时使用searchplace();/查询景点信息、景点的名称及介绍searchpath();/查询最短路径、两景点间最短距离shortpath(int i);/计算两景点间最短路径output(int sight1,int sight2);/输出两景点最短路径及信息四详细设计main()1功能函数的调用关系图 creategraph() searchplace() map() searchpath()outputplace()shortpath(i);output(i,j);2各功能函数的数据流程图全局变量graph g;int pathnumnum;int dnum;3 重点设计及编码 重点设计:求最短路径 编码:void shortpath(int num)/迪杰斯特拉算法最短路径 int v,w,i,t;/i、w和v为计数变量/t表示景点个数int finalnum; /标志数组、用来存放顶点的信息int min;/记录权值、最终输出路径for(v=0;vnum;v+)finalv=0; /假设从顶点num到顶点v没有最短路径dv=g.arcnumv.length;/将num到其余顶点的最短路径长度初始化为权值for(w=0;wnum;w+) pathvw=0;/初始化从v到w的路径值if(dvmax) /存在路径pathvnum=1; /存在标志置为一pathvv=1; /自身到自身dnum=0;/初始化新路径 finalnum=1; /初始化num顶点属于final集合 /开始主循环,每一次求得num到某个顶点的最短路径,并将其加入到final集合 for(i=0;inum;+i) / 其余g.vexnum-1个顶点 min=max; /当前所知离顶点num的最近距离for(w=0;wnum;+w)if(!finalw) /w顶点在v-s中 if(dwmin) /w顶点离num顶点更近 v=w;min=dw; finalv=1; /离num顶点更近的v加入到s集合 for(w=0;wnum;+w) /更新当前最短路径极其距离 if(!finalw&(min+g.arcvw.length)dw)/不在s集合,并且比以前所找到的路径都短就更新当前路径 dw=min+g.arcvw.length;/更新路径for(t=0;tnum;t+)pathwt=pathvt;pathww=1;void output(int sight1,int sight2) / 输出函数 int a,b,c,d,q=0;/a、b、c和d为计数变量/q控制计数变量、用于换行a=sight2; /将景点二赋值给a if(a!=sight1) / 如果景点二不和景点一输入重合,则进行. printf(tttttt从%s到%s的最短路径是:nnttttt,g.,g.);/输出提示信息/输出sight1到sight2的最短路径长度,存放在d数组中printf(t%s,g.); /输出景点一的名称 d=sight1; /将景点一的编号赋值给dfor(c=0;cnum;+c)gate:; /标号,可以作为goto语句跳转的位置 pathasight1=0; for(b=0;bnum;b+) if(g.arcdb.length%s,g.); /输出此节点的名称 q=q+1; /计数变量加一,满8控制输出时的换行 pathab=0; d=b; /将b作为出发点进行下一次循环输出,如此反复 if(q%14=0) printf(n); goto gate; printf(nntttttt最短距离为 %dm.nnt,da); 五测试数据及运行结果系统主界面学校平面图学校景点图最短路径信息查询异常信息三、 设计评述:设计者对本设计的评述及通过设计的收获体会1 改进方案系统还有部分漏洞未能修复、不够绝对的稳定、还需改进!求最短路径时可以采用比较简单的哈密尔顿算法。 本次课程设计仅完成了要求的基本功能、由于平时掌握的不够好以及时间关系未能完成选作功能、这是一大缺陷!另外通过本次课程设计也更好的掌握了平时所学的知识、通过实践学到了许多课本上没有的知识!2 体会以后要加强动手时间能力、多与同学交流算法精髓!在编写程序中尽量做到独立完成、对于自己想要完成的问题要主动编程完成、这样自己是一个很大的提升、也能学到很多的知识、熟练编程!报告最后有两部分附录附录一:参考资料1、c语言程序设计(谭浩强版)2、数据结构(c语言版) 编著:严蔚敏、吴伟民 清华大学出版社附录二:源程序 (将所有的源程序附在最后的附录中)/ 查询景点信息.cpp : defines the entry point for the console application./#include stdafx.h#include stdio.h#include #include #include #include #include #define num 20#define max 100000#define false 0#define ture 1typedef struct arcnode int length; /路径长度 arcnode, *arclink; /边结点的定义typedef struct vertexnode int number; /景点的编号 char *name; /景点的名称 char *info; /景点的简介 vertexnode; /顶点结点的定义typedef struct graph vertexnode vertexnum; arcnode arcnumnum; int vexnum,arcnum; /图的顶点数,边数 graph; /图的定义graph g;int pathnumnum;int dnum;void creategraph();/创建图void map();/学校地图void outputplace();/输出校园景点名称void searchplace();/查询景点信息void searchpath();/查询最短路径void shortestpath_dij(int num);/迪杰斯特拉算法最短路径void output(int sight1,int sight2);/输出函数void creategraph()/创建图int i,j;g.vexnum=12;g.arcnum=17;for(i=1;inum;i+) g.vertexi.number=i;g.=太原理工大学正门;g.=学校正门位于学校的正南方向、是进入学校前的第一道亮丽ntt的风景线!n;g.=电机馆;g.=电机馆是数学系,电子信息系,自动化,通讯等学院的学院楼!n;g.=科学楼;g.=科学楼是我校科研机构场所,也是山西省网关所在地!n;g.=多学科楼;g.=科学楼是计算机科学与技术学院,软件学院,电子信息学院,ntt土木,建筑的学院楼,也是我校最好的学院楼!n;g.=图书馆;g.=太原理工图书馆经历了初创时期,发展时期,面向现代化的转型时期。ntt如今,她已经发展成为资源丰富,现代化,综合性,开放式的图书馆!n;g.=机械馆;g.=机械馆是我校百年高校最有力的体现!ntt是欧式风格建筑,外观宏伟气派ntt为机械学院的学院楼!n;g.=篮球场;g.=篮球场全橡胶场,每天这里打球人员特多,我校篮球队ntt在历年的cuba联赛上取得佳绩,是我们引以为豪的校队!n;g.=清泽餐厅;g.=清泽餐厅是我校最现代化的食堂,提供各种美食!n;g.=学生宿舍;g.=这里是我校学生宿舍集中所在地,包括本科生,研究生宿舍,ntt是我们在学校的家!n;g.=文体中心;g.=文体中心包括体育馆,体育场,各种体育娱乐场所,供学生ntt体育锻炼的地方!n;g.=国际交流中心;g.=国际交流中心是外国留学生居住学习科研的场所!n;for(i=0;inum;+i)for(j=0;j0 & num=g.vexnum) /判定信息输入正确for(i=1;i11):); scanf(%d,&i); printf(tt最终景点编号(1-11):); scanf(%d,&j); getchar();if(ig.vexnum | ig.vexnum | j0 | i=j) printf(tt输入信息错误!nn); else shortestpath_dij(i);output(i,j);printf(ntt是否继续查询最短路径(y/n):);c=getchar(); getchar(); system(cls);void shortestpath_dij(int num)/迪杰斯特拉算法最短路径int v,w,i,t;/i、w和v为计数变量/t表示景点个数int finalnum; /标志数组、用来存放顶点的信息int min;/记录权值、最终输出路径for(v=0;vnum;v+)finalv=false; /假设从顶点num到顶点v没有最短路径dv=g.arcnumv.length;/将num到其余顶点的最短路径长度初始化为权值for(w=0;wnum;w+) pathvw=false;/初始化从v到w的路径值if(dvmax) /存在路径pathvnum=ture; /存在标志置为一pathvv=ture; /自身到自身dnum=0;/初始化新路径 finalnum=ture; /初始化num顶点属于final集合 /开始主循环,每一次求得num到某个顶点的最短路径,并将其加入到final集合 for(i=0;inum;+i) / 其余g.vexnum-1个顶点 min=max; /当前所知离顶点num的最近距离for(w=0;wnum;+w)if(!finalw) /w顶点在v-s中 if(dwmin) /w顶点离num顶点更近 v=w;min=dw; finalv=ture; /离num顶点更近的v加入到s集合 for(w=0;wnum;+w) /更新当前最短路径极其距离 if(!finalw&(min+g.arcvw.length)dw)/不在s集合,并且比以前所找到的路径都短就更新当前路径 dw=min+g.arcvw.length;/更新路径for(t=0;tnum;t+)pathwt=pathvt;pathww=ture;void output(int sight1,int sight2)/输出函数 int a,b,c,d,q=0;/a、b、c和d为计数变量/q控制计数变量、用于换行a=sight2; /将景点二赋值给a if(a!=sight1) / 如果景点二不和景点一输入重合,则进行. printf(tt从%s到%s的最短路径是:nntt,g.,g.);/输出提示信息/输出sight1到sight2的最短路径长度,存放在d数组中printf(%s,g.); /输出景点一的名称 d=sight1; /将景点一的编号赋值给dfor(c=0;cnum;+c)gate:; /标号,可以作为goto语句跳转的位置 pathasight1=false; for(b=0;bnum;b+) if(g.arcdb.length%s,g.); /输出此节点的名称 q=q+1; /计数变量加一,满8控制输出时的换行 pathab=false; d=b; /将b作为出发点进行下一次循环输出,如此反复 if(q%12=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三基培训知识点归纳初中课件
- 2025-2030中国小型电动物流车行业运营效益与竞争格局分析报告
- 民俗文化面试问题及答案精 编
- 昆明工业职业技术学院单招《数学》考试历年机考真题集附答案详解【黄金题型】
- 中职检验面试常见问题及答案解析
- 小儿蓝光课件
- 大班公开课科学教案
- 初中书面表达主题分类训练10篇-人物介绍
- 大学生校园游戏文化节活动策划书
- 大学生师范专业实习心得体会
- 水电站安全生产应急预案
- 2025年采购人员考试题库及答案
- 造林更新工职业技能等级评价理论知识考试测试题含答案(F卷)
- 派出所户籍人口管理课件
- 省政府顾问管理办法
- 医院投诉处理课件
- 2025年华住储备干部考试题库
- 防暑降温安全知识培训
- 美容院店长培训
- 肩袖损伤诊断与治疗
- GB/T 45817-2025消费品质量分级陶瓷砖
评论
0/150
提交评论