数据结构与算法试验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
                       PAGE PAGE 2 数据结构与算法实验报告 实验题目 对于单跑道飞机场的模拟 班级 1050310521 姓名 黄林峰 Ⅰ设计要求: 提出问题: 1)程序目的: (1)模拟飞机在飞机场起飞和降落问题 (2)统计跑道上飞机工作情况,包括起飞或降落飞机的数量及等待时间,以及没有起飞或降 落的飞机数量、跑道的空闲时间 2).程序功能: 模拟飞机在飞机场起飞和降落问题,以及统计跑道上飞机工作情况,包括起 飞或降落飞机的数量及等待时间 3)输入:机场运行的时间,和单位时间内起飞和降落的飞机的架数 4)输出:机场模拟的最终结果,包括用户输入的信息和模拟结束后统计得到的信息详情见 Conclude函数 Ⅱ问题分析: 1).程序中的数据结构: 1)struct Plane: 其中有两个变量,其中一个是飞机的编号,编号与飞机为一一对应的关系,另外一个变量记录飞机进入队列的时间 2)Queue *pl,*pt: 这是指向控制飞机降落和起飞的两个队列的两个指针,其中包括四个变量,队首front,队尾rear,记录队中元素个数从而知道等待起飞和等待降落的飞机的数量变量count,最后是用于储存降落和起飞飞机的两个队列,大小由事先定义的宏 MAXQUEUE指定。 3)kind Action 枚举变量用于标定飞机的状态,ARRIVE为降落,DEPART为起飞。 2.)程序中的相关函数及其作用: 1)NewPlane :为一架新的飞机家里相关的数据,并将nplanes加1。 2)Refuse :拒绝一架飞机提出的请求,由kind变量决定拒绝飞机的请求是降落还是起飞。 3)Land :处理一架降落的飞机,并记录相应的信息,包括现在的时间,降落飞机的架数和等待的时间。 4)Fly :处理一架起飞的飞机,并记录相应的信息,包括现在的时间,降落飞机的架数和等待的时间。 5)Start:程序的初始化函数,同时包括了用户输入的必要信息,模拟的时间和单位时间内可以起飞和降落飞机的架数。 6)Idle:记录机场为空,并记录下当前的时间,将机场为空的次数加一。 7)Conclude:在模拟结束后,对相关信息进行统计,并打印相关的信息:包括飞机处理飞机的架数,降落飞机的架数,起飞飞机的架数,拒绝请求的飞机的架数,起飞飞机等待的时间,降落飞机等待的时间,空闲的时间,结束的时间等模拟的信息 8)Randomize:产生一个伪随机数。 9)PoissonRandom :模拟Poisson分布。返回Poisson分布下,一定概率下所对应的整数值。 10)UserSayYes:确定用户是否继续运行程序,继续,则返回1,不继续,返回0。 队列系列函数: 10) CreateQueue :创建一个队列,并初始化为空。 11) Queuefull:用来判断队列是否为满,若队列满,返回1;否则返回0。 12) Queueempty:用来判断队列是否为空,若队列空,返回1;否则返回0。 13) Queuesize:返回队列中存储的元素的个数。 14) Add:将一架飞机加入相应的队列。 15) Remove:将一架飞机移除出队列。 3).程序流程: 1)初始化,给出了程序的作用,并给出了用户需要输入的相关的信息, 包括单位时间内可以起飞或者降落的飞机的数量expecteddepart,expectedarrive,还 有模拟机场运行的时间endtime。还有一个用于产生伪随机数的程序。 2.)令当前的时间curtime 为1,根据输入的endtime,做for循环: (1)首先根据expecteddepart,expectedarrive,调用Randomize函数和PoissonRandom函数,用在(1)中产生的伪随机数返回Poisson分布下对应的数值pri(这里只取整数),分别在控制两个for循环,每次循环都是根据飞机的状态是ARRIVE还是DEPART(由枚举变量kind随机决定),分别向起飞队列和降落队列提出请求,如果队列已满,则拒绝请求(Refuse函数),如队列未满则加入队列(Add函数)。 (2)判断降落队列pl是否为空,如不空,说明有飞机等待降落,将飞机从队列pl中清除Remove函数,同时飞机降落,记录下相关的信息:包括飞机的编号,降落时的时间,等待时间(Land函数)。如没有飞机等待降落,则处理起飞队列pt。过程与处理飞机降落类似,由Remo

文档评论(0)

wumanduo11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档