资源简介
第2小组_第一版本_源程序清单.zip

代码片段和文件信息
#include “whole.h“
void checktrainmove(int i)//检测火车下一个时刻往哪个方向运行主要传入火车的坐标和速度
{
if(train[i].direction==1)//当火车北向行驶时
{
if(train[i].y == train[i].turn1_y && train[i].circle == ‘c‘)
train[i].direction = 4;
else if(train[i].y == train[i].turn2_y && train[i].circle == ‘a‘)
train[i].direction = 3;
}
else if(train[i].direction==2)//当火车南向行驶时
{
if(train[i].y == train[i].turn3_y && train[i].circle == ‘a‘)
train[i].direction = 4;
else if(train[i].y == train[i].turn4_y && train[i].circle == ‘c‘)
train[i].direction = 3;
}
else if(train[i].direction==3)//当火车西向行驶时
{
if(train[i].x == train[i].turn1_x && train[i].circle == ‘a‘)
train[i].direction = 2;
else if(train[i].x == train[i].turn3_x && train[i].circle == ‘c‘)
train[i].direction = 1;
}
else if(train[i].direction==4)//当火车东向行驶时
{
if(train[i].x == train[i].turn4_x && train[i].circle == ‘a‘)
train[i].direction = 1;
else if(train[i].x == train[i].turn2_x && train[i].circle == ‘c‘)
train[i].direction = 2;
}
}
//三种控制策略部分 先通过探测点判断函数确定轨道同时被占用,将两个被判断的火车编号传进来
void alternate_control_policy(int num1int num2)//交替控制策略将优先行驶的火车的编号返回到公共轨道的结构中
{
static int count1=1count2=1;//设置count为静态变量 方便数量上的累计
if(((num1==1&&num2==0)||(num1==0&&num2==1))&&(train[num1].speed==train[num2].speed))//A B火车同时进入公共轨道1时
{
if(count1==1)
{
track[0].train=‘A‘; //优先选择的火车
train[0].state=RUN;
count1++;
}
else
{
if(count1%2==0)
{
track[0].train=‘B‘;
train[1].state=RUN;
count1++;
}
if(count1%2!=0)
{
track[0].train=‘A‘; //优先选择的火车设
train[0].state=RUN;
count1++;
}
}
}
if(((num1==0&&num2==2)||(num1==2&&num2==0))&&(train[num1].speed==train[num2].speed))//A C火车同时进入公共轨道1时
{
if(count2==1)
{
track[1].train=‘A‘; //优先选择的火车设置为全局变量,要输出
train[0].state=RUN;
count2++;
}
else
{
if(count2%2==0)
{
track[1].train=‘C‘;
train[2].state=RUN;
count2++;
}
if(count2%2!=0)
{
track[1].train=‘A‘;
train[0].state=RUN;
count2++;
}
}
}
}
void speed_control_policy(int num1 int num2)//快车优先控制策略
{
if(((num1==0&&num2==1)||(num2==0&&num1==1))&&train[num1].speed!=train[num2].speed)//AB两车同时进入公共轨道1
{
if(train[0].speed>train[1].speed)
{
track[0].train=‘A‘;
track[0].state=1;
train[0].state=RUN;
}
else if(train[1].speed>train[0].speed)
{
track[0].train=‘B‘;
track[0].state=1;
train[1].state=RUN;
}
}
if(((num1==0&&num2==2)||(num1==2&&num2==0))&&train[num1].speed!=train[num2].speed)
{
train[num2].state=PAUSE;
train[num1].state=PAUSE;
if(train[0].speed>train[2].speed)
{
track[1].train=‘A‘;
track[1].state=1;
train[0].state=RUN;
}
else if(t
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11430 2016-06-04 12:35 Input.c
文件 2313 2016-06-05 23:47 ManEvent.c
文件 12157 2016-06-05 23:47 control.c
文件 0 2016-06-05 23:47 event.txt
文件 1231 2016-06-04 13:34 main.c
文件 862 2016-06-05 22:19 map.txt
文件 4391 2016-06-05 23:43 output.c
文件 4339 2016-06-05 23:47 record.txt
文件 232 2016-06-04 11:52 time.c
文件 2935 2016-06-05 23:47 whole.h
文件 115 2016-06-05 22:28 初始化信息.txt
文件 2266 2016-06-04 13:40 新托马斯.dev
文件 5396501 2016-06-05 23:47 新托马斯.exe
文件 1063 2016-06-05 23:48 新托马斯.layout
- 上一篇:OpenCV上目标跟踪和行人跟踪需要的视频
- 下一篇:MAX17040_PL2301
相关资源
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
评论
共有 条评论