数据结构课程设计校园导航

上传人:ni****g 文档编号:509146142 上传时间:2022-11-18 格式:DOC 页数:17 大小:322.50KB
返回 下载 相关 举报
数据结构课程设计校园导航_第1页
第1页 / 共17页
数据结构课程设计校园导航_第2页
第2页 / 共17页
数据结构课程设计校园导航_第3页
第3页 / 共17页
数据结构课程设计校园导航_第4页
第4页 / 共17页
数据结构课程设计校园导航_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据结构课程设计校园导航》由会员分享,可在线阅读,更多相关《数据结构课程设计校园导航(17页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课程名称数据结构课程设计题目校园导航指导教师设计起始日期5.95.16学院系别学生姓名班级/学号成绩需求分析本次实验设计的任务是实现一个简易的北京信息科技大学的校园导航平面图。设计要包括下列要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。本课题实现校园多个场所(至少10个)的最短路径求解。(1)输入的形式和输入值的范围:本系统主要数据类型为字符型char及整形int,char型主要包括单位编号,单位名称,单位简介,功能编号;输入功能编号与单位编号进行操作。(2)输出的形式:输出则通

2、过已有的信息数据,通过相关的操作输出相应信息。(3) 程序所能达到的功能:本程序可供任何人使用,主要功能1浏览各单位及简介;2. 查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看某一单位信息。(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。a.首先看到的是校园导航系统的菜单:北京信息科技大学大学导游图地直的简路目和息占m游点信岀景系浏查选查退12345iption2b.查看浏览路线等待输入起始景点:C.选择出发点与目的地等待输入起始景点与目的地编号:d.参看景点信息等待输入景点编号:二、概要设计本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪

3、杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。系统首先通过主程序调用voidmain();进入系统主菜单函数,根据用户的选择可分别进入:1.浏览各景点及简介;2查看所有游览路线;3.选择出发点和目的地求出最佳路径;4.查看景点信息;5.退出系统。选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示

4、起始景点到其余九个景点的最短路线的方案。选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景点与目的景点,并有空格隔开就得到两景点之间的最佳路径。选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。选择“退出系统”项,就会退出程序。三、详细设计(1)十三个单位的图0:前门1:图书馆2:教二楼3:实验楼4:操场5:教一楼6:食堂7:水房8:学一公寓9:学二公寓10:学三公寓11:学四公寓12:后门(2)主程序流程图:(3)弗洛伊德的算法:voidFloyd(MGraph*G)intv,u,i,w,k,j,flag=l,p101010,D10

5、10;/定义参数for(v=0;vvexnum;v+)for(w=0;wvexnum;w+)Dvw=G-arcsvw.adj;for(u=0;uvexnum;u+)pvwu=0;if(DvwINFINITY)pvwv=1;pvww=1;for(u=0;uvexnum;u+)for(v=0;vvexnum;v+)for(w=0;wvexnum;w+)if(Dvu+DuwDvw)Dvw=Dvu+Duw;for(i=0;ivexnum;i+)pvwi=pvui|puwi;while(flag)cout请输入出发点和目的地的编号(用空格隔开):;cinkj;if(k0|kG-vexnum|j0|jG-

6、vexnum)/判断输入的景点编号正确与否cout景点编号不存在!请重新输入出发点和目的地的编号:;cinkj;if(k=0&kG-vexnum&j=0&jG-vexnum)flag=0;coutG-vexsk.name;/输出景点名称for(u=0;uG-vexnum;u+)if(pkju&k!=u&j!=u)/输出路线cout-G-vexsu.name;cout-G-vexsj.name;cout总路线长Dkjendl;/输出总路线长度四、调试分析(1)在程序设计中遇到了输出景点信息的表不整齐,用setw()解决了;默认的界面太小,不能完整的看到输出信息,用了system(modecon:

7、cols=100lines=40)命令语句设置了行数和列数。(2)经验和体会经过一段时间来的努力,终于初步实现系统功能,但肯定还存在不少漏洞。这是我们第三次做课程设计,也是第三次编写一个比较完整和具有一定功能的的系统代码,第二次几个人合作制作系统,制作过程中存在储多的不足,遇到过许多的困难,曾经灰心丧气过,但是最终还是坚持了下来,虽然做得不怎么样,但我们已经努力地去做了,由于基础也不怎么扎实,所以困难会比其它组更多更艰巨。刚开始做系统缺乏全局观念,分工也不是很合理,做得很零碎,所以在组合的时候也出现了很多问题。五、使用说明和测试结果打开系统,首先会进入系统的主菜单:1. 浏览各景点及简介2.

8、查看所有游览路线3. 选择出发点和目的地4. 查看景点信息5. 退出系统用户可以进行如下操作:1、如果你想浏览各景点及简介的话,请输入“1”,并回车。此时界面上将显示出各景点的编号、名称及其简介。2、如果你想查看某一景点的所有游览路线,可选择2操作。输入“2”,并回车。此时,系统会提示你输入某景点的编号。输入编号后,回车,便可以看到该景点的所有游览路线。若输入的景点编号错误就会有提示重新输入。3、如果你想查看两个景点之间的最短路线的,可选择3操作。输入“3”,并回车。此时,系统会提示你要输入起始景点与终点的编号。输入编号后,回车,此时,便可以见到这两个景点之间的最短路径。4、如果你想查看具体某

9、些景点的简介及信息,可以选择4操作。输入“4”,并回车。此时,系统会提示全部景点的对应的编号,选择你要查看的景点信息,输入其编号,回车,此时,屏幕上将会显示出该景点的各种信息。若输入的景点编号错误就会有提示重新输入。5、在主菜单键入“5”,退出程序。测试结果1、菜单界面北京信息科技大学大学导游图地人裟的简路目和息占诱点信旦着會绣出景系浏查选查退1234-5ption-:2、进入“浏览各景点及简介”后,输出景点信息的界面。.E萝tt.足事一二#八工新二,力xl.n一i1_八-王人和卫,层可”八石哉决w口山;统一j一IP学-t-八,仿层糸出#圣4两卡慌砂万镶跑关,恿子mil-几it书校今话S笛皐H

10、藏宀t-T羊壬哪卑女押、禺禺名馆專楼公公点厂书二老坛一堂后二一_=_窮皐匹霧令辛字号M123456789Option-:3、进入“查看所有游览路线”显示输出景点编号为0的景点到其余九个景点的最佳路线。北京信息科哎犬兰犬字耳游图SI5踣口卷止和士一心暮发点统書募出罚查芮查退!123454、进入“选择出发点和目的地”输入出发点1和目的点9后输出的的最佳路线的界面。5、进入“查看景点信息”输入要查看的景点编号,输出景点信息的界面。6、输入要查询的景点编号错误,提示重新输入。7、退出程序界面。六、心得体会做一个系统之前还应该做好全面的安排,对一个系统的整个流程及功能实现有一个很好的统筹,几个人合作的功

11、能可拆才拆,不可则由一个人主要负责,其它人帮忙思考,出意见,做系统之前几个人必须先做对系统做一次较详细的探讨研究,然后才开始分工,一个阶段后组员应互相交流情况,以达到一致。另在遇到困难时组员不能解决,应查资料或问其它懂的同学,参考一下意见,再结合自己的想法,最后实现自己想实现的功能。七、附录#defineINFINITY10000/*无穷大*/#defineMAX_VERTEX_NUM40#defineMAX40#include#include#includeusingnamespacestd;#includetypedefstructArCellintadj;/路径长度ArCell,AdjM

12、atrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedefstruct/图中顶点表示主要景点,存放景点的编号、名称、简介等信息,charname30;intnum;charintroduction100;/简介infotype;typedefstructinfotypevexsMAX_VERTEX_NUM;AdjMatrixarcs;intvexnum,arcnum;MGraph;MGraphb;MGraphInitGraph(void);voidMenu(void);voidBrowser(MGraph*G);voidShortestPath_DIJ(MGraph*G

13、);voidFloyd(MGraph*G);voidSearch(MGraph*G);/*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*IyKAi*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*/I*LfI-i-fV/voidmain(void)system(color1f);system(modecon:cols=100lines=40);inti;b=InitGraph();Menu();cini;while(i!=5)switch(i)case1:system(cls);Browser(&b);Menu();break;case2:system(cls);ShortestPath_DIJ(&b);Menu();break;case3:system(cls);Floyd(&b);Menu();break;case4:system(cls);Search(&b);Menu();break;case5:exit(1);break;default:break;cini;/*

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号