> # ♻️ 资源
> **大小:** 28.7MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010908**](https://www.yuque.com/sxbn/ks/100010908)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87484802**](https://download.csdn.net/download/s1t16/87484802)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 仿“携程”
## **一、设计任务的描述**
系统目标:
本软件旨在根据旅客的要求设计出行路线并输出,同时系统能模拟旅所在的地点和状态,目标是为旅客提供能完美出行的计划。处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省。编制一个全国城市间的交通咨询程序,为旅客提供最优决策的交通咨询。
## **二、功能需求说明及分析**
功能需求:
设计最省钱和最少时间的算法及其需要信息的存储:最省钱和最少的算法利用迪杰斯塔拉算法;
信息先是存储在一个文本文件中,程序可以从中读取并且存放在一个类中。
该程序所做的工作是模拟旅游交通查询,为旅客提供最有决策的交通查询。
规定:
输入城市名称时,直接输入城市的名称(汉字);输入时间时,需要输入一个整型数据,选择功能时在界面上直接选择。程序的输出信息主要是:最快需要多少时间才能到达,或者最少需要多少费用才能到达,以及在旅程途中临时改变目的地时方案也相对发生变化和在规定时间内的最省钱方案。模拟旅游交通查询系统,能实现现实生活中旅客的各种需求做出相应的程序,能实现选择功能。
1. 城市总数不少于 10 个,即不能过于简单
2. 建立汽车,火车,飞机的航班表,包含沿途到站、票价信息,并且要求两个城市之间不能只有一班车次
3. 旅客的需求包含:起点、中点、途经城市、在某个城市的停留时间、旅行策略(旅客可以中途改变旅行方案)
4. 旅行策略包含:
最少费用:不考虑时间,只需费用最少
最少时间:不考虑费用,只需时间最短
限时最少费用:在规定的时间内,让费用最少
1. 旅行查询系统以 10s :1h 的速度推进时间轴(非查询状态不计时)
2. 不考虑城市内换乘交通工具所需时间
3. 系统的时间精确到小时
4. 建立日志文件,对旅客状态变化和键入等信息进行记录
5. 旅客在旅途中可更改旅行计划,系统做出相应的操作
6. 用图形绘制地图,并在地图上反映出旅客的旅行过程
## **三、总体方案设计说明**
### 开发环境:
版本库:Qt 5.12.2
IDE:Qt Creator 4.8.2
编译器:MinGW 64-bit
系统:Windows 10
### 概要设计:
本系统整体上分为存储系统,编辑列车城市信息以及求最小费用,最短时间,存储系统运用到数组和类。存储系统分别存储火车,飞机,汽车列次,始发地和终点站以及需要的费用。最短时间和最小费用使用迪杰斯塔拉算法编程。该算法主要分为三步:
1,起始点(V0)与其相邻点的权值(即当前最短路径)。
2,求出当前最短路径中的最小值即是该起始点(V0)与另一点(Vi)的最短路径。
3,V0 到 Vi 的距离加上 Vi 到 Vj 的距离小于 V0 到 Vj 则将 V0 到 Vi 的距离加上 Vi 到 Vj 的距离记为 V0 到 Vj 当前最短路径,循环第二,三步。
如此得到 V0 到各点的最短路径,进而可以得到最想要的一条。时间复杂度为 O(n^2),空间复杂度 O(n)。
### 总体结构:
软件结构包括软件模块和模块间的控制关系和模块组成关系。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183142-a794e240-8285-471e-a3db-cde01ddec1c1.png#averageHue=%23fefefe&from=url&id=nIhkx&originHeight=674&originWidth=1112&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
| 编 号 | 模 块 名 称 | 模 块 标 识 | 模块功能 |
| --- | --- | --- | --- |
| 1 | 输入模块 | Widget | 图形界面输入操作 |
| 2 | 算法以及旅客信息模块 | Traveler | 计算最优规划 |
| 3 | 绘图模块 | Mapwidget | 图形化输出 |
| 4 | 航班表模块 | Schedule | 读入并存储航班表 |
| 5 | 日志模块 | Log | 生成日志文件 |
## **四、数据结构说明和数据字典**
数据结构说明:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183218-1e43b74d-1540-429f-bcfd-4a5fc935c0f6.png#averageHue=%23fdfdfc&from=url&id=SWPey&originHeight=272&originWidth=631&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
**Attribute 类包含了一个车次(或者航班)信息**,其中有公有成员:
| 类型 | 名字 | 含义 |
| --- | --- | --- |
| int | from | 出发城市 |
| int | to | 目的城市 |
| int | cost | 花费 |
| int | vehicle | 类型(飞机、火车、汽车) |
| QString | num: | 车次号(或航班号) |
| QTime | begin | 出发时间 |
| QTime | end | 到达时间 |
一个 Attribute 类的对象就是一个车次(或航班)信息
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183292-4f203610-f5a8-4080-944b-54b1af3dca56.png#averageHue=%23f1eee5&from=url&id=Th8j0&originHeight=290&originWidth=780&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
Schedule 类包含了一个 multimap 型的 存储城市之间交通工具时刻表的结构
multimap<int,Attribute> database: 所有城市之间交通工具时刻表
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183381-6ba9a27a-5754-45cc-ad70-f3eaa1a496d9.png#averageHue=%23f2f1e9&from=url&id=wYT6U&originHeight=566&originWidth=974&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
Traveler 类包含了一个旅客的全部信息
私有成员
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183488-a7b2f967-f4c7-4545-aac6-336119e17634.png#averageHue=%23fbfaf8&from=url&id=UAFOJ&originHeight=359&originWidth=687&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
公有成员:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183559-2e2ffe4f-3ad0-43e5-8d77-023207808b33.png#averageHue=%23fbf9f7&from=url&id=Rwt5S&originHeight=105&originWidth=654&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
一、二的最优路径
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183631-69a27260-996f-4bf0-9c20-9701bba04f08.png#averageHue=%23fbfaf8&from=url&id=lTrR6&originHeight=289&originWidth=660&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
## **五、各模块设计说明**
**1. Schedule**
实现功能:从文件中读入并 存储城市之间交通工具时间表,需要对文件中数据类型做处理(例如城市在文件中用中文存储,读入时应转换为数字编号)
实现方法:读入文件函数如下,将文件中的车次信息逐条读入并存储,对数据的处理函数为 int Schedule::CityToNum(QString city),如下所示,实现了 中文城市 与 城市编号 之间的转换
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1716862183711-732640d6-a60c-4848-ab02-fde56d9369ee.png#averageHue=%23f7f7f6&from=url&id=TAQRo&originHeight=508&
没有合适的资源?快使用搜索试试~ 我知道了~
基于QT(C++)实现旅行模拟系统【100010908】
共74个文件
dll:23个
qm:21个
h:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 122 浏览量
2023-02-23
09:47:47
上传
评论 3
收藏 28.7MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010908 本软件旨在根据旅客的要求设计出行路线并输出,同时系统能模拟旅所在的地点和状态,目标是为旅客提供能完美出行的计划。处于对不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则希望旅费尽可能省。编制一个全国城市间的交通咨询程序,为旅客提供最优决策的交通咨询。
资源推荐
资源详情
资源评论
收起资源包目录
100010908-基于QT(C++)实现旅行模拟系统.zip (74个子文件)
travel
source_code
widget.ui 24KB
resource.qrc 412B
attribute.cpp 357B
log.h 232B
widget.cpp 39KB
mapwidget.h 1KB
mapwidget.cpp 9KB
resource
train.png 9KB
exe.ico 66KB
database.txt 14KB
car.png 7KB
pause.png 10KB
plane.png 5KB
map.png 937KB
arrive.png 196KB
main.cpp 2KB
Travel.pro 549B
schedule.h 425B
Travel.pro.user 24KB
traveler.h 2KB
schedule.cpp 2KB
traveler.cpp 18KB
attribute.h 279B
widget.h 3KB
run_exe
libgcc_s_seh-1.dll 73KB
libGLESV2.dll 3.79MB
styles
qwindowsvistastyle.dll 168KB
run.exe 1.3MB
Qt5Gui.dll 6.18MB
imageformats
qjpeg.dll 378KB
qsvg.dll 27KB
qtga.dll 25KB
qtiff.dll 484KB
qwebp.dll 527KB
qgif.dll 35KB
qicns.dll 43KB
qwbmp.dll 25KB
qico.dll 33KB
Qt5Core.dll 6.06MB
Qt5Svg.dll 338KB
Qt5Widgets.dll 5.39MB
log.txt 996KB
translations
qt_lv.qm 150KB
qt_sk.qm 123KB
qt_cs.qm 171KB
qt_de.qm 196KB
qt_ja.qm 127KB
qt_fi.qm 176KB
qt_da.qm 170KB
qt_ko.qm 128KB
qt_fr.qm 162KB
qt_pl.qm 159KB
qt_ar.qm 156KB
qt_it.qm 157KB
qt_bg.qm 161KB
qt_gd.qm 185KB
qt_es.qm 161KB
qt_en.qm 23B
qt_uk.qm 155KB
qt_ca.qm 180KB
qt_hu.qm 157KB
qt_he.qm 135KB
qt_ru.qm 177KB
iconengines
qsvgicon.dll 40KB
traveler.txt 0B
platforms
qwindows.dll 1.73MB
libwinpthread-1.dll 51KB
libEGL.dll 24KB
opengl32sw.dll 19.95MB
libstdc++-6.dll 1.36MB
D3Dcompiler_47.dll 3.98MB
LICENSE 1KB
document
数据结构课程设计实验报告.pdf 5.37MB
README.md 18KB
共 74 条
- 1
资源评论
- 2402_832004372024-06-17这个怎么在devC++打开啊
- Cavoa2023-04-16资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
神仙别闹
- 粉丝: 3689
- 资源: 7461
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于springboot mybatis+Mysql 实现的图书管理系统 【web课程设计 】
- 伯克利大学机器学习-7Hidden Markov models& graphical models
- 资质证书系统网站源码 证书在线查询系统源码 自适应手机端
- springboot在线商城系统设计与开发-代码
- java-leetcode题解之Possible Bipartition.java
- java-leetcode题解之Positions of Large Groups.java
- java-leetcode题解之Populating Next Right Pointers in Each Node
- 伯克利大学机器学习-5Dimensionality reduction [Percy Liang]
- SwiftUI编写的贪吃蛇小游戏讲解
- 瑞昱主控 RTS5876 规格书
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功