⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 monitor.h

📁 电梯仿真系统的实现
💻 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 + -