• 从电梯问题,看c和c++之间的区别(有点懂了)错觉错觉


    磕磕碰碰的也相继用c和c++构造了不少的电梯了。虽然对自我的表现不满意,但是总体来说还是有一定的收获的,对于c和c++之间的区别感觉也摸到了一点点门道了。。。

    用c语言构造电梯的步骤:


    第一步:

    分析这个电梯所需要完成的功能————把乘客送到目的地,同时记录下完成这个操作的时间,然后比较时间最短

    第二步:

    需要引入的变量 1.存储电梯现在所在的楼层:now

    2.乘客所发出请求的时间:requesttime

    3.乘客发出请求的楼层:requestfloor

    4.乘客所要去的楼层:tofloor

    第三步:

    写函数

    第一个函数    即运算电梯运行的时间

    第二个函数  即电梯运行去目标楼层的函数

    用c++构造电梯:

    我们面向的是电梯这个对象,而不是电梯运乘客这件事。所以我们是构造类,主要的目的并不是要完成这个问题。

    第一步:

    构造elevator这个类

    (个人感觉为了能够更好的完成应该再加上乘客这个类,就是友元啦,现学现卖一波)怕是错觉

    第二步:

    私有成员变量:电梯的当前位置及电梯的运行方向。

    第三步:

    成员函数:

    前往目标楼层的函数即Tofloor()

    计算经过的时间的函数Time()

    电梯停靠在目的楼层上下客的函数stop()

    更新这个电梯      nowfloor()

    对于c和c++的区别:

    在我看来c语言只是针对这个问题而产生的,他是针对问题本身即计算最短时间,即我要求的是电梯完成的动作,电梯是怎么样的,程序员是不用管的,就是说我们所写的代码和问题的联系十分的紧密,即如果没有这个问题就不用提什么代码了

    而对于c++而言,我们更关注的是电梯这个对象,通过电梯计算最短时间只是电梯问题中的一种,即如果失去了这个题目电梯这个类依旧有意义,就是有了这个类之后我们想要解决什么问题可以直接引用这个类,和别的问题组合起来,也可以完美的契合。这也就是满足了c++的精神————可理解性、可测试性和可修改性。让代码变得更加灵活。

     电梯类:

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #include<vector>
    #include<cmath>
    using namespace std;

    class elevator
    {
    public:
    int flag;//通过这个判断电梯是向上还是向下
    int currentFloor=0;//电梯现在所在的楼层
    int ntime=0;//电梯运行的时间
    elevator();
    ~elevator();
    int nowFloor(int toFloor);//现在所在的楼层
    int command(int currentFloor, int toFloor, int time);//命令
    };

    #include "elevator.h"

    elevator::elevator()
    {
    }


    elevator::~elevator()
    {
    }

    int elevator::nowFloor(int toFloor)
    {
    currentFloor = toFloor;
    return currentFloor;
    }

    int elevator::command(int currentFloor, int toFloor, int time)
    {
    ntime = time;//运送上一位客人最后的时间
    ntime += abs(toFloor - currentFloor);
    ntime++;
    nowFloor(toFloor);//更新电梯现在所在的位置
    return ntime;
    }

    不管怎么样,感觉用起来还挺熟练的,我可能是喜欢上打代码的这种感觉了,我可能变态了吧~~

           

  • 相关阅读:
    异常练习
    Comparator 排序 ArrayList 实操练习
    50道Java线程面试题
    Java ArrayList排序方法详解
    Map集合利用比较器Comparator根据Key和Value的排序
    Java Map 键值对排序 按key排序和按Value排序
    实现java随机数Random的几招
    如何在Java中获取键盘输入值
    力扣 ——3Sum python (三数之和)实现
    python中函数用法
  • 原文地址:https://www.cnblogs.com/sy57/p/8987510.html
Copyright © 2020-2023  润新知