当前位置: 首页 > news >正文

Pair Project 1 elevator

结对编程——电梯调度

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图

转载于:https://www.cnblogs.com/gaomy/p/4036946.html

相关文章:

  • DISCUZ 学习笔记四 SEO 设置 板块 分区 导航 模板 修改浏览器标签powerbydis
  • JVM 运行时数据区域
  • JVM调优的几种策略(转)
  • JavaScript生成GUID的方法
  • 领悟得太迟
  • 关于最近WIN7系统错误711的解决办法
  • 如何重现难以重现的bug
  • tcp/ip
  • Oracle笔记 一、oracle的安装、sqlplus的使用
  • sort命令
  • linux http服务器web网页的不同安全机制
  • Object-C代码练习【复制对象的基本概念】
  • 升级Flash Builder 4.6中的Flash Player版本
  • Linux subversion服务配置
  • NLog官方文档
  • 2017届校招提前批面试回顾
  • android图片蒙层
  • eclipse(luna)创建web工程
  • eclipse的离线汉化
  • java中的hashCode
  • QQ浏览器x5内核的兼容性问题
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 聚类分析——Kmeans
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 最近的计划
  • Android开发者必备:推荐一款助力开发的开源APP
  • hi-nginx-1.3.4编译安装
  • 国内开源镜像站点
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #NOIP 2014#Day.2 T3 解方程
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (12)目标检测_SSD基于pytorch搭建代码
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (论文阅读30/100)Convolutional Pose Machines
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET Core引入性能分析引导优化
  • .NET 读取 JSON格式的数据
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET4.0并行计算技术基础(1)
  • /bin/rm: 参数列表过长"的解决办法
  • @Autowired @Resource @Qualifier的区别
  • @Bean注解详解
  • @Transaction注解失效的几种场景(附有示例代码)
  • [android] 练习PopupWindow实现对话框
  • [AutoSar NVM] 存储架构