欢迎来到天天文库
浏览记录
ID:34693050
大小:691.00 KB
页数:22页
时间:2019-03-09
《校园导游系统程序课程设计汇本报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1、需求分析设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。(1).设计工商学院校园无向图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2).为来访客人提供图中任意景点相关信息的查询。(3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。2、设计思路校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权
2、值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。3算法设计3.1概要设计3.1.1程序中包含的模块(1)主程序模块主函数:voidmain(void)voidcmd(void)cmd修改显示框大小,字体背景颜色,初始化景点,景点信息打印菜单,MGraphInitGraph(void);//初始化图。MGraph*CreatUDN(MGraph*G);/
3、/初始化图形接受用户输入voidMenu(void);//菜单函数voidBrowser(MGraph*G);//浏览函数voidShortestPath_DIJ(MGraph*G);voidFloyd(MGraph*G);//查询图中任意两个景点间的所有路径voidSearch(MGraph*G);//查找函数intLocateVex(MGraph*G,char*v);//迪杰斯特拉算法计算起点各顶点间短路径,voidprint(MGraph*G);//输出函数(2)查询模块景点信息查询:voidintroduce()最短路径查询:要查找的两景点的最短距离:用floyd算法求两个景点
4、的最短路径:(3)打印模块:voidprint(MGraph*G);3.1.2模块间的调用关系主函数main()调用voidcmd(void)调用menu并且用switch设置开关语句。3.2详细设计3.2.1定义符号变量#defineINFINITY1000/*穷*/#defineMAX_VERTEX_NUM40/*定义全局变量*/创建两个类存储景点信息和存储景点道路和长度typedefstructArCell//邻接矩阵{intadj;//存储路径长度}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct//图
5、顶点表示主要景点存放景点编号、名称、简介等信息{charname[20];intnum;charintroduction[60];//简介}infotype;typedefstruct//图中的边表示景点间的道路,存放路径长度等信息。{infotypevexs[MAX_VERTEX_NUM];//顶点信息域AdjMatrixarcs;intvexnum,/*顶点数*/arcnum;//边个数}MGraph;MGraphb;3.2.2自定义函数原型说明给出函数声明voidcmd(void);MGraphInitGraph(void);voidMenu(void);voidBrowser(
6、MGraph*G);voidShortestPath_DIJ(MGraph*G);voidFloyd(MGraph*G);voidSearch(MGraph*G);intLocateVex(MGraph*G,char*v);MGraph*CreatUDN(MGraph*G);voidprint(MGraph*G);3.2.3定义各顶点之间的距离:for(i=0;i7、arcs[0][6].adj=200;G.arcs[1][11].adj=120;G.arcs[1][2].adj=100;G.arcs[2][5].adj=50;G.arcs[3][4].adj=60;G.arcs[4][9].adj=140;G.arcs[5][9].adj=250;G.arcs[5][7].adj=150;G.arcs[6][7].adj=190;G.arcs[6][9].adj=150;G.arcs[8][7].adj=
7、arcs[0][6].adj=200;G.arcs[1][11].adj=120;G.arcs[1][2].adj=100;G.arcs[2][5].adj=50;G.arcs[3][4].adj=60;G.arcs[4][9].adj=140;G.arcs[5][9].adj=250;G.arcs[5][7].adj=150;G.arcs[6][7].adj=190;G.arcs[6][9].adj=150;G.arcs[8][7].adj=
此文档下载收益归作者所有