在做的云里雾里的individual project之后,这次的pair project让我开始找到了一下软件工程的感觉!其中原因除了C#能稍微捯饬明白了,还有就是合作的力量。

本次结对编程进程:

10.10~10.15 G4和Sui老师各自下载elevframework,尝试读懂代码

10.16~10.19 G4和Sui老师经过交流,发现大家都没怎么读懂框架,但是大限将至,继续读代码的同时也要想算法,Sui老师发了一篇博客

10.20~10.22 G4还苦于代码读不懂,而本班唯一的明白人不知去向,G4想等待明白人归来问之;21号晚,Sui老师开始动手写一个简易版的算法,也就是BUS算法的初级优化版。不管多么简易的算法,能够在着手实践就不简单!怀着对Sui老师的敬佩之情,G4搬着凳子到Sui老师宿舍开始了真正的结对编程。即便是一个简单的算法,在这个框架中实现都要理解了整个框架的工作机制、解决众多的边界问题、细节问题才能成功实现。在李栋大神的帮助下,最终G4和Sui老师用了一晚上的时间搞定了这个算法,虽然只是BUS算法的简单改进,但G4和Sui老师都非常欣喜。不过,既然解决了众多与算法无关的细节问题,G4和Sui老师想可以进一步优化这个算法。G4和Sui老师交流确定下算法后,G4在第二天中午实现了这个算法,运行结果不出意料地更加快了。

初步算法:

BUS算法中,StopAtEachFloor方法令电梯在每层都停靠。我们希望电梯在每次运行前,判断一下下一层是否有内部与外部请求,如果没有就停靠到下下层。

改进算法:

在初步算法基础上,进阶算法中,电梯在每次运行前会从电梯当前楼层开始,到当前方向顶层依次判断此层是否有请求,发现第一个请求时设置此层设为目的地;若直至当前方向顶层也没有请求,则改变运行方向。同时,改进了电梯初始状态时的行为:初步算法中令电梯初始向上运行,进阶算法中当外部请求发出时,判断请求发出楼层,根据电梯当前楼层设置相应的电梯运行方向。

合作编程心得:

 

《移山之道》中,关于结对编程的优点是这样写的:

  (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

  (2)对于开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

  (3)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已被其他人共享。总之,如果运用得当,结对编程能得到更高的投入产出比(Return of Investment)。

在这次pair work中我深切地体会到了前两点:我是个有点懒的人,如果事情有些基本问题搞不清楚我往往感到无从下手,而当别人都开始动手的时候又会有些急躁。但是我对工作很执着,比较完美主义。而partner隋宇豪比较积极主动,勇于实践,但考虑略显不够细致。万事开头难,隋宇豪为我们的结对编程创造了一个良好的开始。当我们的简易算法得以实现后,我并不满足于这个初步的尝试,于是我们共通进行改进、优化。我认为我们两人配合还是很协调的。而结对编程的缺点,如老师在课上所讲,时间安排不如个人灵活、双方需要相互熟悉、磨合的过程、小型项目不需要太多人等。

程序运行结果:

passenger1:

passenger2:

passenger3:

转载于:https://www.cnblogs.com/metalcrash/archive/2012/10/28/2734810.html

G4Sui老师的pair project(197)相关推荐

  1. Pair Project: API设计 by Xiao Li and Yishi Xing

    Pair Project API设计 本次 Pair Project 的内容是设计一个电梯调度系统. 我们认为一套完整的电梯调度系统应该包括以下三个类: (1)      乘客类 (2)      电 ...

  2. Pair Project:电梯控制程序 编写心得 最新版

    (之前不知道这个博客两个人都要写完整的,所以现在补全) 小组:王安然:10061210 李斌:10061150 在这两个星期之中,我与李斌二人组成了一个小组,完成了Pair Project--电梯控制 ...

  3. Pair project(刘昊岩11061156 黄明源11061186)

    Pair project members:刘昊岩11061156,黄明源11061186 两周时间,工程下午刚刚结束,现做一些总结. 在现有工程基础上修改schedule 包下方法,主要思想是,也就是 ...

  4. PAIR PROJECT 总结 PART1 --韦昀

    本次结对编程由我和王熹完成,先发图片 结对编程我们之前从没接触过,关于优缺点书上是这样写的: (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力. (2)对于开 ...

  5. 电梯调度算法 软工 Pair Project

    软工要求的结对编程,随机分组,然后,我(郭立轩)和六班的闫生辉分在了同一组.之前并不认识,虽然如此,这次结对编程的经历还是相当愉快的,也学到了不少东西. OK,下面进入正文 关于结对编程 如何利用结对 ...

  6. Pair Project: Elevator Scheduler Report By Hu Renjun

    0.结对人员 Hu(155) Tan(189) 1.关于结对编程 优点:coder的大部分错误可以在第一时间被reviewer发现,这省下了很多本应当在项目测试阶段花费的时间:   结对编程写出的每一 ...

  7. 【转自lzplzp】pair project总结

    pairproject总结和结果 自从1.2后还有几次修改代码的历程 修改的2.0版本: 主要是针对状态机的优化 Idle 遍历当前请求楼层,如果有楼层,则跑过去. 如果该楼层的请求是destinat ...

  8. Pair Project

    第二次作业的结对编程项目:电梯调度系统 结对编程小组成员:吴煜10061149    全风楠10061186 这次的作业与个人项目不同,不是从头写一个新的程序,而是在一个已有的程序之上做修改然后实现新 ...

  9. 薛非的个人资料编程c语言,上海启航考研英语薛非老师

    上海启航考研英语薛非老师: 薛非,启航龙图考研英语辅导教师,西安外国语大学英语专业硕士,翻译方向.现为大学英语专业讲师,专业口译,曾获得"教学之星"大赛英语专业组全国亚军. 授课科 ...

最新文章

  1. Mysql 内部结构 / Replication | 原理
  2. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(分组颜色配置、位置配置)实战
  3. 下边框_OPPO Find X2颜值有多高?超窄下边框+瀑布屏,看完大写的服气
  4. python:去重(list,dataframe)
  5. 文件存取方式是哪两种python_常用的Python存储方式有哪些?
  6. Broker模块划分
  7. PHP常用函数之字符串处理
  8. OpenCV-矩阵变形reshape
  9. python立方尾不变代码_对于这个蓝桥杯立方尾不变题我用java程序做的,正确结果应该是36,为什么我这样写结果就是12,如...
  10. ASP.NET MVC分页的实现(上)
  11. CSS国际化loader - 国际化图片,中东区域适配
  12. 网上评卷系统连接不到服务器,在网上阅卷系统过程中可能存在的问题及解决方法...
  13. Revisiting Stereo Depth Estimation From a Sequence-to Sequence Perspective with Transformer——阅读阶段
  14. vue遇到ie兼容问题如何处理_Vue 2.0 解决IE浏览器的兼容性
  15. 东芝有刷直流电机驱动器IC TB67H450FNG
  16. 增强Spring @CacheEvict实现key模糊匹配清除
  17. 第一节 java数据类型
  18. M-ATX台式电脑主板的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 音频卡是计算机硬件吗,绝对干货:关于声卡你需要知道的几点知识
  20. 计算机画大熊猫教案,幼儿园大班教案:水墨画《大熊猫》

热门文章

  1. 设计模式学习笔记(二十二:备忘录模式)
  2. 【Maven3教程】Maven多工程、多模块
  3. 检测msmq里消息的数量
  4. Linux /etc/inittab 文件的解读
  5. Exchange bin先常用工具
  6. Java x和y之间的全部素数
  7. 计算机应用基础任务化教程知识点,计算机应用基础任务化教程教学大纲资料.doc...
  8. audio 上一首 下一首 自定义样式_我们的歌:盛典即将来临,勤深深还有一首歌,这场表演值得期待...
  9. anki 插入表格_anki|建造师选择题制作的方法
  10. html特殊字符的html,js,css写法汇总