首页 > 其他 > 详细

电梯调度分析(二)

时间:2014-03-17 04:59:01      阅读:524      评论:0      收藏:0      [点我收藏+]

     经过连续几天的思索,电梯调度的基本算法初步实现,并做了一个简易的图像窗口供查看。现先说说这几天的工作

   bubuko.com,布布扣

  虽然最终没有实现人数和时间的控制,但实现了电梯的简易操作与多线程的运用。

(2)模块化设计

     ①电梯类的实现(elevator)

       电梯类包括:电梯所在楼层、电梯内按钮面板的状态、电梯外按钮面板的状态(是否被按下)、电梯门的闭合、电梯的运行方向、电梯是否正在运行。

bubuko.com,布布扣
class elevator
    {
        public int floor;  //楼层
        public bool[] panel;  //电梯内的面板状态
        public int direction;  //电梯运行的方向 (up,down)
        public int gatestatus;  //电梯门的关合 (open,close)
        public bool isrun;  //是否正在运行

        const int UP = 0;
        const int DOWN = 1;

        const int CLOSE = 0;
        const int OPEN = 1;
    }
bubuko.com,布布扣

    通过电梯类,实现多部电梯的初始化构造。

    ②电梯控制类(elevatorController)

      电梯控制类里面主要包含以下方法:

       1.电梯操作方法:operate(int iore, int type, int select) 

        int iore:判断按钮操作是在电梯内部还是外部

        int type:判断该调用那部电梯

        int  select:判断目标所在的楼层

      2.电梯运行方法:run(elevator ele)

        该方法判断目标楼层是否存在,如果存在,利用多线程机制,实现空闲楼梯前往目标楼层 

      3.电梯执行是否开门:operaGate(elevator ele)

       判断当前所在楼层按钮的状态,如果被按下,执行开门操作。

      4.电梯是否正在执行任务: isGoOn(elevator ele)

       判断当前电梯是否正在运行

      5.任务的获取:gettask(elevator ele)

       获取目标层及运动放向。

      关键多线程部分代码:

bubuko.com,布布扣
    if (!ele_1.isrun)
      {
           ele_1.isrun = true;
            //实例化Thread电梯一线程
            Thread th1 = new Thread(new ThreadStart(run_ele1));   
            th1.IsBackground = true;
            th1.Start();
       }
    if (!ele_2.isrun)
      {
        ele_2.isrun = true;
        //实例化Thread电梯二线程
        Thread th2 = new Thread(new ThreadStart(run_ele2));     
        th2.IsBackground = true;
        th2.Start();
      }
bubuko.com,布布扣

  (3)其实工作还有很多,由于没有加人数及时间限制,电梯的实际工作模式依据与多线程的调度方法:

         当电梯均未工作时,多部电梯将同时相应。

         当其中的有任务时,将选择未工作的电梯。

         采用多线程,谁先到达,谁就开门,执行载客任务。

 (4)执行结果截图:

       bubuko.com,布布扣          

        

       

电梯调度分析(二),布布扣,bubuko.com

电梯调度分析(二)

原文:http://www.cnblogs.com/sulindong/p/3603838.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!