写在前面
旅行模拟系统,是大二下计算机学院数据结构课程设计的课设内容,在上学期的数据结构课的理论基础上,大大加强了学生的动手实践能力,我在该课程上花费了不少精力,更不希望自己花费的精力白白浪费掉。
课设内容
城市之间有三种交通工具(汽车、火车和飞机)相连,根据旅客的要求设计出行路线并输出,同时系统能模拟旅客所在的地点和状态,目标为为旅客提供能完美的出行计划,同时能模拟多个旅客的旅行过程。
同时满足以下功能:城市总数为15,建立了较为复杂的交通时刻表(见schedule.txt),旅客要求包含起点终点、途经城市和旅行策略等,查询系统时间每十秒向前推进一小时,可建立日志文件记录旅客状态和键入信息。
旅客可在旅行中途某城市等待过程中再次以当前城市为出发地进行查询(更改计划),并进行相应的移动,且有地图图形,每个旅客状态均可反映在地图上。
功能需求
• 城市总数为15个
• 建立汽车、火车和飞机的时刻表(航班表)
有沿途到站及票价信息,点击城市可显示其全部时刻表信息
时刻表编制较为复杂,任意两个有交通工具的城市间必有汽车往来,较多有火车往来,较少有飞机往来
任意两有交通工具的城市间汽车数量为2-3,火车数量(若有)为1-2,飞机数量(若有)为1
• 旅客的要求包括:起点、终点、途经某些城市和旅行策略,以及旅行策略为限定时间时的用户限定时间
• 旅行策略有:
最少费用策略:无时间限制,费用最少即可
最少时间策略:无费用限制,时间最少即可
限时最少费用策略:在规定的时间内所需费用最省
• 旅行模拟查询系统以时间为轴向前推移,每10秒左右向前推进1个小时(非查询状态的请求不计时);
• 不考虑城市内换乘交通工具所需时间
• 系统时间精确到小时
• 建立日志文件,对旅客状态变化和键入等信息进行记录
• 选做一:某旅客可在旅行中途某城市等待过程中再次以当前城市为出发地进行查询(更改计划),并进行相应的移动,且有地图图形,每个旅客状态均可反映在地图上。
• 选做二:用图形绘制地图,并在地图上反映出旅客的旅行过程。
1.软件开发环境
版本库:Qt 5.12.0
IDE:Qt creator 4.8.0
编译器:Desktop Qt 5.12.0 minGW 64-bit
系统:windows 7, windows 10
2.总体结构
2.1模块结构图
![](https://img.haomeiwen.com/i9168312/7fb3bf0b0550f168.png)
2.2模块划分
![](https://img.haomeiwen.com/i9168312/e2095c81ef44d20a.png)
3.需求说明及分析
3.1城市总数为15个
分析:小组以中国南部15个城市抽象为该旅行模拟系统的15个城市,并采用PS方式绘制城市间交通情况图,大致符合实际地理位置,效果图如图:
![](https://img.haomeiwen.com/i9168312/d3133b4fdc345ee2.png)
3.2建立汽车、火车和飞机的时刻表
分析:在绘制完城市地图后,我们初步画出15个点间的边情况,并决定了每条边的汽车、火车、飞机情况,两点间有边则一定有汽车(2~3趟/天);火车有七个车次(分别为 ),在城市间有往返的运行,例如列车K520早4:00从A城出发途径B、H、C在12:00到达D城;飞机随机选择填写。具体时刻表见图(小部分):
![](https://img.haomeiwen.com/i9168312/d5a404cd680cb960.png)
![](https://img.haomeiwen.com/i9168312/90ba477a937a25f3.png)
同时,在封装的mypushbutton按钮类下,实现了点击某一城市,可以显示当前城市能够到达的城市的所有时刻表,以及票价等信息,如图:
![](https://img.haomeiwen.com/i9168312/72ced468bf7f6450.png)
3.3旅客的要求
分析:新建TravelDemand QT设计师界面类,当在widget点击查询时显示该界面,在ui中添加元素以采集用户输入信息并保存到当前旅客的属性中。具体ui界面见下图。
![](https://img.haomeiwen.com/i9168312/7a1bb66dde46a673.png)
3.4旅行模拟查询系统以时间推移
• 旅行模拟查询系统以时间为轴向前推移,每10秒左右向前推进1个小时,不考虑城市内换乘交通工具所需时间
• 系统时间精确到小时
分析:实现窗口下端显示以当前时间开始,每十秒(任意时间间隔)向前推进一个小时。旅客行程按照模拟系统时间为单位进行状态改变等。
效果如图:
![](https://img.haomeiwen.com/i9168312/97e9566b5e0ff08e.png)
3.5选做一(更改计划)
分析:某旅客可在旅行中途某城市等待过程中再次以当前城市为出发地进行查询(更改计划),并进行相应的移动,且有地图图形,每个旅客状态均可反映在地图上。
需结合用户使用说明,旅客须移动至某城市的等待时间时点击查询按钮,出发地改为当前所在地,再根据自身需求输入所需要求,即可刷新旅客旅行计划,并根据新计划进行移动。
3.6选做二(图形表示)
分析:图形绘制地图,并在地图上反映出旅客的旅行过程。
旅客的状态用以下图片表示:
![](https://img.haomeiwen.com/i9168312/b4b4b1334e74b26e.png)
实际表现如图:(昆明—飞机—>上海)
![](https://img.haomeiwen.com/i9168312/008b39c1bc1f59f3.png)
网友评论