资源简介
数学建模2019美赛D题 逃离卢浮宫 代码
模型考虑要素:最短路径,毒气扩散,拥挤度,5层地图,秘密通道,伤亡程度
考虑到知识产权,代码中的数据没有提供,可以提供思路,或作为模板自行编写,代码有足够注释,可以根据Main函数调用不同函数实现不同的模型,代码加注释的总行数大于1200行

代码片段和文件信息
#include
#include
#include
using namespace std;
//元胞自动机
int main()
{
//逃亡人数
int numOfPeople = 30000;
//模拟5层卢浮宫地图
vector > > maps;
//模拟逃亡者
vector people;
//初始化卢浮宫地图
Floor::LoadMapsFromFile(maps);
//初始化第二层的馆号
Floor::IntializeShopId(maps[2]);
//初始化每一个人的初始位置
Person::IntializePosition(people maps numOfPeople);
//根据不同指标计算每块地板的权值
Floor::ComputeFloorWeightByShortestPath(maps);
//初始化毒雾区域
Point p = Floor::IntializeToxicArea(maps);
// Person::IntializeCrowd(maps people);
//得到目前存活的人数
numOfPeople = people.size();
//记录秘密通道有没有开启,模型中设定为三个
bool hasSecretDoors[3] = {false false false};
//2层每个馆开启秘密通道时人数所需达到的阈值
int thresholds[3] = {100 3000 4000};
//steps 目前走的步数
//tempSteps 前后逃离卢浮宫两人之间相隔的步数
int steps = 0 tempSteps = 0;
//left 剩余未逃离人数
int left = numOfPeople;
int numOfDeath = 0;
int numOfSevereInjury = 0;
int numOfSlightInjury = 0;
do
{
for(int i = 0; i < 3; ++i)
{
//如果2层的某个馆达到人数阈值,并且还没有开启秘密通道,就打开秘密通道
if(Floor::shopNum[i] >= thresholds[i] && !hasSecretDoors[i])
{
Floor::ShowSecretDoor(maps i);
//由于有了新的出口,需要重新计算2层没个地板的阈值
Floor::ComputeFloorWeightByShortestPath(maps);
//打开对应秘密通道
hasSecretDoors[i] = true;
}
}
//毒气会扩散
Floor::UpdateToxicArea(maps (steps+1)*0.625 p);
vector::iterator it = people.end();
--it;
left = people.size();
//如果走了30步,还没有新的一个人逃离卢浮宫,认为陷入了某种死循环
if(tempSteps >= 30)
{
//计算当前人员受伤情况,退出循环
for(int i = 0; i < people.size(); ++i)
{
if(people[i].injure == 2)
{
numOfSevereInjury++;
}
else if(people[i].injure == 1)
{
numOfSlightInjury++;
}
}
break;
}
for(int i = left-1; i >= 0; --i--it)
{
//计算新一轮人员受伤死亡情况
if(people[i].isExited)
{
if(people[i].injure == 2)
{
numOfSevereInjury++;
}
else if(people[i].injure == 1)
{
numOfSlightInjury++;
}
it = people.erase(it);
//如果有人逃离卢浮宫,tempSteps=0,继续计数
tempSteps = 0;
}
else if(people[i].injure == 3)
{
it = people.erase(it);
numOfDeath++;
}
else
{
//更新每一个存活的人的位置
people[i].MoveToNextFloor(maps 0);
}
}
tempS
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1564656 2019-01-29 05:57 MathModel.Simulation\bin\Debug\MathModel.exe
文件 970289 2019-01-25 14:16 MathModel.Simulation\bin\Debug\MathModel.Simulation.exe
文件 1411 2019-03-07 18:35 MathModel.Simulation\include\Floor.h
文件 3133 2019-03-07 18:35 MathModel.Simulation\include\Person.h
文件 171 2019-01-25 15:31 MathModel.Simulation\include\Point.h
文件 3711 2019-03-07 18:44 MathModel.Simulation\main.cpp
文件 1339 2019-01-25 22:46 MathModel.Simulation\MathModel.Simulation.cbp
文件 612 2019-01-29 05:58 MathModel.Simulation\MathModel.Simulation.depend
文件 1357 2019-03-07 18:56 MathModel.Simulation\MathModel.Simulation.layout
文件 190521 2019-01-29 05:57 MathModel.Simulation\obj\Debug\main.o
文件 479028 2019-01-28 16:10 MathModel.Simulation\obj\Debug\src\Floor.o
文件 230979 2019-01-28 13:15 MathModel.Simulation\obj\Debug\src\Person.o
文件 8049 2019-03-07 18:44 MathModel.Simulation\src\Floor.cpp
文件 18392 2019-01-28 12:55 MathModel.Simulation\src\Person.cpp
文件 93 2019-01-25 15:31 MathModel.Simulation\src\Point.cpp
目录 0 2019-01-28 16:10 MathModel.Simulation\obj\Debug\src
目录 0 2019-01-29 05:57 MathModel.Simulation\bin\Debug
目录 0 2019-01-29 05:57 MathModel.Simulation\obj\Debug
目录 0 2019-01-25 13:17 MathModel.Simulation\bin
目录 0 2019-03-07 18:35 MathModel.Simulation\include
目录 0 2019-01-25 13:17 MathModel.Simulation\obj
目录 0 2019-03-07 18:44 MathModel.Simulation\src
目录 0 2019-03-07 18:56 MathModel.Simulation
----------- --------- ---------- ----- ----
3473741 23
相关资源
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- 用C 实现的对网络上的ARP数据包进行
- Microsoft基本类库 (MFC)(C 库)
评论
共有 条评论