目录
修订记录 1
目录 2
1. 概述 3
2. 软件功能 3
3. 设计思想 3
3.1. 总体设计思想 3
3.2. 各模块具体实现思想 4
4. 逻辑结构与物理结构 6
5. 开发平台 12
6. 系统的运行结果分析说明 13
6.1. 调试开发过程 13
6.2. 程序正确性展示 14
6.3. 程序稳定性展示 18
6.4. 程序容错率能力展示 18
6.5. 运行案例说明 19
7. 操作说明 21
8. 致谢 25
9. 学习体会 25
10. 参考文献 26
1.概述
设计一个校园导游程序,用户提供各种信息查询服务。
基本要求:
(1)系统中记录了校园中的教学楼、图书馆、食堂、田径场、篮球场、超市、医务室等坐标信息和连接这些坐标的路径信息。
(2)每条路径包含两个坐标间的距离和预计消耗的卡路里。
(3)能进行坐标点的增加和删除。
(4)能够满足不同用户的查询,如:两坐标之间的最高卡路里路线和最短距离路线。
实现提示:
(1)一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。
(2)从我校平面图中选取10个大家熟悉的景点,抽象成一个无向带权图。以顶点表示景点,边上的权值表示两地的距离。
2.软件功能
本程序为一个较为完备的校园导游程序系统,功能主要包括以下几个方面:
1.图形化显示学校地图,并支持放大、缩小等功能。
2.查询两地点的路线,支持最短路线查询和最高卡路里路线查询两种模式,并将查询结果显示在和图形化界面上,以及以文字显示当前路径的路程以及预计卡路里消耗。
3.支持添加、删除校园地点,添加完成后即可用于 2 的功能中。
3.设计思想
3.1.总体设计思想
本题是一道综合性强、涵盖范围广、实用性强的题目。对于这种大型工程,不可能一次设计出完全适合的数据结构和算法。为此,我采用了敏捷开发的思想,结合在上个暑假在短学期实践中学习到的QT编码思想,先从整个系统的功能需求大致推导出需要的各个类和数据结构,按照完整的功能链需求列出各个类之间的关系,快速开发出一个基础版本。然后,再对该版本逐步进行完善,得到更加完善的版本。由于本题没有涉及到动画播放、延迟等等方面的内容,故算法和图形界面的代码可以实现完全分离。这对于面向对象设计是一件很好的事情。在代码结构的设计中,我充分利用了面向对象的开发思想,为每个可以抽象出来并且具有一些类似操作的部分都设计了相应的类,如线路类、地图系统类、图形界面管理类等等。各类之间的关系也非常明确,比如线路类中含有两个地点结构体成员,校园导航系统类中含有多个线路类成员以及多地点结构体成员等等。在开发过程中,首先大致设计出后端的各种类和数据结构,并且加以实现。然后再逐步实现前端的界面,过程中将后端操作与前端的按钮等进行连接,实现前后端相连。