> # ♻️ 资源
> **大小:** 63.4MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010311**](https://www.yuque.com/sxbn/ks/100010311)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87359331**](https://download.csdn.net/download/s1t16/87359331)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![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)
# 数据结构课程设计报告
## 课程设计的目的
- 巩固课堂及书本知识,理论联系实际
- 提高分析和解决实际问题的能力
- 训练软件设计、开发及书写软件文档能力
## 课程设计题目
COVID-19疫情环境下低风险旅行模拟系统的设计
### 问题描述
城市之间有各种交通工具(汽车、火车和飞机)相连,有些城市之间无法直达,需要途径中转城市。某旅客于某一时刻向系统提出旅行要求。考虑在当前COVID-19疫情环境下,各个城市的风险程度不一样,分为低风险、中风险和高风险三种。系统根据风险评估,为该旅客设计一条符合旅行策略的旅行线路并输出;系统能查询当前时刻旅客所处的地点和状态(停留城市/所在交通工具),具体旅行策略见后。
### 功能需求
- 城市总数不少于10个,为不同城市设置不同的单位时间风险值:低风险城市为0.2;中风险城市为0.5;高风险城市为0.9。各种不同的风险城市分布要比较均匀,个数均不得小于3个。旅客在某城市停留风险计算公式为:旅客在某城市停留的风险=该城市单位时间风险值*停留时间。
- 建立汽车、火车和飞机的时刻表(航班表),假设各种交通工具均为起点到终点的直达,中途无经停。
不能太简单,城市之间不能总只是1班车次;
整个系统中航班数不得超过10个,火车不得超过30列次;汽车班次无限制;
旅客的要求包括:起点、终点和选择的低风险旅行策略。其中,低风险旅行策略包括:
最少风险策略:无时间限制,风险最少即可
限时最少风险策略:在规定的时间内风险最少
- 旅行模拟系统以时间为轴向前推移,每10秒左右向前推进1个小时(非查询状态的请求不计时,即:有鼠标和键盘输入时系统不计时);
- 不考虑城市内换乘交通工具所需时间
- 系统时间精确到小时
- 建立日志文件,对旅客状态变化和键入等信息进行记录
### 选做功能需求
本次课程设计有两个选做功能,本人完成了第二个选做功能。
为不同交通工具设置不同单位时间风险值,交通工具单位时间风险值分别为:
汽车=2;火车=5;飞机=9。
旅客乘坐某班次交通工具的风险 = 该交通工具单位时间风险值_该班次起点城市的单位风险值_乘坐时间。
将乘坐交通工具的风险考虑进来,实现前述最少风险策略和限时风险最少策略。
## 系统实现功能
本旅行模拟系统共支持15个城市之间的旅行方案设计,其中5个高风险城市(武汉、深圳、香港、郑州、杭州)、5个中风险城市(成都、重庆、西安、福州、石家庄)、5个低风险城市(乌鲁木齐、银川、澳门、西宁、拉萨),旅客可以选择15个城市中任意城市作为起点和终点,系统会反馈最最佳的旅行方案。
城市间支持三种交通方式,飞机、火车、汽车,其中飞机每天10航班、火车每天30次、汽车每天90次。考虑疫情实际情况,设置风险值,飞机风险值最高,汽车风险值最低,火车风险值居中,风险值分别为9、2、5。在构图的过程中保证15个城市通过交通工具两两可达。
旅行模拟系统支持以下三种功能:
1.新增一名旅客。需要提供旅客的姓名、起始城市和终止城市信息,并提供旅行策略(最少风险策略:无时间限制,风险最少即可 或 限时最少风险策略:在规定的时间内风险最少),如果选择限时最少风险策略,还需提供旅客最少时间限制。在得到旅客相关信息后,系统根据风险评估,为该旅客设计一条最符合旅行策略的旅行路线并输出,同时将旅客信息和路线存档。
2.查询当前时间某一旅客的状态。提供旅客姓名后,系统会调动存档,查询旅客当前所处的地点和状态,并给出类似旅客当前在城市XXX,还需停留XXX小时 或 旅客在从XXX到XXX的汽车/火车/飞机上,还有XXX小时到达的反馈信息。
3.记录日志。现实中2秒模拟系统中的1小时,系统每隔1小时会自动将当前所有旅客的状态到日志文件中。
## 各模块设计和算法说明
模块一(TravelSimulationSystem.cpp)
- 函数:void main(){}
- 算法:模拟
- 关系:调用其他模块的内容实现用户操作
- 功能:进入界面的窗口展示;用户操作选择,并调用function模块中的函数执行用户操作;计算程序运行时间和模拟推进时间
![8688b08ecd2afa34bbb56caa2fa30a0c.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1709861154714-47da8b5f-9f8f-44d4-88fc-62f577230f18.png#averageHue=%231d1d1c&clientId=u424a6cd3-788d-4&from=paste&height=511&id=ucea69407&originHeight=639&originWidth=1223&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=41421&status=done&style=none&taskId=u590f918a-4790-49c6-b674-7fd2f89bfab&title=&width=978.4)![bb04e9dbf3657657f761d463015cf30f.PNG](https://cdn.nlark.com/yuque/0/2024/png/2469055/1709861154722-fed9df9d-ec54-4132-9644-95f20f04cef7.png#averageHue=%231d1c1c&clientId=u424a6cd3-788d-4&from=paste&height=511&id=uf48a77a4&originHeight=639&originWidth=1223&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=29518&status=done&style=none&taskId=u6cbba833-48f3-4511-90a1-1736f69169c&title=&width=978.4)
模块二(definitions.h)
- 函数:无
- 算法:无
- 关系:被其他模块调用,全局宏定义
- 功能:一些宏的定义,定义了CITY_FILE、ROAD_FILE、LOG_FILE、LL和Inf,便于直接使用
模块三(function.h)
- 函数:
```c
void ReadCity();//城市信息读入
void ReadRoad();//交通信息读入
void AddPassenger(int); //新增乘客信息
void QueryPassengerStatus(int); //查询旅客状态
void LogAll(int); //每小时日志写入
```
- 算法:无
- 关系:调用definitions.h模块,定义的函数在function.cpp模块中实现,被主函数调用使用。
- 功能:定义了上述5个函数,通过主函数调用,function.cpp实现。
模块四(function.cpp)
- 函数:
```c
void Insert(int fr, int to, int tp, int Start)//城市间路线
void AddEdge(int fr, int to, int tp, int Start)//城市内部拆点路线
void ReadCity()//城市信息读入
void ReadRoad()//交通信息读入
int Day(int nowTime)//小时转天
int Hour(int nowTime)//小时转当天的小时
bool Dijkstra(int pId,int fr,int to,int startTime,int endTime)
//核心算法,Dijkstra函数求旅客路径
void AddPassenger(int nowTime)// 新增旅客信息
void QueryPassengerStatus(int nowTime)// 查询旅客状态
void LogAll(int nowTime)// 输出信息到日志
```
- 算法:堆优化的Dijkstra算法、邻接表、拆点分流
- 特点:
系统化的实现了不同用户的不同操作,根据实际情况对城市进行拆点操作,一个城市拆分 为24个城市,保证了Dijkstra算法的正确性
- 关系:实现了function.h中定义的函数。
- 功能�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010311 本旅行模拟系统共支持15个城市之间的旅行方案设计,其中5个高风险城市(武汉、深圳、香港、郑州、杭州)、5个中风险城市(成都、重庆、西安、福州、石家庄)、5个低风险城市(乌鲁木齐、银川、澳门、西宁、拉萨),旅客可以选择15个城市中任意城市作为起点和终点,系统会反馈最最佳的旅行方案。 城市间支持三种交通方式,飞机、火车、汽车,其中飞机每天10航班、火车每天30次、汽车每天90次。考虑疫情实际情况,设置风险值,飞机风险值最高,汽车风险值最低,火车风险值居中,风险值分别为9、2、5。在构图的过程中保证15个城市通过交通工具两两可达。
资源推荐
资源详情
资源评论
收起资源包目录
100010311-基于C++实现(控制台)COVID-19疫情环境下低风险旅行模拟系统.zip (49个子文件)
low-risk-travel-simulation
source_code
TravelSimulationSystem
TravelSimulationSystem.sln 1KB
.vs
TravelSimulationSystem
v15
Browse.VC.db 36.04MB
.suo 49KB
ipch
AutoPCH
875d1021ea7a70f4
FUNCTION.ipch 42.5MB
3f3da78b32ffaee0
FUNCTION.ipch 42.44MB
7da4ebd30fcf04b0
TRAVELSIMULATIONSYSTEM.ipch 73.63MB
ac58fb0d791fec64
TRAVELSIMULATIONSYSTEM.ipch 73.63MB
TravelSimulationSystem
TravelSimulationSystem.cpp 3KB
function.cpp 15KB
function.h 229B
TravelSimulationSystem.vcxproj.user 162B
TravelSimulationSystem.vcxproj.filters 1KB
city.txt 785B
log.txt 162KB
TravelSimulationSystem.vcxproj 7KB
road.txt 3KB
definitions.h 186B
Debug
vc141.pdb 708KB
TravelSi.E4CF16A5.tlog
CL.write.1.tlog 4KB
CL.command.1.tlog 4KB
link.command.1.tlog 4KB
link.read.1.tlog 6KB
link.write.1.tlog 2KB
TravelSimulationSystem.lastbuildstate 282B
CL.read.1.tlog 79KB
vc141.idb 603KB
function.obj 980KB
TravelSimulationSystem.log 1KB
TravelSimulationSystem.obj 251KB
readme.txt 373B
Debug
TravelSimulationSystem.ilk 2.59MB
TravelSimulationSystem.exe 278KB
TravelSimulationSystem.pdb 2.15MB
report.doc 580KB
LICENSE 1KB
2020课程设计-COVID-19疫情环境下低风险旅行模拟系统的设计.ppt 183KB
run
city.txt 785B
log.txt 162KB
TravelSimulationSystem.exe 278KB
road.txt 3KB
document
2-功能需求说明及分析.docx 173KB
6-范例执行结果及测试情况说明.docx 543KB
7-评价和改进意见.docx 14KB
5-各模块设计说明.docx 89KB
3-总体方案设计说明.docx 22KB
8-用户使用说明.docx 395KB
1-设计任务的描述.docx 16KB
4-数据结构说明和数据字典(数据名称、用途等).docx 23KB
README.md 32KB
共 49 条
- 1
资源评论
- m0_636538672023-03-12这个资源值得下载,资源内容详细全面,与描述一致,受益匪浅。
神仙别闹
- 粉丝: 2687
- 资源: 7658
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功