数据结构大型实验题目-2011

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[大型实验基本要求]

1)原则上可以2-4位同学组成实验小组,进行分工合作,但必需保证每位组员都充分

参与实验过程,每位组员应对实验程序的结构、算法、主要技术完全掌握,方可参加实验验收。

2)每组可参考下面大型实验题目和要求,确定一道实验题目,共同设计开发。

3)大型实验时间从第12周开始至17周。原则上,申请大型实验验收后,若实验没有达

到规定的要求,不可再次申请验收,故请大家务必确认程序正确(程序代码和运行结果)后,再申请验收。

每周的周一,周四,周六下午安排上机答疑,地点在健A308和健A310。验收安排在17周的周一下午1:00,第一次验收时间安排在17周的周六下午1:00.

[报告规范] 实习报告的开头应该给出题目、班级、姓名、学号、和完成日期,并包括以

下五个内容:

1.实验内容分析:

明确实验题目目的,设计实验的基本数据结构、类、以及程序的基本流程,程序流程要求以程序流程图明确表示,类及类间关系需明确图示,并给出各函数之间的调用关系。2.实验验证分析:

(1)输入的形式和输入值的范围;

(2)输出的形式;

(3)程序所能达到的功能;

(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。3.调试分析

(1)讨论分析调试过程中的主要技术问题以及具体的解决方法(至少3个);

(2)技术难点分析(至少3个);

(3)印象最深刻的3个调试错误,及修正方法;

4.测试结果:

(1)展示程序的运行结果,包括输入和输出,分析数据的正确性;

(2)应用边界数据、或极端数据测试系统,分析结果的正确性。

5.提交的源代码需带注释,可提交电子版本。

[考核方式]以小组方式进行面试,教师提问,结合工作分工和系统完成情况评分。

[题目]

一、离散事件动态模拟(选做其中一个)

①机场航空管制模拟

【问题描述】假设机场有一条跑道,每架飞机需花费一定时间着陆,花费一定时间起飞,飞机的起降满足一定的概率。一般来讲,机场存在两个队列,一个等待着陆的飞机队列和一个等待起飞的飞机队列,同样等待时间下,等待着陆的飞机比准备起飞的飞机具有更高的优先级。试编写程序模拟这个机场的运行。

【基本要求】使用队列或优先队列实现;要求可以变换起飞和着陆频率来模拟一天中的飞行高峰期和空闲期;要求可以改变着陆和起飞时间以模拟不同的效果。

【实现提示】可以假设有一个每次前进一分钟的模拟时钟,对于每一分钟,产生两个随机数:如果第一个随机数小于landingRate/60,那么一个“着陆到达”将发生并被添加到着陆队列中;如果第二个随机数小于takeOffRate/60,那么一个“起飞到达”将发生并被添加到起飞队列中。接着,检查跑道是否空闲。若空闲,首先检查着陆队列是否为非空,如果是,允许第一架飞机着陆;否则,处理起飞队列。

【运行结果要求】要求能在指定的时间内(如9:00-22:00)完成系统模拟,并计算出跑道的繁忙程度、着陆飞机的总的等待时间和平均等待时间、起飞飞机的总的等待时间和平均等待时间, 计算每架飞机花费在一个队列中的平均时间。

【考核要求】要求程序能正常运行,全面完成题目要求。在多种不同的输入条件下,包括比较极端的输入条件,仍能给出合理的运行结果。若系统死机,可补交一次,成绩降低一等;若运行结果不合理,成绩降低一等。

②银行系统模拟

【问题描述】假设银行有四个服务窗口,初始每个窗口都可以提供服务;模拟开始后,每个窗口都能给出最早空闲时间(即最早可以提供服务的时间);当顾客到达后,总可以看到每个窗口标出的最早可以提供服务的时间,由此来选择窗口,其中,顾客按照一定的频率到达;到达后系统随机产生服务时间,同时产生下一个到达事件的时间。当顾客离开窗口时,该窗口为空闲,即可以为下一个等待顾客提供服务。所有到达事件和离开事件都被插入优先队列。银行系统模拟中的关键部分为客户事件,包括到达事件和离开事件,所有事件都被加上时间戳,放到优先队列中,队列中优先级最高的事件就是时间戳最早的事件。银行模拟中用随机数来决定下个顾客何时到达及当前顾客所需的服务时间,它可保证事件在某一范围内等概率发生。如果,当前到达事件发生在T时刻,下一个到达事件将发生在范围T+arrivalLow和T+arrivelHigh之间。而每个顾客的服务事件在范围ServiceLow和ServiceHigh之间。到达/离开事件数据均应包括:时间、事件类型、顾客号、服务窗口、等待时间、服务时间等。试编写程序模拟银行系统的运行。

【基本要求】使用优先队列实现;要求可以变换客户到达的频率和服务时间,来模拟一天的工作。要求可以改变着模拟时间长度,以24小时制时间表示。

【实现提示】整个系统模拟不是以时钟递减来模拟,而是根据优先队列中的事件发生顺序来模拟,即从优先队列中读出事件,只要队列不空,就处理不同的事件,到达或离开,直到最后一个事件。

【考核要求】要求程序能正常运行,全面完成题目要求,给出各个服务窗口的工作效率、顾客的平均等待时间、总等待时间、总顾客数、总服务时间。。在多种不同的输入条件下,包括比较极端的输入条件,如客户达到频率很高且服务时间很长,仍能给出合理的运行结果。

若系统死机,可补交一次,成绩降低一等;若运行结果不合理,成绩降低一等。。

相关文档
最新文档