2020软件工程第四次作业-结对作业

软件工程第四次作业

 
博客信息沈阳航空航天大学计算机学院2020软件工程作业
作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/10685
课程目标 熟悉一个“高质量”软件的开发过程
作业目标 结对编程练习

1.题目介绍

  • 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示,其使用规定如下:
  • 楼层号为0~20,其中0号为地下一层
  • 有楼层限制的电梯不在相应楼层停靠,如单双层
  • 所有电梯采用统一按钮控制
  • 请根据上述要求设计并实现一个电梯控制程序,使得用户平均等待时间尽可能小,如果有图形显示就更好了。
  • 算法设计方面问题,大家也可以咨询助教,或者参考这篇文章
  • 另外大家也可以参考邹老师的这篇文章
电梯编号可服务楼层最大乘客数量最大载重量
1 全部楼层 10 800 kg
2 单层 10 800 kg
3 双层 10 800 kg
4 全部楼层 20 2000 kg

2.角色分配

驾驶员:1701班张静玄
领航员:1701班王宣哲

3.开发介绍

(1)操作界面

由于以前并未学习visual studio19中的可视化界面制作部分,所以使用了执行窗口来替代

(2)算法

look算法

4.功能介绍

 介绍:

  • 实时状态:可以在窗口中监听每个电梯目前的属性,如当前层数,运行状态,电梯人数,电梯承重,电梯即将运行的。
  • 电梯信息:可以在不同序号对应的不同电梯信息中获取具体信息,电梯存在一个初始楼层,平均分布在大楼中,空闲时会自动回到初始楼层。
  • 乘客信息:由于没有可交互界面,所以乘客的申请层数,目标层数,申请时间由内部函数随时间输入
  • 电梯运行刷新:界面显示为上帝视角,可观测到乘客请求队列,每个电梯的目标运行队列等,电梯状态按秒刷新

5.合作讨论照片:

6.运行结果样例:

 

7.总结:

在本次结对编程作业中,我担任驾驶员角色完成代码的编写工作,王宣哲同学在本次作业中担任领航员工作。王宣哲同学身为领航员,很好的尽到了一个领航员的职责,本次代码量巨大,将近700行的代码,我曾一度毫无思绪,但是王宣哲同学积极与我交流思路,攻克难题,一起完成了这次代码,并且在完成代码后,对代码的变量的命名,函数的命名等代码规范问题进行了严格的排查,然后经过讨论,简化了部分繁杂的逻辑代码,修改了部分阅读者难以理解的变量名以及注释,并且将主要函数调出进行单元测试。此次代码工作量比较大,身为驾驶员的我深切感受到了长代码编写的困难,编写历时2天,几乎一直在编写代码,一开始看题目以为是一个比较容易实现的一个算法,结果随着编写的进行,发现需要考虑的问题越来越多,从四部电梯的乘客分配,以及电梯的基本移动,都需要考虑很多方面的问题,才能让电梯快速且准确的将乘客送至目的地,所以生活中看似简单又使用的电梯算法,也需要程序员缜密的思考与编写,才能让用户的体验更好。本次作业,我获益颇多,提高了我对长代码的编写、调试能力,也磨练了我的意志力,让我能以更加从容的心态去面对未来更大的编程项目。

8.代码

电梯调度(Look算法)

原文地址:https://www.cnblogs.com/billgatesroy1019/p/12805574.html