数据结构课程设计校园导游系统.doc

上传人:laozhun 文档编号:2390748 上传时间:2023-02-17 格式:DOC 页数:11 大小:111KB
返回 下载 相关 举报
数据结构课程设计校园导游系统.doc_第1页
第1页 / 共11页
数据结构课程设计校园导游系统.doc_第2页
第2页 / 共11页
数据结构课程设计校园导游系统.doc_第3页
第3页 / 共11页
数据结构课程设计校园导游系统.doc_第4页
第4页 / 共11页
数据结构课程设计校园导游系统.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据结构课程设计校园导游系统.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计校园导游系统.doc(11页珍藏版)》请在三一办公上搜索。

1、西安郵電學院*设计报告题 目:校园导游系统院系名称:计算机学院 专业名称:计算机科学与技术班 级: 学生姓名:学号(8位)指导教师:设计起止时间:2011年12月12日2011年12月16日一. 设计目的校园导游系统 - 为了系统的把前后的知识连贯的学会应用,了解一个地图是怎么用C语言的形式表达存储的。二. 设计内容校园导游系统 这是西安邮电学院的一个校园导游图,内容有:管理员管理(有地图的输入,保存文件);客户访问(景点查询,景点打印,景点信息,最短路线查询)。三概要设计1功能模块图;1.输入地图数据校园导游系统 2.返回主菜单管理员菜单0.退出系统 Y密码 N1.列出景点 系统2.列出景点

2、详细信息主菜单3.景点查询客户访问菜单4.景点最短路线查询5.返回主菜单0.退出系统主菜单2各个模块详细的功能描述。校园导游系统 三个选项:1.Administrator Login管理员登陆; 2.Client Access客户登陆 ;0.Exit the system退出系统。管理员菜单 三个选项:1.Input Attractions Map输入地图信息;2.Back to the main Menu返回主菜单;0.Exit the system退出系统。客户访问菜单 六个选项:1.List of the Attractions列出景点;2.Print the vertexs infor

3、mation 打印景点信息;3.Find attractions景点查询;4.Search the shortest path最短路径查询;5.Back to the main menu返回主菜单;0.Exit the system退出系统。四详细设计1功能函数的调用关系图校园导游系统 系统中的所有函数如下:1) void main();2) void Cipher ();/密码3) void MainMenu ();/主菜单4) void AdministratorMenu ();/管理员菜单5) void CustomerMenu();/客户访问菜单6) int LocateVertex

4、(AdjMatrix *G, int v);/求顶点位置函数7) void CreateGraph (AdjMatrix *G);/建立图函数8) void SaveGraphFile (AdjMatrix *G);/保存图到文件函数9) void DiaplayGraph (AdjMatrix *G);/打印图函数10) void FindAttractions ();/景点查找11) void TraverseGraph ();/图的遍历12) void DepthFirstSearch (AdjMatrix *G, int v0);/图的深度优先搜索13) void PrintGraph

5、 ();/打印图14) void ReadGraphInfoFile (AdjMatrix *g);/读取图的景点信息文件15) void ReadGraphFile (AdjMatrix *g);/读取图矩阵文件16) void ShortestPath_Floyd(AdjMatrix *g);/弗洛伊德算法17) void ShortestPath_Print();/两点间的最短路径函数调用关系: a b:a调用b1)3)5)2)11)10)17)13)3)4)7)3)15)14)8)6)16)9)12)输入地图数据返回主菜单返回主菜单最短路径查询景点查询列出景点打印景点信息2各功能函数的

6、数据流程图校园导游系统 函数7)void CreateGraph (AdjMatrix *G);为创建图,然后,调用 8)void SaveGraphFile (AdjMatrix *G) 保存到文件啊中。函数11),13),10),17)都需调用14),15)来读取文件中的数据。分别完成相应的功能。3重点设计及编码校园导游系统 程序中定义的结构体,数据:#define M 100#define INFINITY 0#define True 1#define False 0int visitedM;int distMM;/最短路径长度int pathMM;/最短路径typedef struct

7、 VerInfoint ver;/景点编号char nameM;/景点名字/char informationM;/景点信息 VerInfo;typedef struct ArcNodeint adj;/权值 ArcNode;typedef structVerInfo vertexM;/顶点数组ArcNode arcsMM;/邻接矩阵int vexnum, arcnum;/定点数和弧数 AdjMatrix;重点函数int LocateVertex (AdjMatrix *G, int v)/求定点位置函数int k;for(k = 0; k vexnum; k+)if(G-vertexk.ver

8、 = v)return k;return -k;void DepthFirstSearch (AdjMatrix *G, int v0)/深度优先搜索int vj;printf(%6d%16sn, G-vertexv0.ver, G-vertexv0.name);visitedv0 = True;for(vj=0; vj vexnum; vj +)if (! visitedvj) & G-arcsv0vj.adj != 0)DepthFirstSearch (G, vj);读取图矩阵文件while (fscanf(fp, %4d, &g-arcsij.adj) != EOF)fscanf(fp

9、, %c, &ch);j+;if (ch = n)i+;j=0;if (g-arcsij.adj != 0)h+;g-vexnum = i;/最后i为图的顶点个数g-arcnum = h/2;/h为弧数的2倍void ShortestPath_Floyd(AdjMatrix *g)/弗洛伊德算法的实现int i, j, k;for(i=0; ivexnum; i+)for(j=0; jvexnum; j+)distij=1000;pathij=0;for(i=0; ivexnum; i+)for(j=0; jvexnum; j+)if(g-arcsij.adj!=0) distij = g-a

10、rcsij.adj;distji = g-arcsji.adj;for(k=0; kvexnum; k+)for(i=0; ivexnum; i+)for(j=0; jvexnum; j+)if(distik + distkj distij)distij = distik + distkj;pathij = k;pathji = k;五测试数据及运行结果1正常测试数据和运行结果要求提供3组正常测试数据和运行结果A.校园导游系统 输入:1;输出:输入:lj;111;输出:输入:1; 15,; 23; 公交站 这里有西安最方便的600路公交车大门 仔细看看那大门,你会发现那是“邮电”两个字邮政储蓄

11、 这里可以办理储蓄、邮政业务,ATM机,方便大学生活动中心 这是一个小型的会场,可以举行各种晚会,活动人工湖 湖水浑浊,不过偶尔有一条鱼跳出水面图书馆 130万的出数量,各种图书,供你选择教学区 教室少,楼房出现漏水现象,豆腐渣工程学术交流中心 供外人居住的地方,但不是免费得,180/天,贵操场 塑胶跑道,采用荷兰进口的高仿草坪足球场体育馆 有室内篮球馆,但是有点小,一次性容人量小实验楼 设备比较齐全,部分设备太旧,得更新医疗中心 设备差,收费高,只能看感冒类的小病学生公寓 大都采用6人间的方式,部分是4人间旭日苑 卫生极差,筷子出来是油的,湿的就不说的,你懂得!美食广场 这里的饭菜种类多,味

12、道也不错输出:Save the file successfully!输入:2; 1;输出:输入:2输出输入:3; 8;输出:输入:4; 2 15;输出:输入:5;输出:2异常测试数据及运行结果输入密码,或用户名不对的会返回到上一级。另外选择选项的时候输入非法的数据时会提醒你输入有误,重新输入。六调试情况,设计技巧及体会1. 改进方案对自己的设计进行评价,指出合理和不足之处,提出改进方案;A. 校园导游系统 程序优点:1.有管理员和客户访问两个部分。客户不能输入地图信息。 2.输入地图是点数和弧数可以随意输入,数据全部存在文件中,比较好读取数据,读取文件的同时还计算出了图的顶点数和弧数。程序不足

13、:1.由于宏定义INFINITY是0.所以在查询最短路线的时候不好控制数据。其实应该定义成32768,最大值,这样好控制数据。2.程序只能一次性的进行一次性的地图数据录入,不能进行修改,添加地图信息。3.程序放在linux下不能运行,原因是linux下没有 这个函数库,在linux下实现要用到、 、 这三个函数库。有待遇进一步的改善。2体会弗洛伊德算法思想很精辟。在查找最短路径中的一次循环这一点很节省时间。一个大的程序不是在短时间之内可以完成的,更不是由一两个人就可以完成的,需要一个团队来集体完成 程序的调试在编程的过程中起到了举足轻重的作用。七参考文献数据结构 杨剑 主编 清华大学出版社数据结构(C语言版) .严蔚敏_吴伟民.主编 清华大学出版社八附录:源代码(电子版)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号