码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-05-04 20:22:31      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:构造   现在   计算   面向   存储   个人   iostream   完成   运算   

磕磕碰碰的也相继用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;
}

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

 

 

 

       

 

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

标签:构造   现在   计算   面向   存储   个人   iostream   完成   运算   

原文地址:https://www.cnblogs.com/sy57/p/8987510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!