zoukankan      html  css  js  c++  java
  • 【2017级面向对象程序设计】作业二

    PO电梯

    • 一个用来储存请求的结构体,一个用来储存乘客信息的结构体。
    • 流程如下:
      • 检查是否有请求。
      • 移动到请求。
      • 接客。
      • 送客。
      • 检查是否已经送完了所有乘客,若没有则回到第一步检测是否有新的请求。

    OO电梯

    • 一个用来储存时间的类,一个用来储存乘客的类,一个用来储存电梯的类,一个用来储存请求的结构体,一个主函数。
    • 流程如下:
      • 预处理:读取乘客请求,定义一个电梯和一堆乘客,初始化时间类。
      • 运行:
        • 调用乘客类方法检查是否有请求,有则放入请求队列。、
        • 调用乘客方法,检查是否有可以进出电梯。
        • 调用电梯方法选取合适目标。
        • 向合适目标方向移动。
        • 检查是否已经送完了所有乘客,若没有则回到第一步检测是否有新的请求。
      • 尾处理:暂时无。

    对比

    • 个人认为OO电梯在现在的题目条件下与PO电梯相比没有很大的优越性。
    • 个人认为OOP像是围攻一个目标全部围上最后一网打尽,而PO更像是对着一个点打直到打到目标。
    • 个人认为OO的代码拓展性,安全性,可读性更好。

    电梯类

    class Elevator
    {
    public:
      Elevator() {
        liftfloor = 1;
        direction = 0;
        isopen = 0;
      }
      ~Elevator();
    //输出当前楼层
      int getLiftfloor() {
        return liftfloor;
      }
    //开门
      void open() {
        isopen = 1;
      }
    //关门
      void close() {
        isopen = 0;
      }
    //运行
      void run() {
        liftfloor += direction;
      }
    //运行到目标
      void runTo(int goalfloor) {
        if (goalfloor != liftfloor) {
          direction = (goalfloor - liftfloor) / abs(goalfloor - liftfloor);
        }
        for (int i = liftfloor; i < goalfloor; i++) {
          run();
        }
      }
    private:
      int liftfloor; //储存当前楼层
      int direction;//储存运行方向
      bool isopen;//储存门是否打开
    };
    
    
  • 相关阅读:
    LeetCode(35):Palindrome Number 分类: leetCode 2015-07-10 09:26 161人阅读 评论(0) 收藏
    在pycharm进行单元测试(unittest python)
    Django 基本操作
    Django中数据库操作相关的错误
    Question&&Answer
    ubuntu下 SVN 服务器搭建及使用
    python 在不同层级目录import 模块的方法
    Ubuntu 16.04安装PyCharm
    修改mysql中数据库存储主路径
    查看mysql的数据库物理存放位置
  • 原文地址:https://www.cnblogs.com/jhy16193335/p/8999319.html
Copyright © 2011-2022 走看看