已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录1、需求分析12、设计思路13、算法设计13.1 概要设计13.1.1 程序中包含的模块13.1.2 模块间的调用关系23.2 详细设计24、测试分析94.1 主程序界面94.2 景点信息的查询104.3 最短路径查询115、总结116、参考文献127、附录121、需求分析设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。(1).设计潍坊学院校园平面图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2).为来访客人提供图中任意景点相关信息的查询。(3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。2、设计思路校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。3 算法设计3.1 概要设计 3.1.1 程序中包含的模块(1)主程序模块主函数:void main()打印菜单,景点,景点信息(2)查询模块景点信息查询:void introduce()最短路径查询:要查找的两景点的最短距离:int shortestdistance()用floyd算法求两个景点的最短路径:void floyd() (3)打印模块打印两个景点的路径及最短距离:void display(int i,int j)3.1.2模块间的调用关系主函数main()调用: void introduce()/*景点介绍*/int shortestdistance()/*要查找的两景点的最短距离*/ shorestdistance()调用: void floyd()/*用floyd算法求两个景点的最短路径*/void display(int i,int j) /* 打印两个景点的路径及最短距离 */3.2 详细设计/*定义符号变量/*#define INT_MAX 10000#define n 10/*定义全局变量*/int costnn;/* 边的值*/int shortestnn;/* 两点间的最短距离*/int pathnn;/* 经过的景点*/string M100;/*景点名称*/string J100;/*景点介绍*/*自定义函数原型说明*/void introduce();int shortestdistance();void floyd(); void display(int i,int j);定义各顶点之间的距离:for(i=0;i=n;i+) for(j=0;j10的数字编号!nn); break; 要查找的两个景点的最短距离:int shortestdistance() int i,j; printf(请输入要查询的两个景点的编号(1-10的数字编号并用,间隔):n); scanf(%d,%d,&i,&j); if(in|in|j10的数字编号并用,间隔):n); scanf(%d,%d,&i,&j); floyd(); display(i,j); else floyd(); display(i,j); return 1;用floyd算法求两个景点的最短路径:void floyd() int i,j,k; for(i=1;i=n;i+) for(j=1;j=n;j+) shortestij=costij; pathij=0; for(k=1;k=n;k+) for(i=1;i=n;i+) for(j=1;j(shortestik+shortestkj) /*用path记录从i到j的最短路径上点j的前驱景点的序号*/ shortestij=shortestik+shortestkj; pathij=k; pathji=k; 打印两个景点的路径及最短距离:void display(int i,int j) /* 打印两个景点的路径及最短距离 */ int a,b; a=i; b=j; printf(您要查询的两景点间最短路径是:nn); if(shortestij!=INT_MAX) if(ij) printf(%d,b); while(pathij!=0) /* 把i到j的路径上所有经过的景点按逆序打印出来*/ printf(-%d,pathij); if(ij) j=pathij; else i=pathji; printf(%d)最短距离是:%d百米nn,a,b,shortestab); else printf(%d,a); while(pathij!=0) /* 把i到j的路径上所有经过的景点按顺序打印出来*/ printf(-%d,pathij); if(i%d,b); printf(nn); printf(%d-%d)最短距离是:%d百米nn,a,b,shortestab); else printf(输入错误!不存在此路!nn); printf(n);4 测试分析 4.1 主程序界面 图1.主程序界面4.2 景点信息的查询 图2.景点信息的查询4.3 最短路径查询 图3.景点最短路径查询5 总结经过近两周的课程设计,总的来说收获还是很大的!首先代码能力明显提高,有了想法基本都能顺利表达出来;再者就是数据结构的选择使用能力也有了很大的提高!虽说平时的试验课我们也有用各种数据做题,但那些都是很明确的知道该做什么操作,存什么,我们的发挥空间不大一般照做就行,然而这次实习我们却在自主的选择判断,这本身就是一个很大的提高!还有就是算法方面的学习有了初步进阶,如最短路径,这样比较简单的图论算法能比较熟练的写出来。但是还是有很多的只是不了解!收获真的很多,但是最大的收获可能就是对编程的兴趣吧,在一次次的改错,一次次的完成想要的效果后,越写越有感觉!当然还收获了无知,更确切的说是自知,原来我们现在什么也不算,还有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于宾馆管理制度的规定(3篇)
- 安全改造项目管理制度范本(3篇)
- 2026广东广州生物医药与健康研究院数字生物医学研究中心招聘科研助理1人笔试参考题库及答案解析
- 2026重庆市铜梁区巴川街道福利院工作人员招聘2人(第二次)考试参考题库及答案解析
- 2026年吉安市青原区两山人力资源服务有限公司面向社会公开招聘2名超市店员参考考试题库及答案解析
- 2026年上半年云南省科学技术厅直属事业单位公开招聘人员(8人)参考考试题库及答案解析
- 2026春季江西赣州石城县西外公立幼儿园教职工招聘备考考试题库及答案解析
- 2026年临沂市市直部分事业单位公开招聘综合类岗位工作人员(21名)参考考试题库及答案解析
- 2026年度济南市章丘区所属事业单位公开招聘初级综合类岗位人员备考考试题库及答案解析
- 2026山东事业单位统考滨州市阳信县招聘30人备考考试题库及答案解析
- 2026年湖南师大附中双语实验学校(南校区)教师招聘备考题库完整参考答案详解
- 2026年广州市黄埔区穗东街招考编外服务人员易考易错模拟试题(共500题)试卷后附参考答案
- 2026湖南衡阳耒阳市公安局招聘75名警务辅助人员考试参考试题及答案解析
- 黑龙江高职单招语文试题附答案
- 高低压配电安装工程施工方案方案
- 2026年中国烟草专业知识考试题含答案
- 2026云南新华书店集团限公司公开招聘34人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年人教版八年级语文上册期末考试卷含答案
- 造纸业五年环保化:2025年竹浆环保再生纸行业报告
- GB/T 17587.2-2025滚珠丝杠副第2部分:公称直径、公称导程、螺母尺寸和安装螺栓公制系列
- 锅炉应急预案演练(3篇)
评论
0/150
提交评论