程序设计基础训练(80L878Q)
实验#7
交付物提交时间要求
详见《程序设计基础训练课程安排表》;
相关知识点
模块化程序设计;
软件开发流程;
软件设计文档编制;
需自学的相关技术
无
实验目的
训练学生强化程序设计与开发能力;
训练学生掌握软件设计开发流程;
训练学生掌握软件设计文档编制方法。
实验内容
程序设计:
1)改造实验6中的程序,将电梯仿真过程的结果输出并存储到结果文件中,输出形式分为两种:第一种为详细过程输
出方式,将电梯每一个时间点所处的状态及正在响应的用户请求输出,输出格式如图7-1所示。
从图7-1可看出,仿真程序对一个仿真用户指令数据记录文件进行了仿真,文件中包含5个用户指令,仿真过程可描述
如下(仿真结果部分):
0 时刻,电梯位于1层,处于停止状态;
3 时刻,第一个用户请求到来,电梯响应。此时电梯位于1层,状态由停止状态变更为上行状态。电梯当前服
务指令变为“<10,5,3>”,对该指令的服务状态为“服务前”,记作:<10,5,3,P>;
12 时刻,电梯到达10层(一个时间间隔电梯走一层)。电梯状态由上行状态变更为停止状态。电梯对指令
“<10,5,3>”的服务状态由“服务前”变更为“服务中”,记作:<10,5,3,E> 。此时,第二条指令
“<9,1,5>”已经到来且判断电梯可以同时响应,因此电梯当前服务指令变为:“<10,5,3,E>,<,9,1,5,P>”;
2
图7-1仿真运行结果详细输出
13 时刻,电梯变为下行状态,此时电梯仍位于10层;
14 时刻,电梯到达9层,等待用户进电梯,电梯状态变为停止。对指令“<9,1,5>”的服务状态变更。电梯当
前服务指令变为:“<10,5,3,E>,<9,1,5,E>”;
15 时刻,电梯开始下行,电梯状态改变。此时电梯位于9层;
19 时刻,A电梯达到5层,对指令“<10,5,3>”的响应结束。电梯处于停止状态,当前服务指令变为:
“<9,1,3,E>”;
20 时刻,电梯开始继续下行,响应指令“<9,1,5>”。此时电梯位于5层,处于下行状态;
24 时刻,电梯到达1层,完成用户指令“<9,1,5>”的响应,电梯状态变更为停止,电梯开始响应新的指令。
此时电梯位于1层,处于停止状态。经过判断后,电梯当前服务指令变为:“<2,8,10,P>,<1,7,15,E>”;
25 时刻,电梯开始上行,电梯状态变为上行。此时电梯位于1层;
26 时刻,电梯到达2层,电梯对指令“<2,8,10>”的服务状态改变,电梯状态变更为停止。电梯当前服务指
令变为:“<2,8,10,E>,<1,7,15,E>”;
27 时刻,电梯开始继续上行,电梯状态变更为上行;
3
32 时刻,电梯到达7层,完成了对用户指令“<1,7,15>”的响应,电梯状态变更为停止。电梯当前服务指令
变为:“<2,8,10,E>”;
33 时刻,电梯开始继续上行,状态转换为上行,此时电梯仍位于7层;
34 时刻,电梯到达8层,完成对用户指令“<2,8,10>”的响应,状态转换为停止。检查待响应指令队列,发
现仍有未响应指令,开始响应新指令。电梯当前服务指令变为:“<10,1,20,P>”;
35 时刻,电梯开始上行接用户,状态转换为上行,电梯仍位于8层,当前服务指令变为:“<10,1,20,P>”;
37 时刻,电梯到达10层,状态转换为停止,对指令“<10,1,20>”的服务状态改变。此时电梯位于10层,处
于停止状态,电梯当前服务指令变为:“<10,1,20,E>”;
38 时刻,电梯开始下行,状态转换为下行,此时电梯仍位于10层;
47 时刻,电梯到达1层,完成对用户指令“<10,1,20>”的响应,整个电梯服务过程结束,仿真结束。
第二种输出形式为概要输出模式,其输出格式如图7-2所示。其中仿真总时长指电梯完成所有用户请求指令的服务所用
的时间总数;电梯运行长度指在电梯仿真过程中总共运动的楼层数,以图7-2所示仿真为例,通过图7-1的仿真详细过程可
以看出,在进行仿真时,电梯先由1层运行到10层(上行9 层),然后又从10层运动到1层(下行9层),再然后又从1
层运动到10 层(上行9层),最后从10 层再次运动到1层(下行9层),所以总运行长度为36层。
图7-2仿真运行结果概要输出
2)在实验6 中,采用循环加sleep函数方式模拟电梯的运行,请在实验6程序,实现当用户选择文件方式输出时,不
执行sleep函数进行延迟;
3)对于仿真结果的输出形式,可以由用户以命令行参数的形式给出;
4)设计功能函数实现对实验4程序配置文件的修改功能;
5)程序通过菜单方式向用户提供功能,提供的功能及菜单显示效果如下:
【菜单显示效果举例】
XXX的实验7程序:
1. 调用实验4程序生成1个数据记录文件并完成对该文件的仿真(控制台输出,不输出结果文件)
2. 调用实验4程序生成1个数据记录文件并完成对该文件的仿真(输出结果文件,详细过程输出方式)
4
3. 调用实验4程序生成1个数据记录文件并完成对该文件的仿真(输出结果文件,概要输出方式)
4. 调用实验4程序生成n个数据记录文件并完成对这n个文件的仿真(输出结果文件,概要输出方式)
5. 调用实验4程序生成n个数据记录文件并完成对这n个文件的仿真(输出结果文件,概要输出方式,带仿真计时)
6. 修改实验4程序的配置文件
0. 退出
请输入您要执行的程序序号:
6)当一次仿真多个数据记录文件时(对应功能菜单中的4、5),将仿真结果概要信息输出到同一个结果文件中去,以
概要输出模式为例,当一次仿真多个数据记录文件时,其输出结果如图7-3 所示。
图7-3 多文件仿真结果效果图
7)当一次仿真多个数据记录文件时(对应功能菜单中的5),记录生成数据记录文件的耗时情况、加载数据记录文件
的耗时情况及电梯仿真程序结果全部生成完成的耗时情况,输出到仿真结果文件中去,其输出结果如图7-4所示。
图7-4 多文件仿真结果效果图(带计时信息)
5
撰写文档:
请同学们参考实验5的设计文档大纲格式,编制电梯仿真程序的程序设计文档(涵盖实验6和实验7),对电梯仿真程
序进行的设计进行详细说明;
结果提交
程序调试通过后,由授课教师课堂检查并记录成绩;
实验完毕后需提交程序工程源代码、release版本程序和程序设计文档,以压缩包的形式提交给任课教师;
请使用本课程所要求的命名规范对压缩包及其内部文件、文件夹进行命名,详见《程序设计基础训练实验命名规
范》;
成绩评定
采分点:
程序是否独立调试通过并运行正常;
程序格式是否规范,程序是否易于阅读;
设计文档内容是否详实、所反映出的学生对实验6、7程序的设计是否完善。
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。