📄 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: <Top Level>
//## 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: <Top Level>
//## 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -