以下均以扫描方式为例,即电梯只会在最底层和最高层选择掉头,路途中遇到路径方向相同的乘客将他带上电梯。

文字描述面向过程实现的步骤:

一. 定义有关电梯的变量,如:1.电梯当前所在楼层.,2. 电梯内的人数,3. 电梯当前前进的方向,等等。再定义有关乘客的变量,如:请求时刻 ,所在楼层,去往楼层,还可以包括其当前的状态——请求状态,乘坐状态,结束状态。
二 .接收到第一个请求时, 电梯开始工作,从底层开始。
1.上一层。
2.判断是否到达顶层或底层,是则改变方向。
3.判断是否有人符合上电梯条件或下电梯条件,是则拉他上,否则继续前进。
4.判断请求是否已经完成,是则结束,否则继续循环。

对象类图


面向过程 我认为就是需要先整体分析出解决该问题所需要的步骤,然后一步一步去实现它。就以电梯来说,电梯首先接受请求信号,然后打开门,带上乘客,关上门,往上爬,到达目的地,开门,乘客下电梯,关门。一个请求结束。面向过程程序设计方法需要程序员在一开始就全面的,自上而下的设计整个程序的架构,因此要求程序设计者对问题域有全面的了解。这并不适合多个程序员一起工作。
面向对象 我认为就是把一个事件分为多个对象来实现。对象就是一个事物,在编码时先将对象抽象出来,然后构造你所需要的解决环境,在这个环境中将对象和解决方法联系起来。仍以电梯为例,包括:1.乘客,获得所有的输入请求。2.电梯,更新电梯状态 。3.判断结束系统。
可以看出,面向对象按照功能将整个过程划分。面向对象划分的对象便于多个程序员同时对各个部分进行进行更改,比较符合人们追求的效率。

class Elevator
{
private:int currentFloor;   // 电梯当前楼层 int direction;    // 1 代表向上  ,0 代表向下
public:Elevator(int dir = 1, int floor = 0 ,int pp= 0);  // 电梯初始向上走 ,且电梯在第0层~Elevator();int population;void changeDirection(int dir)   // 改变电梯运行方向{direction = dir;}void move(int dir)  // 电梯的移动{if (dir)  currentFloor++;else currentFloor--;}int getCurrentFloor()  // 电梯当前楼层{return currentFloor;}int getDirection(){return direction;}
};
Elevator::Elevator(int dir, int floor, int pp)
{direction = dir;currentFloor = floor;population = pp;
}
Elevator::~Elevator()
{cout << "析构函数"<<endl;
}

转载于:https://www.cnblogs.com/ruanjunxi/p/8995283.html

2017级面向对象程序设计 作业二相关推荐

  1. 2017级面向对象程序设计 作业三

    Deadline:2018-05-13 22:00pm 题目升级 一栋10层的大楼(楼层编号1-10),设3台无限载重的电梯,初始时电梯停在1层.其中:1号电梯只能停留在奇数层,2号电梯可以各层都停留 ...

  2. 【2017级面向对象程序设计】作业一

    Github PTA 这次电梯就把之前的代码改了一下,但是还是有很多之前留下的现在没用接口,没有删除,下次作业时看一下如果真的没用就删除了. 困难主要集中在调用函数上面,我再一次给参数忘记加引用了,导 ...

  3. 2017级面向对象程序设计——团队作业2

    Deadline:2018/6/19 22:00 作业要求 根据上一阶段的设计和分工,完成构建地图.基地.英雄.小兵等基本游戏元素的编程任务(构建相应的类和对象即可,不要求实现可操控移动等功能). 每 ...

  4. 2017级面向对象程序设计——团队作业1

    这是一股来自青青草原的神秘力量 团队信息 团队名称 青青草原战队 队伍成员 阮君曦 031702116(队长) 史恩泽 031702122 蓝飞鹏 031702112 张凌昕 031702105 林鑫 ...

  5. 【2017级面向对象程序设计】第2次成绩排行

    作业地址 https://edu.cnblogs.com/campus/fzu/OOP/homework/1864 评分标准 1) C 流程图 or 文字描述程序结构 5分 C++ 类图 or 文字描 ...

  6. 【2017级面向对象程序设计】第3、4次成绩及排名

    第三次作业 作业链接:https://edu.cnblogs.com/campus/fzu/OOP/homework/1879 互评评分标准 本次作业互测分数 15 分.评分标准参见作业页面. 成绩情 ...

  7. 2017《面向对象程序设计》作业四

    2017<面向对象程序设计>作业四 林燊 031602325 https://www.cnblogs.com/linshen/ github链接:https://github.com/Tr ...

  8. 面向对象程序设计作业 6.1~6.4

    面向对象程序设计作业 6.1-6.4 面对对象基础题三道.继承多态一道. #include <iostream> #include <string> #include < ...

  9. 2017福州大学面向对象程序设计寒假作业一

    作业链接 第一次作业统计完成,本次作业满分10分,统计结果如下: 学号 姓名 博客 分数 111500206 赵畅 ZCplayground 9.5 031602211 盖嘉轩 031602211 8 ...

最新文章

  1. 为什么说卷积神经网络,是深度学习算法应用最成功的领域之一?
  2. listview 滑动以后设置最上面一行为整行展示
  3. python中 __name__及__main()__的妙处
  4. linux rcu机制,Linux RCU机制详解 (透彻)
  5. 信号与系统 chapter2 冲激偶函数与阶跃函数
  6. jquery截取字符串中的数字
  7. 致谢!华为全联接2020精彩回顾
  8. python中列表和集合的区别_python中列表和集合有什么区别
  9. xml Android 冒号,冒号字符在XML元素序列化过程中被编码为x003A
  10. js 将html 某个dom 导出pdf,并处理分页
  11. 树莓派设置静态ip地址
  12. mcinabox运行库下载_MCinaBox运行库
  13. 阿里云CDN配置步骤
  14. Java多用户商城源码/单商户商城系统源码
  15. 坚果J10和当贝F3体验分享,智能家用投影仪究竟应该怎么选?
  16. APP、PC客户端抓包、小程序\公众号
  17. “平步青云”:Oracle系统平台技术助力企业私有云建设
  18. MySQL数据库-删除表中的数据详解
  19. ARCGIS10.2加载天地图不显示
  20. C++入门——电影《老师好》剧情作业

热门文章

  1. C++ —— C++程序编译的四个过程
  2. 如何阅读一本书 pdf_《如何阅读一本书》:一本书,四个层次,看阅读小白如何逆袭?...
  3. pwn和逆向的区别_Pwn之简单patch
  4. JavaScript高级之函数进阶
  5. LeetCode 1258. 近义词句子(哈希+并查集+排序+回溯)
  6. ad域不去用frs_Windows Server 2008搭建AD域控服务器 - 小王同学!
  7. linux读取内存文件,linux – 使用模块读取内核内存
  8. phppage类封装分页功能_PHP封装的page分页类定义与用法完整示例
  9. python数据框循环生成_python - 如何在 Pandas 的for循环迭代中创建多个数据框?
  10. 苹果企业证书_IOS福利9月15日苹果企业证书已更新!重新下载即可!