目录
一、任务描述 1
二、需求分析 3
2.1 地点查询 3
2.2 导航系统 4
2.3 模拟时钟 5
2.4 地图实现 6
2.5 日志更新 7
三、概要设计 7
3.1 开发环境 7
3.2 总体结构 7
3.3 模块划分 8
四、数据结构说明 9
4.1 Vertex——顶点 9
4.2 Edge——有向边 9
4.3 current——当前状态 10
4.4 Log——日志记录 12
4.5 Account——账号 13
4.6 Clock——定时器 14
4.7 Course——课程 15
4.8 adj_map——邻接表 16
4.9 vertices——顶点数组 16
4.10 logic2phy——逻辑名到顶点的映射表 16
五、详细设计 17
5.1 Login模块 17
5.2 Account模块 18
5.3 Mainwindow模块 18
5.4 Clock模块 28
5.5 Current模块 28
5.6 Dijkstra模块 29
5.7 Ant模块 36
5.8 LogSearch模块 40
六、测试样例 41
七、评价及改进建议 50
7.1 总体概述 50
7.2优点 51
7.3改进建议 51
八、用户手册 52
附录:源代码 52
一、任务描述
大学校园充满着忙忙碌碌的学生和老师们,但是有时候用户宝贵的时间会被复杂的道路和愈来愈多的建筑物的阻碍而浪费,为了不让同学们在自己的目的地的寻路过程中花费更多的时间,我们着手开发这样一款校园导览系统。
对于一个导航系统来说,使用起来方便直观,各地点之间更换快捷,规划出来的路线清晰准确,这些才是客户最核心的需求。在生活节奏愈来愈快的现代社会,“即搜即出”是提升用户体验的一个重点所在。
在位置的选取上,用户们在使用时通常会有如下两大类搜索习惯,一是该用户清楚地知道自己所需要上课的教室或者导员所在的办公室,那就可以只将该用户引导到对应的教学楼或者办公楼,如“教学楼N楼”、“东配楼”等,又或者对于有运动需求的同学将其引导到对应的体育场馆,如“体育馆”“游泳馆”“篮球场”等,这些我们只需要提供物理位置即可;二是该用户希望通过搜索某类型服务设施来查询周边存在的该类型设施,并从结果中选择自己心仪的那一个,如用户搜索“超市,系统将展示“地下超市”和“小麦铺超市”两处地点,并由该用户自行选择目的地。并且对于部分需要跨校区上课的同学或者需要往返于两个校区之间的教师,我们就需要对其提供相对应的交通方式,例如校车或者地铁等公共交通方式。