考核题目 题目 问题描述: 要求设计一仿真程序实现N部电梯的有效调度运行。该实例是一个电梯载客 问题,问题的描述如下 某贸易中心共L层,设有载客电梯N部 电梯的运行规则是:可到达每层。初始时:有N/部电梯处在一层 Nβ3部电梯处在顶层,N/3部电梯处在第N/2层,空梯 每部电梯的最大乘员量均为K人K*100Kg(K值可以根据仿真情 况在10~20人之间确定)。 仿真开始后,任一层都有可能有人请求乘电梯 每个人所要到达的楼层是随机的,开始在任一层等待电梯到来。 每个人乘坐电梯到达指定楼层后消失。 结束条件时方针时间到。 电梯运行速度为S秒/层(S值可以根据仿真情况在1~5之间确定), 每人上下时间为T秒(T值可以根据仿真情况在2~10之间确定) 电梯运行的方向由先发出请求者决定,不允许后发出请求者改变电 梯的当前运行方向,除非是未被请求的空梯。 设计一个易于理解的界面,动态显示各梯的载客与运行情况(上、 下或停止),动态显示各楼层的人员停留情况与要求乘梯情况;动 态显示从仿真开始到目前的时间。 尽可能接近实际电梯的运行情况 题目二 问题概述 ①有一种自动售货机VM,可售三种商品:可乐(每听$025), 咖啡(每听$0.30),餐巾纸(每包$005)。每种商品的示意图形下 方都有一个按钮。一台VM中最多能够容纳NC听可乐、NF听咖 啡、NT包餐巾纸。 ②顾客使用ⅴM购买商品时,先从投币口投入硬币(共有三种硬 币:$005:$0.10;$0.25),在投入的硬币总值达到或超过其欲购 商品之价格后,再按下对应商品的按钮,VⅥM即从出货口自动吐出 件商品,并从找币口找零 如果顾客在其投入的硬币总值没有达到其欲购商品之价格时就 按下了对应商品的按钮,或者最近一次投币30秒后既不继续投币, 也不按下商品按钮,ⅴM均从找币口吐出与该顾客已投入的硬币总 值等值的硬币,但不吐出商品
考核题目 题目一 问题描述: 要求设计一仿真程序实现 N 部电梯的有效调度运行。该实例是一个电梯载客 问题,问题的描述如下: – 某贸易中心共 L 层,设有载客电梯 N 部。 – 电梯的运行规则是:可到达每层。初始时:有 N/3 部电梯处在一层, N/3 部电梯处在顶层,N/3 部电梯处在第 N/2 层,空梯 – 每部电梯的最大乘员量均为 K 人/K*100Kg(K 值可以根据仿真情 况在 10~20 人之间确定)。 – 仿真开始后,任一层都有可能有人请求乘电梯。 – 每个人所要到达的楼层是随机的,开始在任一层等待电梯到来。 – 每个人乘坐电梯到达指定楼层后消失。 – 结束条件时方针时间到。 – 电梯运行速度为 S 秒/层(S 值可以根据仿真情况在 1~5 之间确定), 每人上下时间为 T 秒(T 值可以根据仿真情况在 2~10 之间确定)。 – 电梯运行的方向由先发出请求者决定,不允许后发出请求者改变电 梯的当前运行方向,除非是未被请求的空梯。 – 设计一个易于理解的界面,动态显示各梯的载客与运行情况(上、 下或停止),动态显示各楼层的人员停留情况与要求乘梯情况;动 态显示从仿真开始到目前的时间。 –尽可能接近实际电梯的运行情况 题目二 问题概述 – ① 有一种自动售货机 VM,可售三种商品:可乐(每听$0.25), 咖啡(每听$0.30),餐巾纸(每包$0.05)。每种商品的示意图形下 方都有一个按钮。一台 VM 中最多能够容纳 NC 听可乐、NF 听咖 啡、NT 包餐巾纸。 – ② 顾客使用 VM 购买商品时,先从投币口投入硬币(共有三种硬 币:$0.05;$0.10;$0.25),在投入的硬币总值达到或超过其欲购 商品之价格后,再按下对应商品的按钮,VM 即从出货口自动吐出 一件商品,并从找币口找零。 – ③ 如果顾客在其投入的硬币总值没有达到其欲购商品之价格时就 按下了对应商品的按钮,或者最近一次投币 30 秒后既不继续投币, 也不按下商品按钮,VM 均从找币口吐出与该顾客已投入的硬币总 值等值的硬币,但不吐出商品
④如果顾客欲购之商品已经售完,则在顾客按下该商品的按钮后, VM从找币口吐出与该顾客已投入的硬币总值等值的硬币。 ⑤当某种商品还剩NL听/包时,VM即自动发出短信,将VM的 代号和缺货的商品名称通知管理人员。管理人员将在时间TM后收 到短信,再用时间TS到达VM,并使VM的所有商品存货都达到 最大容纳量,取走VM中的硬币,并留有找零的硬币:$005、$0.10 $025分别留C5、C10、C25枚 须仿真的活动及开发结果的行为特征 、开始仿真时,应随机产生ⅴM中三种商品的存货量(不能超过 其最大容纳量)和ⅴM中三种硬币的数量(分别不小于C5、C10 C25枚)。 2、仿真中,应随机产生前来购物的顾客,随机产生其欲购买的商 品种类,随机产生顾客的投币行为(包括③描述的行为),按问题 域概述给出的要求进行ⅴM自动售货活动的仿真 3、NC、NF、NT、NL、C5、C10、C25的值应在运行仿真程序时 用命令行给出,或者在开始仿真时从界面输入 4、实时显示各种商品的当前存货量。 5、出现情况⑤时,应显示所发的短信内容,并随机决定TM和TS 的值。在管理人员到达M之前,应照常进行顾客购物的仿真。 管理人员加货和取款的持续时间可忽略不计。 6、仿真开始后,应自动记销售流水帐。该流水帐的每一行对应着 次售货,记录着所售出的商品名称和售出时间。 7、仿真结束时,应自动产生销售报表。该报表应给出本次模拟过 程中:每种商品的销售总量与价值合计;所有售出商品的价值总计; 每种商品的库存量:模拟开始、结束时各自的库存金额:管理人员 每次加货的时间、各商品加货量、取走的硬币总额。 注意:界面能说明问题即可,切忌把主要精力放在界面上而忽视了实质问题 提示 可能有些同学面临的问题是如何既要计时、又要改变相关对象的状 态、还要展示出当前所有对象的相关状态。实际上,完全可以用串 行方式来模拟并发的活动。建议大家想象一下动画片的原理:将多 个固定和静止的画面定时、按顺序地放映出来,就变成了活动的画 面。所以,可以在程序中定义一个主循环,在该循环外进行必要的 初始化,进入后每秒钟执行一次,以遍历方式一一激励当前已经产 生的对象,由它们根据自己的当前状态和相关的状态变化规则,决 定是否需要改变、改变成什么样的下状态,以及按照上述行为特征 的设计展示必要的对象状态。 另外,顾客到达的概率本应服从泊松分布,但目前语言直接提供的 伪随机数产生函数是服从均匀分布的,因此可以简化成均匀分布 选作 学有余力的同学可在完成本作业的基础上,扩大自己的想象力,选 作更接近实际要求的内容。例如,VM销售的商品种类与价格是在 运行时设定的,而不是预先规定死的
– ④ 如果顾客欲购之商品已经售完,则在顾客按下该商品的按钮后, VM 从找币口吐出与该顾客已投入的硬币总值等值的硬币。 – ⑤ 当某种商品还剩 NL 听/包时,VM 即自动发出短信,将 VM 的 代号和缺货的商品名称通知管理人员。管理人员将在时间 TM 后收 到短信,再用时间 TS 到达 VM,并使 VM 的所有商品存货都达到 最大容纳量,取走 VM 中的硬币,并留有找零的硬币:$0.05、$0.10、 $0.25 分别留 C5、C10、C25 枚。 须仿真的活动及开发结果的行为特征 – 1、开始仿真时,应随机产生 VM 中三种商品的存货量(不能超过 其最大容纳量)和 VM 中三种硬币的数量(分别不小于 C5、C10、 C25 枚)。 – 2、仿真中,应随机产生前来购物的顾客,随机产生其欲购买的商 品种类,随机产生顾客的投币行为(包括③描述的行为),按问题 域概述给出的要求进行 VM 自动售货活动的仿真。 – 3、NC、NF、NT、NL、C5、C10、C25 的值应在运行仿真程序时 用命令行给出,或者在开始仿真时从界面输入。 – 4、实时显示各种商品的当前存货量。 – 5、出现情况⑤时,应显示所发的短信内容,并随机决定 TM 和 TS 的值。在管理人员到达 VM 之前,应照常进行顾客购物的仿真。 管理人员加货和取款的持续时间可忽略不计。 – 6、仿真开始后,应自动记销售流水帐。该流水帐的每一行对应着 一次售货,记录着所售出的商品名称和售出时间。 – 7、仿真结束时,应自动产生销售报表。该报表应给出本次模拟过 程中:每种商品的销售总量与价值合计;所有售出商品的价值总计; 每种商品的库存量;模拟开始、结束时各自的库存金额;管理人员 每次加货的时间、各商品加货量、取走的硬币总额。 注意:界面能说明问题即可,切忌把主要精力放在界面上而忽视了实质问题。 提示 – 可能有些同学面临的问题是如何既要计时、又要改变相关对象的状 态、还要展示出当前所有对象的相关状态。实际上,完全可以用串 行方式来模拟并发的活动。建议大家想象一下动画片的原理:将多 个固定和静止的画面定时、按顺序地放映出来,就变成了活动的画 面。所以,可以在程序中定义一个主循环,在该循环外进行必要的 初始化,进入后每秒钟执行一次,以遍历方式一一激励当前已经产 生的对象,由它们根据自己的当前状态和相关的状态变化规则,决 定是否需要改变、改变成什么样的下状态,以及按照上述行为特征 的设计展示必要的对象状态。 – 另外,顾客到达的概率本应服从泊松分布,但目前语言直接提供的 伪随机数产生函数是服从均匀分布的,因此可以简化成均匀分布。 选作 – 学有余力的同学可在完成本作业的基础上,扩大自己的想象力,选 作更接近实际要求的内容。例如,VM 销售的商品种类与价格是在 运行时设定的,而不是预先规定死的