结对编程之电梯调度

编程任务:电梯调度

结对人员:左少辉-12061209,杨昊兰-12061202,吕雨朗

一、此次软工作业确实是让人却步的不敢开始,不过结对编程使得我对完成作业又有了信心,开始没有积极组队的我落单了,后来只能是申请加入已经组好的队伍,所以我们其实是一个三人组,都说人多力量大,想法也就会开阔许多,做起作业来也会顺利许多。起初对作业不是很了解,光是看英文要求就已经醉了,后来还是硬着头皮开始了漫长的代码阅读,浅学c#觉得语法也就一般般,不过看到如此绚丽的代码还是各种懵~确实一个人做起来简直是困难,但是我们是一个团队,众人拾柴火焰高。队友们给我许多感触和帮助。下面谈谈队友们的优缺点。杨昊兰是一个很有想法 的人,对新的事物他总能很快的去适应和掌握,而且会毫无保留的和我们交流,只是危机感不足。吕雨朗有较好的团队精神,能积极投入到协作中并时常给出一些建议。

照片:

二、结对编程优缺点

优点:

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

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

(3)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。

(4)结对编程的过程也是一个互相督促的过程,每个人的一举一动都在别人的视线之内,所有的想法都要受到对方的评价。由于这种督促的压力,使得程序员更认真地工作。结对编程“迫使”程序员必须频繁地交流,而且要提高自己的技术能力以免被别人小看。

(5)结对编程让两个人所写的代码不断地处于“复审”的过程。复审是不断地审核,提高设计和编码质量的过程,这样能够及时地发现问题和解决问题,避免把问题拖到后面的阶段。

缺点:

(1)结对编程是一个相互学习、相互磨合的渐进过程。开发人员需要时间来适应这种新的开发模式。刚开始的结对编程很可能不比单独开发效率更高。

(2)如果团队的人员要在多个项目中工作,不能充分保证足够的结对编程时间,那么成员要经常处于等待的状态,反而影响效率。

(3)当其中一人希望独自思考一段时间时,有可能会被认为是一种不合作的表现。

三、(1)Information hiding 信息隐藏

信息隐藏是程序设计过程中的一种隔离原则,可以防止用户接触到一个类的某些部分。一个程序模块可以将它的信息隐藏起来,对外仅仅展现出一种接口。当 这个模块的具体实现发生改变时,只要保证它的接口不发生变化,则就算不修改模块外的其他代码,程序依旧可以正确执行。这种接口的设计保证了整个工程的稳定 性。通过阅读和了解教科书和其它资料中关于 Information Hiding, interface design, loose coupling 的章节,我知道了要想切实掌握一个方法或者库函数的运用,首先你必须学会从阅读开始,认真了解方法的属性,知道方法调用的作用是什么,然后根据自己程序的需要选择是否调用以及如何调用方法实现程序的简洁化和最优化。

(2)interface 接口设计

软件的接口设计元素描述了信息如何流入和流出系统以及被定义为体系结构一份的构件之间是如何通信的。这次的作业中用到的主要是各种设计构件之间的内 部接口,通过这些接口让软件体系结构中的构件之间进行内部通信与协作。接口实现时,保证所有操作和消息传递模式都得到实现,且不同类的操作之间能够进行通 信和协作。

(3)losing coupling 松耦合

耦合是类之间彼此联系程度的一种定性度量。因为随着通信和协作数量的增长,类之间的联系程度越来越强,系统的复杂性也随之增长了,类之间的耦合程度 也就增加了。通过增加接口,使类之间的通信协作通过接口很好的完成,保证程序尽可能保持低耦合。松耦合系统通常是基于消息的系统,此时客户端和远程服务并 不知道对方是如何实现的。客户端和服务之间的通讯由消息的架构支配。只要消息符合协商的架构,则客户端或服务的实现就可以根据需要进行更改,而不必担心会 破坏对方。松耦合通讯机制提供了紧耦合机制所没有的许多优点,并且它们有助于降低客户端和远程服务之间的依赖性。

四、Code Contracts--设计合同(DBC),也被称为契约编程,通过合同和合同的程序设计编程,是一个设计软件的方法。它规定的软件设计师应该定义形式,精确的、可验证的软件组件的接口规范,从而扩展的先决条件一般抽象数据类型的定义,后置条件和不变量。这些规范被称为“合同”,按照与商业契约的条件和义务概念隐喻。初步了解了设计合同的概念以及其在软件设计中的作用,所以还是试着在程序中运用到这方面的知识,所以在程序中也用到了规范的组件接口,数据类型。

五、UML设计图

六、UNit-test

七、算法说明

建立请求队列用来存储乘客及请求,现有四个电梯,发现请求时考虑可以到达的最近的电梯将它分配给乘客请求,分配的过程中需判断载重量是否可行并且进电梯后检验目标楼层和是否在电梯可以到达的范围内,若可行则分配电梯通往目标楼层,期间考虑顺路的情况,若顺路并满足搭载请求则顺路带走,若电梯不能搭载则将请求返回请求队列,等待下一个电梯分配的到来,电梯到达目的地后无请求则返回一层等待。

时间: 2024-08-03 19:45:54

结对编程之电梯调度的相关文章

结对编程:电梯调度

电梯调度项目: 项目分析与需求: 从题目上来看,项目要求编写一个掌控电梯的程序.电梯这个东西,大家都乘过,无非就是:乘客上电梯,判断是否超重,乘客选择想要达到的楼层,最后依次去到离需求最近的一个楼层. 项目中要求有四个电梯,其中第一号和第四号电梯是一模一样的,只需要把负载量给修改即可:第二和第三也大同小异,只需要把负载量和输入楼层的判断方式修改一下即可. 在我们的设想中,我们要达到的效果是这样的:得有一个switch语句,来控制一开始的电梯选择界面:之后在case语句之后相应搭载各种需要的语句以

结对编程项目——电梯调度

电梯调度 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 可服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800 kg 2 单层 10 800 kg 3 双层 20 1600 kg 4 全部楼层 20 2000 kg 其使用规定如下: 1.楼层号为0~20,其中0号为地下一层: 2.有楼层限制的电梯不在响应楼层停靠,如单双层: 3.所有电梯采用统一按钮控制 请根据上述要求设计并实现一个电梯控制程序,如果有图形显示就更好了. 伙伴介绍与评价: 本次结

结对编程作业——电梯调度

作业要求: 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 可服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800 kg 2 单层 10 800 kg 3 双层 20 1600 kg 4 全部楼层 20 2000 kg 其使用规定如下: 1.楼层号为0~20,其中0号为地下一层: 2.有楼层限制的电梯不在响应楼层停靠,如单双层: 3.所有电梯采用统一按钮控制 请根据上述要求设计并实现一个电梯控制程序,如果有图形显示就更好了. 需求分析: 1.共有4

结对编程项目--电梯调度(合作伙伴叶思维)

我们所完成的项目是电梯调度,具体要求如下: 一.项目以及合作伙伴 项目:现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 客服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800kg 2 单层 10 800kg 3 双层 20 1600kg 4 全部楼层 20 2000kg 其使用规定如下: 1.楼层号为0到20,其中0为地下一层. 2.有楼层限制的电梯不在响应楼层停靠,如单双层. 3.所有电梯采用统一按钮标志. 合作伙伴:叶思维博客网址http://

结对编程之电梯调度算法

   电梯调度结对编程                             1.题目:设计一个电梯调度算法,实现基本的电梯调度功能,要求有四部电梯,每部电梯21层,并且具有重量检验算法. 2.设计前的准备:确定了结对之后,我们首先对设计中可能遇到的问题进行了大体的分析与讨论,确定了编程的方向(java语言)并且约定了一些编程规范,语法规范为使用eclipse中的format规范代码,其他可能遇到的编程问题会在开发中随时交流.接着我们对题目进行了更深入的分析,考虑到电梯运行时的各种情况并发表自

结对编程之电梯

电梯调度 结对伙伴:朱民福http://http://www.cnblogs.com/zhumf/ 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 可服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800 kg 2 单层 10 800 kg 3 双层 20 1600 kg 4 全部楼层 20 2000 kg 其使用规定如下: 1.楼层号为0~20,其中0号为地下一层: 2.有楼层限制的电梯不在响应楼层停靠,如单双层: 3.所有电梯采用统一按钮控制 请

结对项目开发电梯调度 - 整体设计

一.系统介绍 1. 功能描述 本电梯系统用来控制一台运行于一个具有16层的大楼电梯,它具有上升.下降.开门.关门.载客的基本功能. 大楼的每一层都有: (1) 两个指示灯:  这两个指示灯分别用于指示当前所在的层数和电梯的当前状态(上行.下行或停止): (2)按钮:  除了第一层和顶层,每一层都有两个按钮(上行.下行),乘客可以呼叫上楼或下楼,顶楼只有一个下楼按钮,而第一层只有一个上楼按钮. 2. 电梯里面具有:  标示从“1”到“16”的16个楼层按钮,用于让乘客选择所要的层数: 注:1-8层

电梯调度系统(界面由C图形库编绘)

电梯调度系统编程 1.编程题目 电梯调度. 2.结对编程组员 黄冠译,刘畅. 3.编程语言 C语言图形库. 4.题目要求: 5.代码运行及结果调试: ① 运行界面为C++图形库支持,开始运行的初始界面如图,且默认所有电梯初始状态都为1楼,此时不分奇偶层: ② 我设置了鼠标响应事件,左边上下箭头为当前楼层有人要上或下的按钮,可以用鼠标直接点击响应,点击后要输入有多少人在此楼层等待,示例点击5楼,输入15人,如图所示: ③ 输入完毕后,电梯会根据单双层或全部楼层4个电梯的忙碌状态调度一个电梯过去,第

结对编程—电梯调度

电梯调度 现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示: 电梯编号 可服务楼层 最大乘客数量 最大载重量 1 全部楼层 10 800 kg 2 单层 10 800 kg 3 双层 20 1600 kg 4 全部楼层 20 2000 kg 其使用规定如下: 1.楼层号为0~20,其中0号为地下一层: 2.有楼层限制的电梯不在响应楼层停靠,如单双层: 3.所有电梯采用统一按钮控制 请根据上述要求设计并实现一个电梯控制程序, 程序思想及解决办法 1.楼层问题及解决办法:先定