1、(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。a.首先看到的是校园导航系统的菜单:b查看浏览路线等待输入起始景点:C选择出发点与目的地 等待输入起始景点与目的地编号:d参看景点信息等待输入景点编号:二、 概要设计 本系统包含一个文件。设计分有菜单,显示信息,弗洛伊德算法,迪杰斯特拉算法,查找景点信息等程序段。主程序为整系统的入口处,菜单主要实现显示系统功能,显示信息主要实现显示景点信息,弗洛伊德算法主要实现求两景点之间最短路径,迪杰斯特拉算法实现求两景点之间最短路径,查找景点信息主要实现显示某一景点信息。 系统首先通过主程序调用void main( );进入系统主菜单
2、函数,根据用户的选择可分别进入:1.浏览各景点及简介;4.查看景点信息;5.退出系统。选择“浏览各景点及简介”项,显示十个景点的有关信息,包括景点编号,景点名称,景点简介。选择“查看所有游览路线”项,会进入输入起始景点编号的界面,输入正确编号后会显示起始景点到其余九个景点的最短路线的方案。选择“选择出发点和目的地”项,会进入输入起始景点与目的景点的界面,输入起始景点与目的景点,并有空格隔开就得到两景点之间的最佳路径。选择“查看景点信息”项,会进入输入要查看的景点的界面,如入后会显示该景点的有关信息。选择“退出系统”项,就会退出程序。三、 详细设计 (1)十三个单位的图 0: 前门 1:图书馆
3、2:教二楼3:实验楼4:操场5:教一楼6:食堂7: 水房8:学一公寓9:学二公寓10:学三公寓11:学四公寓12:后门 (2)主程序流程图:(3)弗洛伊德的算法:void Floyd(MGraph *G) int v,u,i,w,k,j,flag=1,p101010,D1010;/定义参数for(v=0;vvexnum;v+) for(w=0;warcsvw.adj; for(u=0;uu+) pvwu=0; if(DvwINFINITY) pvwv=1;pvww=1; for(u=0; for(v=0; for(w=0; if(Dvu+DuwDvw) Dvw=Dvu+Duw; for(i=0
4、;ii+) pvwi=pvui|puwi; while(flag) coutkj; if(kvexnum|jvexnum) /判断输入的景点编号正确与否景点编号不存在!请重新输入出发点和目的地的编号: cin if(k=0&kjvexnum) flag=0; coutvexsk.name; /输出景点名称 if(pkju&k!=u&j!=u) /输出路线 coutvexsu.name;vexsj.name; 总路线长Dkjendl; /输出总路线长度四、 调试分析 (1) 在程序设计中遇到了输出景点信息的表不整齐,用setw()解决了;默认的界面太小,不能完整的看到输出信息,用了system(
5、mode con: cols=100 lines=40)命令语句设置了行数和列数。(2)经验和体会经过一段时间来的努力,终于初步实现系统功能,但肯定还存在不少漏洞。这是我们第三次做课程设计,也是第三次编写一个比较完整和具有一定功能的的系统代码,第二次几个人合作制作系统,制作过程中存在储多的不足,遇到过许多的困难,曾经灰心丧气过,但是最终还是坚持了下来,虽然做得不怎么样,但我们已经努力地去做了,由于基础也不怎么扎实,所以困难会比其它组更多更艰巨。刚开始做系统缺乏全局观念,分工也不是很合理,做得很零碎,所以在组合的时候也出现了很多问题。五、 使用说明和测试结果打开系统,首先会进入系统的主菜单:1.
6、 浏览各景点及简介 2. 查看所有游览路线 3. 选择出发点和目的地4. 查看景点信息5. 退出系统用户可以进行如下操作: 1、如果你想浏览各景点及简介的话,请输入“1”,并回车。此时界面上将显示出各景点的编号、名称及其简介。2、如果你想查看某一景点的所有游览路线,可选择2操作。输入“2”,并回车。此时,系统会提示你输入某景点的编号。输入编号后,回车,便可以看到该景点的所有游览路线。若输入的景点编号错误就会有提示重新输入。3、如果你想查看两个景点之间的最短路线的,可选择3操作。输入“3”,并回车。此时,系统会提示你要输入起始景点与终点的编号。输入编号后,回车,此时,便可以见到这两个景点之间的最
7、短路径。4、如果你想查看具体某些景点的简介及信息,可以选择4操作。输入“4”,并回车。此时,系统会提示全部景点的对应的编号,选择你要查看的景点信息,输入其编号,回车,此时,屏幕上将会显示出该景点的各种信息。 5、在主菜单键入“5” ,退出程序。测试结果1、 菜单界面2、 进入“浏览各景点及简介”后,输出景点信息的界面。3、 进入“查看所有游览路线”,显示输出景点编号为0的景点到其余九个景点的最佳路线。4、 进入“选择出发点和目的地”,输入出发点1和目的点9后输出的的最佳路线的界面。5、 进入“查看景点信息”,输入要查看的景点编号,输出景点信息的界面。6、 输入要查询的景点编号错误,提示重新输入
8、。7、 退出程序界面。六、 心得体会做一个系统之前还应该做好全面的安排,对一个系统的整个流程及功能实现有一个很好的统筹,几个人合作的功能可拆才拆,不可则由一个人主要负责,其它人帮忙思考,出意见,做系统之前几个人必须先做对系统做一次较详细的探讨研究,然后才开始分工,一个阶段后组员应互相交流情况,以达到一致。另在遇到困难时组员不能解决,应查资料或问其它懂的同学,参考一下意见,再结合自己的想法,最后实现自己想实现的功能。七、 附录 #define INFINITY 10000 /*无穷大*/#define MAX_VERTEX_NUM 40#define MAX 40#includestring.h
9、#include using namespace std;iomaniptypedef struct ArCellint adj; /路径长度ArCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef struct /图中顶点表示主要景点,存放景点的编号、名称、简介等信息,char name30;int num;char introduction100;/简介infotype;typedef structinfotype vexsMAX_VERTEX_NUM;AdjMatrix arcs;int vexnum,arcnum;MGraph;MGrap
10、h b;MGraph InitGraph(void);void Menu(void);void Browser(MGraph *G);void ShortestPath_DIJ(MGraph * G);void Floyd(MGraph *G);void Search(MGraph *G);/*主函数*/void main(void) system(color 1f); int i; b=InitGraph(); Menu(); cini; while(i!=5) switch(i) case 1:system(clsBrowser(&b);Menu();break; case 2:ShortestPath_DIJ(& case 3:Floyd(& case 4:Search(& case 5:exit(1); default:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1