电梯模拟程序设计教程:使用VisualC++实现电梯调度

5星 · 超过95%的资源 2 下载量 77 浏览量 更新于2024-10-04 收藏 589KB ZIP 举报
资源摘要信息:"电梯模拟_电梯课程设计_visualc++_电梯程序_seene1h" 知识点: 1. 电梯模拟:该程序模拟了电梯的基本运行机制,包括电梯的开关门、上升、下降、响应楼层按键请求等功能。在数据结构课程设计中,电梯模拟是一个常见的项目,因为它涉及到数据结构(如队列)的应用,同时也是一个很好的实际问题的抽象。 2. C++编程语言:C++是一种广泛使用的编程语言,它具有面向对象、泛型、过程式等多种编程范式。电梯模拟程序使用C++进行开发,需要熟悉C++的基本语法,如类、对象、函数、循环、条件判断等。 3. 数据结构:数据结构是程序设计中对数据的组织、管理和存储方式。在电梯模拟中,可能需要使用到的数据结构包括队列、栈、链表等。例如,电梯的调度算法可以使用队列来实现,每个电梯对应一个队列,用于存放等待电梯服务的楼层。 4. Visual C++:Visual C++是微软公司推出的一个集成开发环境(IDE),主要用于C++语言的程序开发。电梯模拟程序在Visual C++环境下开发,需要了解如何使用Visual C++创建项目、编写代码、调试程序等操作。 5. seene1h:这是电梯模拟程序的文件名,可能表示该程序的某种特定版本或状态。在编程实践中,文件名通常用于标识程序的不同阶段或功能模块。 电梯模拟程序的主要知识点涵盖了软件开发的多个方面,包括软件设计、数据结构的应用、编程语言的熟练使用以及开发环境的使用。这样的课程设计不仅能够加深学生对理论知识的理解,而且能够提高解决实际问题的能力,是计算机科学教育中一个非常实用的项目。
2010-04-17 上传
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"