1、 项目名称:项目名称: 校园导游程序校园导游程序 学生姓名:学生姓名: 学号:学号: 班级:班级: 指导教师:指导教师: 20132013 年年 12 月月 9 9 日日 目录 1.课程设计的目的与意义 . 1 1.1 课程设计的目的 1 1.2 课程设计的意义 1 2.系统功能描述及设计 . 1 3.系统存储结构及描述 . 3 4.系统功能实现及算法描述 . 5 4.1 校园景点信息的录入 5 4.2 查询图中任意两个景点间的最短路径 6 4.3 查询图中任意一个景点到其他景点的所有路径 7 4.4 查询任意两景点间的所有路径 8 5. 系统性能测试 9 5.1 主界面 . 9 5.2 浏览
2、校园全景 9 5.3 查询图中任意两个景点间的最短路径 . 10 5.4 查询图中任意一点到其他景点间的所有路径 . 10 5.5 查询任意两个景点间的所有路径 . 11 6.设计小结 11 参考文献 11 源代码清单 12 1 1.课程设计的目的与意义 1.1 课程设计的目的 随着社会的发展, 人们对生活的也要求越来越高, 从以前的一切都用手用笔的时代到了 一切都可以用机器代替的时代。 现在的大学校园越来越大了, 对于对新学校不熟悉和对于外 来着更好的参观和游览学校, 特做了这个校园导游图, 它能输出所有校园景点的简介供用户 参考,并且能找到两个景点间最短路径,让用户少走弯路和冤枉路,而且还
3、可以找到一个景 点到其他景点的最短路径, 可以提供使用者最好的游览路径。 更多的功能将会在后续继续加 入。 1.2 课程设计的意义 巩固和加深学生对数据结构的基本知识的理解和掌握,掌握 C 语言编程和程序调试的基 本技能。利用数据结构进行基本的软件设计,掌握书写程序设计说明文档的能力,提高运用 数据结构解决实际问题的能力。 培养我们综合运用所学知识的能力和锻炼实践的能力,能够做到善于发现,提出,分析和 解决实际问题。同时,进一步加深、巩固我们所学专业课程( 数据结构实用教程 )的基本 理论知识,如语句嵌套和循环,分支等结运用,理论联系实际,进一步培养学生综合分析问 题和解决问题的能力。 掌握运
4、用 C 语言独立地编写、 调试应用程序和进行其它相关设计的技 能,扩展自己的知识面,充分发挥广大同学的潜力,提高程序开发能力,使我们通过这次课 程设计而得到全面的锻炼。 2.系统功能描述及设计 整个系统主要包含三个大的模块(功能模块图见下图 2-1) 菜单 1:浏览校园全景,该功能的实现是通过编程着将所有信息事先录入系统中,当用 户选择时,会输出学校所有的景点,编号及简介。菜单 2:查询任意两景点间的所有路径。 这个是根据弗洛伊德算法改编而来, 该算法能很方便的找出用户所输入的两景点间的最短路 径。当然,当你输入的景点编号不存在时,就回提示重新输入,知道输入的两个点都符合要 求才会找出最短路径
5、。 菜单 3:查询一个景点到其他所有景点的最短路径。该系统能通过你所在的位置找出到 其他所有景点的最短路径。很方便的满足客户需要到达其他景点的路径。 菜单 4:查询图中任意两景点间的所有路径。有了这个功能,用户可以很方便的找到图 中任意连个景点间的所有路径。这样用户就可以选择自己中意的路径来到达自己的目的地 了。 菜单 5:退出整个系统。 2 武汉长江工商学院校园导游图 浏 览 校 园 所 有 景 点 查 询 图 中 任 意 两 景 点 间 的 所 有 路 径 一 个 点 到 其 他 所 有 景 点 的 最 短 路 径 查 询 图 中 任 意 两 景 点 间 的 所 有 路 径 退 出 整 个
6、 系 统 图 2-1 系统功能描述 3 3.系统存储结构及描述 下面将给出程序代码的部分代码,将详细介绍系统的存储结构。如: struct infotype char name20; int num; char introduction100; weighttype maxvalue; ; struct Mgraph infotype vexsMAXVER; /定义存储定点信息的数组类型 infotype arcsMAXVERMAXVER; /定义存储邻接矩阵的数组类型 int vexnum,arcnum; ; 该存储结构:在上面的结构体中,包含了图中所需的景点名,景点个数,景点简介,而 且存储了边数,还利用数组来存储两景点间是否有边,而且还包含了两景点间的权值。 for(i=0;i