结对编程——电梯调度

12061181 高孟烨

12061182 郝倩

1、结对编程的优缺点:

优点:结对编程可以结合两个人各自擅长之地,充分发挥两个人各自的优势,两个人一起合作效率会更高。一份工作两个人一起完成,每个人的强项、弱项不同,如果分工合理,便可以事半功倍

缺点:如果两个人的实力相差太大,则会造成沟通困难,一起写程序也会遇到一定的麻烦。或者如果有人态度不端正,无法进行好的沟通交流,则会使任务失败,两个人也得不到应有的锻炼。

2、各自优缺点:

高孟烨:算法构建能力较强;做事认真,细致;善于思考。动手能力相对较弱。

郝倩:时间观念强;代码能力不弱;很认真。做事情不是很细致,构建算法时会有一些漏洞。

3、一起合作编程的照片

4、Design by Contract, Code Contract

契约式设计的核心是断言(assertion)。所谓“断言”,是指永远为真的布尔型语句,如果不为真,则程序必然存在错误。它使用了三类断言:后继条件(post-conditions),前提条件(pre-conditions),以及不变量(invariants)。

  由于信息隐蔽原则,我们在调用一个接口时,并不知道它内部实现的细节。为了顺利使用接口,首先需要满足前提条件。这个前提条件就是指在执行操作之前,期望具备的环境。满足前提条件接口使用顺利后,自然而然得到了一个后继条件——指操作执行完之后的情况。不变量是关于类(class)的断言,无论是否能对该对象调用某种操作都需要满足的条件。

5、算法思想:

电梯的状态从大的方面无非可以分为两种:

(1)电梯停止时:若电梯内有人,则目的地为该楼层的乘客离开电梯,发出请求的楼层为该楼层的乘客进入电梯,接着调度离当前楼层最近的请求。若电梯内没人,选择等待队列里离当前楼层最近的请求,如果等待队列也为空,则电梯停止不动。

(2)电梯运动时:在每层判断是否有该层到当前目标楼层之间的的外部请求,若有则判断方向是否与电梯运行方向一致,以及请求发出时间是否在电梯到达发出请求所在楼层的时间之前,若符合以上条件,则电梯在该外部请求发出的楼层停,开门使乘客进入,关门;若不符合,则继续顺序执行。

另外在判断以上各条件完成之后,能使乘客真正进入电梯并有电梯完成其请求,还要判断一下几个条件:

a)该请求的fromfloor以及tofloor是否为该部电梯的可达楼层

b)若乘客可以进入电梯,电梯是否会超载(参考每部电梯的重量和人数限制)

如果这两个条件至少有一个不满足,那么这位乘客就不能进入这部电梯到达自己的目的地,只能等待其他符合条件的电梯来搭乘。

6、unittest

7、UML图

Pair Project 1 elevator的更多相关文章

  1. 软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] [附加题]

    软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] [附加题] 首先,在分组之前,我和室友薛亚杰已经详细阅读了往届学长的博客,认为电梯调度 ...

  2. 软件工程 --- Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]

    软件工程  ---   Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] 说明结对编程的优点和缺点. 结对编程的优点如下: 在独立设计.实现代码的过程中不 ...

  3. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]:谢勤政-11061197,吴润凡-11061185

    一,关于结对编程 结对编程的优点: 1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力. 2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高 ...

  4. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]:刘耀先-11061183,罗凡-11061174

    本次为我们两个人的第一次结对编程.从总体而言,我们对结对编程比单人编程略显不适应.但是经过一段时间的磨合,我们逐渐的习惯了这种编程方式. 1.  结对编程的优缺点 结对编程的优点: (1)       ...

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

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

  6. 结对项目 Pair Project

    结对项目 Pair Project 一人编程,一人操作,共同检查. 源码 https://github.com/dpch16303/test/blob/master/%E5%AE%9E%E8%B7%B ...

  7. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]

    作业提交时间:10月9日上课前. Design and implement an Elevator Scheduler to aim for both correctness and performa ...

  8. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试] --11061188刘强

    结对编程总结 队员:刘强(11061188) 林谋武(11061169) 结对编程: 结对编程的优点: 1.  两个人合作,相比于一个人自己奋斗而言,更能激发自己的潜能:我们在合作过程中,互相学习,互 ...

  9. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]:思考题——谢勤政11061197

    第一题: 大楼里面的电梯一般分区域,或考虑思考题第四题的情况,运行楼层不一样的电梯属于不同的区域.然后在接口IRequest和IPassenger还有IElevator里面都加上int area这个属 ...

随机推荐

  1. Maven 变量及常见插件配置详解

    Maven 的 pom.xml 常用 变量 插件 配置 详解 一.变量 - 自定义变量及内置变量 1. 自定义变量 <properties> <project.build.name& ...

  2. 浅copy与深copy举例

     例1: #!/usr/bin/env python import copy d1 = {'x':1,'y':2,'z':[3,4.5]} d2 = d1 d3 = d1.copy() d4 = co ...

  3. 启动Myeclipse报错“Failed to create the Java Virtual Machine”的解决办法

    我安装的是Myeclipse 10.7.1.装上好久没用,今天启动突然报错:Failed to create the Java Virtual Machine. 检查Myeclipse安装好使用时好的 ...

  4. ES5数组的遍历方式

    /* 遍历数组 */ var arr=[1,2,3,43,55,66,77,99]; /* 遍历数组 function(item,index) */ arr.forEach(function(item ...

  5. Linux下编辑、编译、调试命令总结——gcc和gdb描述

    GCC gcc是linux系统集成的编译器.在linux环境下编辑程序,首先需要克服的便是没有集成开发环境的一键式操作所带来的麻烦.这其中涉及命令行操作.编译选项的设定.文件依赖关系的书写(makef ...

  6. Component name与package name/class name的关系?

    谢谢,那就是component name是package name + activity name?那class name呢?是.java中定义的class MyClass ???

  7. 启动Myeclipse报错“Failed to create the Java Virtual Machine”的解决办法

    我安装的是Myeclipse 10.7.1.装上好久没用,今天启动突然报错:Failed to create the Java Virtual Machine. 检查Myeclipse安装好使用时好的 ...

  8. shell编程之测试和判断

    一.测试 程序运行中经常需要根据实际情况来运行特定的命令或代码段.比如判断某个文件或目录是否存在,如果文件或目录不存在,可能首先创建文件或目录.举例说,要判断文件/var/log/mlocate文件是 ...

  9. 如何在Qt Creator中导入图标资源

    本文主要描述如何在Qt Creator中创建资源文件,并的打入导入图标文件. 查看图标资源文件时,可以在项目的工程文件上鼠标单击右键-Open With-资源编辑器,效果如下图所示: 在项目的工程文件 ...

  10. strcat、num2str

    文章出处: http://blog.sina.com.cn/s/blog_6fb8aa0d01019id5.html http://wenda.so.com/q/1439143662729624 ht ...