pair project elevator

摘要:
所谓的“断言”是指始终为真的布尔语句。如果不是真的,程序肯定有错误。它使用三种类型的断言:后续条件、前提条件和不变量。不变量是关于类的断言。无论是否可以对对象调用操作,都必须满足这个条件。

结对编程——电梯调度

12061181 高孟烨

12061182 郝倩

1、结对编程的优缺点:

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

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

2、各自优缺点:

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

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

3、一起合作编程的照片

pair project elevator第1张

4、Design by Contract, Code Contract 

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

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

5、算法思想:

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

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

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

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

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

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

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

6、unittest

pair project elevator第2张

7、UML图

pair project elevator第3张

免责声明:文章转载自《pair project elevator》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇阅读作业2读《移山之道——VSTS软件开发指南》下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

再说MVC

MVC是什么?多层构架又是什么? 首先不要把这两个东西混在一起,它们是两个东西,首先说一个多层构架,它一般指将项目分为三个层次进行开发,即UI(WEB)表示层,BLL(Service)业务层和DAL(Data)数据访问层,它是一种开发项目的模式,也是多人开发的一种最好的选择;而MVC它是建立在UI(WEB)表示层中的一种将代码与页面分层和对URL优化的一种方...

第一种方式:cookie的优化与购物车实例

一 Cookie 的优化 1.1 一般而言,我们设置cookie是在php中设置 例如: <?php setcookie('testKey1','hello world',0,'/'); //# 当 expires = 0 时,此Cookie随浏览器关闭而失效, ?> 而在验证的时候,我们通常是: &l...

VC下的Time

今天接触了VC下的时间,COleDateTimeCOleDateTimeSpanCTimeCTimeSpantmtime_t::mktime()1.获得当前时间:COleDateTime::GetCurrentTime()CTime::GetCurrentTime()2.把long转成时间:long lTicks = XXXXXXX;time_t srcTi...

[bxd学习java基本点]8.linkedList的一个封装,可为堆栈及队列。++++一句话来看continue与break++++ArrayList除重复的标准写法+++++++++

day14-09 linkedList 堆栈 先进先出,如同一个杯子; 队列 先进先出 fisrt in first out 如同水管。 removeLast;removeFirst package test.bixiangdong; import java.util.LinkedList; public class Test { priva...

家常菜之豆豉蒸鸡翅

从网上搜到的一道家常菜,今天试做了一下。做法如下: 豆豉蒸鸡翅原料:豆豉、鸡翅、生姜、葱、胡椒、辣椒、酱油、盐、食用油适量。制作:1、将鸡翅放在葱、辣椒、酱油、盐中稍腌入味。2、将鸡翅撒上豆豉放入盘中,再放入长姜丝,加入原调味汁和味精,食用油等上笼蒸熟。3、上桌前,加上一点葱花和红辣椒丝。 感觉这样做鸡肉能够入味。...

Bjarne Stroustrup's C++ Style and Technique FAQ

Stroustrup: C++ Style and Technique FAQ Bjarne Stroustrup's C++ Style and Technique FAQ Modified December 17, 2011 These are questions about C++ Style and Technique that people as...