www.pudn.com > Elevators.rar > Monitor.h
//## begin module%1.3%.codegen_version preserve=yes // Read the documentation to learn more about C++ code generator // versioning. //## end module%1.3%.codegen_version //## begin module%3C12C4F1005A.cm preserve=no // %X% %Q% %Z% %W% //## end module%3C12C4F1005A.cm //## begin module%3C12C4F1005A.cp preserve=no //## end module%3C12C4F1005A.cp //## Module: Monitor%3C12C4F1005A; Package specification //## Subsystem://## Source file: D:\Program\OOP\Elevators\SourceCode\Monitor.h #ifndef Monitor_h #define Monitor_h 1 //## begin module%3C12C4F1005A.additionalIncludes preserve=no //## end module%3C12C4F1005A.additionalIncludes //## begin module%3C12C4F1005A.includes preserve=yes //## end module%3C12C4F1005A.includes // Elevator #include "Elevator.h" // Floor #include "Floor.h" //## begin module%3C12C4F1005A.declarations preserve=no //## end module%3C12C4F1005A.declarations //## begin module%3C12C4F1005A.additionalDeclarations preserve=yes //## end module%3C12C4F1005A.additionalDeclarations //## begin CMonitor%3C12154C029E.preface preserve=yes //## end CMonitor%3C12154C029E.preface //## Class: CMonitor%3C12154C029E // 电梯仿真系统的调度类: // 主要负责电梯的调度和楼层的监测. //## Category: //## Persistence: Transient //## Cardinality/Multiplicity: n class CMonitor { //## begin CMonitor%3C12154C029E.initialDeclarations preserve=yes //## end CMonitor%3C12154C029E.initialDeclarations public: //## Constructors (generated) CMonitor(); CMonitor(const CMonitor &right); //## Destructor (generated) ~CMonitor(); //## Assignment Operation (generated) CMonitor & operator=(const CMonitor &right); //## Equality Operations (generated) int operator==(const CMonitor &right) const; int operator!=(const CMonitor &right) const; //## Other Operations (specified) //## Operation: SelectElevator%3C131ECA023A // 系统为乘客选择一台电梯. int SelectElevator (CMessage* msg); //## Operation: ConstructMsg%3C1320E3038E // 系统生成一个消息 //## Operation: DispatchMsg%3C13214B00AA bool DispatchMsg (CMessage* msg); //## Get and Set Operations for Associations (generated) //## Association: 楼层部分%3C12BF6E006E //## Role: CMonitor::m_pFloors%3C12BF6E0262 // 该调度系统中的国际贸易中心共有40层楼. // 采用数组的方式,应为这个事实在段时间不会变动,具 // 有较好的稳定性,所以可以简化为数组. const CFloor * get_m_pFloors (int index) const; void set_m_pFloors (int index, CFloor * value); //## Association: 电梯部分%3C12BF7200E6 //## Role: CMonitor::m_pElevators%3C12BF720348 // 该电梯调度系统中包含十部电梯. // 这是比较稳定的事实,所以可以用数组的形式 const CElevator * get_m_pElevators (int index) const; void set_m_pElevators (int index, CElevator * value); // Additional Public Declarations //## begin CMonitor%3C12154C029E.public preserve=yes CMonitor(int k,int n,int m,int l,int s,int t); CFloor* GetFloor(int index); CElevator* GetElevator(int index); CPassengerList * GetPsgList(); //## end CMonitor%3C12154C029E.public protected: // Additional Protected Declarations //## begin CMonitor%3C12154C029E.protected preserve=yes //## end CMonitor%3C12154C029E.protected private: // Additional Private Declarations //## begin CMonitor%3C12154C029E.private preserve=yes //## end CMonitor%3C12154C029E.private private: //## implementation int m_iCount; // Data Members for Associations //## Association: 楼层部分%3C12BF6E006E //## begin CMonitor::m_pFloors%3C12BF6E0262.role preserve=no public: CFloor {1 -> 40RHgN} CFloor *m_pFloors[40]; //## end CMonitor::m_pFloors%3C12BF6E0262.role //## Association: 电梯部分%3C12BF7200E6 //## begin CMonitor::m_pElevators%3C12BF720348.role preserve=no public: CElevator {1 -> 10RHgN} CElevator *m_pElevators[10]; //## end CMonitor::m_pElevators%3C12BF720348.role // Additional Implementation Declarations //## begin CMonitor%3C12154C029E.implementation preserve=yes public: CMessage* InquirePassenger(CPassenger* ppas); CPassengerList* m_pltPassengers; int m_K; int m_N; int m_M; int m_L; int m_S; int m_T; bool m_bFinished; //## end CMonitor%3C12154C029E.implementation }; //## begin CMonitor%3C12154C029E.postscript preserve=yes //## end CMonitor%3C12154C029E.postscript // Class CMonitor //## Get and Set Operations for Associations (inline) inline const CFloor * CMonitor::get_m_pFloors (int index) const { //## begin CMonitor::get_m_pFloors%3C12BF6E0262.get preserve=no return m_pFloors[index]; //## end CMonitor::get_m_pFloors%3C12BF6E0262.get } inline void CMonitor::set_m_pFloors (int index, CFloor * value) { //## begin CMonitor::set_m_pFloors%3C12BF6E0262.set preserve=no m_pFloors[index] = value; //## end CMonitor::set_m_pFloors%3C12BF6E0262.set } inline const CElevator * CMonitor::get_m_pElevators (int index) const { //## begin CMonitor::get_m_pElevators%3C12BF720348.get preserve=no return m_pElevators[index]; //## end CMonitor::get_m_pElevators%3C12BF720348.get } inline void CMonitor::set_m_pElevators (int index, CElevator * value) { //## begin CMonitor::set_m_pElevators%3C12BF720348.set preserve=no m_pElevators[index] = value; //## end CMonitor::set_m_pElevators%3C12BF720348.set } //## begin module%3C12C4F1005A.epilog preserve=yes //## end module%3C12C4F1005A.epilog #endif