- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟火车调度系统详细设计
全局变量
Int state;//轨道使用状态(1:使用中,2:空闲)
int AB;//公用轨道的长度
Int priority;//交叉优先判定
模块1 读入信息并初始化(谢卓思)
包含函数
Void gettrackInformation();//读入轨道初始化设置
Void gettrianInformation();//读入车辆初始化设置
2.局部数据结构设计
Struct Track
{
int Alength;//上环形轨道的长
int Aheight;//上环形轨道的高
int Blength;//下环形轨道的长
Int Bheight;//下环形轨道的高
Int priority;//优先权(1:A车优先 2:B车优先 3:A,B车交替优先)
}track;
Struct Train
{
Int speed;//车速
Int long;//轨道长
int stop;//暂停指令(1为暂停)
int state;//状态(1为外轨道,2为内轨道,0为等待)
int location;//位置
int in;//进入监测点
Int out;//出轨道点
int turn[3];//转弯点
}A,B;
3.算法设计
Void gettrackInformation();//读入轨道初始化设置
声明变量及其类型 输入轨道的初始值和优先权 track.AB=min(track.Alength,track.Blength);
Void gettrianInformation();//读入车辆初始化设置
输入两车的初速度 stop=0;B.stop=0;int A.state=1; B.state=1;A.locaion=0;B.location=0;
A.long=2*(A.length+A.height);B.long=2*(B.length+B.height); Aturn[0]=A.length/2;Aturn[1]=A.turn[0]+A.height;
Aturn[2]=Aturn[1]+A.length;A.turn[3]=A.turn[2]+A.height;
B.turn[0]=B.length/2;B.turn[1]=B.turn[0]+B.height;
B.turn[2]=B.turn[1]+B.length;B.turn[3]=B.turn[2]+B.height;
A.lengthB.length A.in=(A.long-AB)/2;
A.out=(A.long+AB)/2;
Bin=B.length/2+B.height;
B.out=B.length*3/2+B.height; B.in=(B.long-AB)/2;
B.out=(B.long+AB)/2;
A.in=A.length/2+A.height;
A.out=A.length*3/2+A.height;
模块2 优先策略(冯静怡)
包含函数
Void Priority();//判断优先权
2.局部数据结构设计
算法设计
Void Priority()
Switch(track.priority) Case 1//A车优先 Case 2//B车优先 Case 3//交替优先 TrainA(); TrainB(); priority+=state TrainB(); TrainA(); priority%2==0
Y N Break; Break; TrainA();TrainB();break; TrainB();TrainA();break;
模块3 车辆运行控制(以A车为例)(冯静怡)
局部数据结构设计
Int state;//轨道使用状态(0为使用,1为空闲)
NS图
Void trainA();
A.stop==0 Switch(A.state) Case 1//外轨道 Case 2//内轨道 Case 0//等待 A.location=A.in A.locationi=A.in+A.speed A.locationA.out State==1 State==1; A.location+=A.speed state=1;
State=0;
A.location+=A.speed; A.location+=A.speed;
state=2;
State=1;
A.location+=A.speed; A.state=0; A.state=2;
State=1;
A.location+=A.speed; A.locationA.long A.location-=A.long
模块4 输出信
文档评论(0)