zoukankan      html  css  js  c++  java
  • 面向对象程序设计作业2

    面向对象程序设计作业2

    C与C++

    c语言实现步骤

    1. 读取乘客请求(asktime请求时间,askfloor请求楼层,askspace请求目的地)
    2. 分析乘客请求,判断电梯当前状况,对乘客的请求进行响应
    3. 判断电梯是否到达请求楼层或者请求目的地,若到达,电梯停靠,否则继续响应请求
    4. 若处理完所有请求,结束

    C++类图


    两者对比

    从寒假学习c++ 到现在,从浑浑噩噩跟着要求走,简单使用c++ 的语法但实质思想仍是面向过程,到如今大致明白了面向过程与面向对象的区别,这之间的磕磕碰碰可谓是一次丰富的学习经验。下面说一下自己的认知,若有不对,请多指教。

    面向过程:分析出我们要解决一个问题所需要的步骤,然后用代码把这些步骤一步一步实现,如这电梯,我们要先接收乘客的请求,分析请求后去接乘客,送乘客前往目的地,这些步骤都是明确的,然后就要用代码去一步步实现它们。

    面向对象:将我们要解决的这个问题从另一个角度分析,将其中的对象独立出来,分析这个问题中这些对象的状态,针对这些对象构造函数去解决问题。如电梯问题,可大致分为乘客和电梯两类,分析电梯在调度过程中乘客和电梯的状态,通过改变它们的状态来解决问题。(其实感觉自己还是有点懵的)


    电梯类

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    class Elevator{
    public:
    	Elevator();
    	~Elevator();
    	int nowfloor;//当前电梯位置
    	int indicator; //当前电梯运行方向
    	int nowtime;//当前时间
    	void gotofloor(int askfloor); //接受到达某一层的指令
    	void stop(int time, int floor); //停靠在当前楼层
    	void show(int nowfloor); //显示当前所处楼层位置
    
    private:
    	int sumtime;//乘客到达目的地之前的总等待时间
    	int nowman;//当前在电梯中乘客的总人数
    	void ifstop();//判断当前电梯是否需要停靠,如果要,执行stop
    };
    
    
    Elevator::Elevator(){
    	nowtime = nowfloor = sumtime = nowman = 0;
    	indicator = 1;
    }
    
    Elevator:: ~Elevator(){
    
    }
    
    void Elevator::gotofloor(int askfloor){
    	nowtime += fabs(nowfloor - askfloor);
    	nowfloor = askfloor;
    }
    
    void Elevator::show(int nowfloor){
    	cout << "nowfloor:"  << nowfloor<< endl;
    }
    
    void Elevator::stop(int time, int floor) {
    	cout << time << " " << floor << endl;
    }
    
  • 相关阅读:
    C#连接Oracle数据库的连接字符串
    Oracle
    SQL 计算某月有多少天
    七牛开发者文档中心
    ocrstyle
    Linux的sys接口和proc接口创建
    BusHelper
    MeiTuanLocateCity
    Shop
    Win10预览版10162全新安装及激活全过程图解
  • 原文地址:https://www.cnblogs.com/qq291713624/p/8993313.html
Copyright © 2011-2022 走看看