阅读下列说明和有关的图表,回答问题1至问题3。
【说明】 A公司决定为该市车站开发自动售票系统,系统的要求如下:
(1)乘客能按以下3步操作购票:选定目的地;投入钱币;获得一张票;
(2)当且仅当乘客选定目的地后,系统才接收受投钱;每次投入的钱只购买一张票;
(3)只要投入的钱不少于所需的票价,且票库中有所要求的票,则应尽快出票;
(4)如需找钱,则应在出票的同时退还多余的钱;
(5)如果乘客投入的钱不够票价,或者票库中没有所要求的票时,系统将全额退钱,并允许乘客另选目的地,继续购票;
(6)出票前乘客可以按[取消]按钮取消购票,系统将全额退出该乘客投入的钱,并允许乘客另选目的地,继续购票;
(7)出票结束(包括退还多余的钱)后,系统应保存销售记录,并等待乘客购票。
该系统还要求快速响应和操作同步,所以它应是一个实时系统。为此,A公司在该系统的数据流程图中附加了过程控制部分,形成转换图。在该图中,控制流(事件流)用虚线表示,数据流用实线表示。图中的数据流并没有画全,需要考生填补。转换图如图1-14所示。
对售票全过程进行的控制可以用系统内部各个状态之间的迁移来描述,从而形成状态迁移图。在状态迁移图中,用双线框表示状态,用有向边表示状态的迁移。引起状态迁移的事件及由该事件引起的动作,在有向边旁用“”形式注明。状态迁移图如图1-15所示。
该公司还制作了一个过程启动表,用以表明状态迁移图中的4个动作与转换图中的4个过程之间的“启动”关系,即说明哪个动作将启动哪个过程。用1表示启动,用0表示不启动。启动的过程将根据获得的输入数据产生输出数据,未启动的过程则不会产生输出数据。
该表中没有列出的过程,其执行与否与事件无关。过程启动表如表1-2所示。
在过程启动表中,d、e处应填什么请分别用4位二进制码表示。
参考答案:
d:1001,e:1000。
解析:
[分析]: 本题也是一个综合题,题中给出了自动售票系统的转换图和状态迁移图。 问题1是补充转换图中缺少的数据流。转换图是在数据流图中附加了过程控制的部分,该图描述了自动售票系统的基本行为。根据题中说明,“只要投入的钱不少于所需的票价,且票库中有所要求的票,则应尽快出票”,可知核查需要查对库存是否有所需的票、投入的钱是否足够,显然应有从“接收目的地”到“核查”的数据流:目的地,应有从“接受钱”到“核查”的数据流:投入的钱。根据说明,“如果乘客投入的钱不够票价,或者票库中没有所要求的票时,系统将全额退钱,并允许乘客另选目的地,继续购票”,亦即核查结果为无法出票,则退还钱,另外,若投入的钱多于票价,则在出票的同时应退还多余的钱。因此应有从“核查”到“退还钱”的数据流:剩余的钱。 问题2是识别状态迁移图中的事件。系统处于等待选择目的地状态,检测到目的地后,接受钱,转为接受投钱状态,乘客投入钱后,系统进行核查,若核查正确,系统出票,出票结束后,系统继续等待乘客购票。因此b应该是“核查正确”,c应该是“出票结束”。在出票前,乘客可以按[取消]按钮取消购票,系统退钱,转为等待选择目的地状态,因此a应该是“取消”操作。 问题3是填充过程启动表。对于“退钱”这个动作,必须要启动“退还钱”进程,由状态迁移图可知,“退钱”动作结束后,系统会回到状态“正在等待选择目的地”,因此还应启动“接收目的地”进程,因此d应该是1001。 对于动作“接收新目的地”,必须要启动“接收目的地”进程,因此e应该是1000。