c++实现简单电梯的运行

该博客介绍了一个C++编程实验,旨在通过创建类和对象模拟电梯的运行,包括上行、下行按钮功能,楼层选择,并要求考虑合法性检查。用户需输入目标楼层,程序会显示电梯运行过程,同时在运行时显示日期。实验还要求实现楼层间的延迟显示和醒目的最终停靠楼层输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c++实现简单电梯的运行

一、实验目的 1)掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的 封装性; 2)掌握类对象的定义; 3)理解类的成员的访问控制的含义,公有、私有和保护成员的区别; 4)掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要
求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数;

二、实验原理介绍
通过建立类及对象,用类的成员函数和对象访问类的成员;
利用建立类的构造函数,完成类的成员的初始化工作;
三、实验设备介绍
软件需求: windows 或 linux 下的 c++编译器
硬件需求: 对于硬件方面的要求,建议配置是 Pentium III 450 以上的 CPU
处理器,64MB 以上的内存,200MB 的自由硬盘空间、CD-ROM 驱动器、能支持 24
位真彩色的显示卡、彩色显示器、打印机。
四、实验内容
编写一个程序,模拟电梯的功能。功能接口包括电梯上行按钮、下行按钮、楼层
选择和电梯在行驶过程中的楼层显示。
要求:
1.由用户选择按上行按钮还是下行按钮,选择操作后再由用户输入要进入的楼
层,进而电梯开始运行,显示所到的每一楼层层数。
2.如果是上行,则选择输入的楼层好不能比当前楼层号小,否则应给出不合法提
示。
3. 如果是下行,则选择输入的楼层好不能比当前楼层号大,否则应给出不合法
提示。
4.电梯一旦开始运作就会始终运行,直到窗口关闭。
5.电梯在经过不同楼层时,最好每个楼层的显示之间能有延迟,最终停靠的楼层
的输出形式能更加醒目。如果可以,在电梯最初开始运行时,能在电梯由内部显
示当前日期(提示:实现这些功能时,需要调用系统 api,实现时间显示功能可
以使用 CDate 类)。
五 程序清单
elevator.h:

#include <iostream> 
#include<ctime> 
#include<cstdlib> 
#include<string> 
#include<cstdio> 
#include<windows.h> 
using namespace std; 
class Elevator{ 
private: 
    int now_floor,want_floor,choice,total_floors; 
    void up(int want_floor); 
 void down(int want_floor); 
    void inputWant_floor(); 
    void inputChoice(); 
public: 
    Elevator(int now_floorr,int total_floorss); 
    void control(); 
}; 

date.h:

#include <iostream> 
#include<ctime> 
#include<cstdlib> 
#include<string> 
#include<cstdio> 
using namespace std; 
class CDate{ 
public: 
 CDate(int dd,int mm=1,int yy=1999); 
 CDate(); 
 CDate(const CDate &other);  
 ~CDa
C++代码 注重类的交互 片段 #include using namespace std; #include "elevator.h" //Elevator class definition #include "person.h" //Person class definition #include "floor.h" //Floor class definition //constants that represent time required to travel //between floors and direction of the elevator const int Elevator::ELEVATOR_TRAVEL_TIME = 5; const int Elevator::UP = 0; const int Elevator::DOWN = 1; //constructor Elevator::Elevator( Floor &firstFloor, Floor &secondFloor) : elevatorButton( * this ), currentBuildingClockTime( 0 ), moving( false ), direction( UP ), currentFloor( Floor::FLOOR1 ), arrivalTime( 0 ), floor1NeedsService( false ), floor2NeedsService( false ), floor1Ref( firstFloor ), floor2Ref( secondFloor ), passengerPtr( 0 ) { cout << "elevator constrcuted" <<endl; }// end Elevator constructor //destructor Elevator::~Elevator() { delete passengerPtr; cout << "elevator destructed" << endl; }//end Elevator destructor //give time to elevator void Elevator::processTime( int time ) { currentBuildingClockTime = time; if ( moving ) //elevator is moving processPossibleArrival(); else processPossibleDeparture(); if ( !moving ) cout << "elevator at rest on floor " << currentFloor << endl; }// end function processTime // when elevator is moving, determine if it should stop void Elevator::processPossibleArrival() { //if elevator arrives at destination floor if ( currentBuildingClockTime == arrivalTime ) { currentFloor = ( currentFloor == Floor::FLOOR1 ? Floor::FLOOR2 : Floor::FLOOR1); //update current floor direction = ( currentFloor == Floor::FLOOR1 ? UP : DOWN ); //update direction cout << "elevator arrives on floor " << currentFloor <<endl; // process arrival at currentFloor arriveAtFloor( currentFloor == Floor::FLOOR1 ? floor1Ref : floor2Ref); return; }//end if //elevator still moving cout << "elevator moving " << ( direction == UP ? "UP" : "DOWN"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值