关于电梯调度的阶段性成果

经过一个多星期的实验,目前电梯调度已经实现了一部分的功能。

首先,实现了界面上的设置,实现了电梯运行的界面,电梯每经过一层,该层颜色变为红色。我采用的方法是电梯经过时置该层的button的color的属性变为红色,同时置前一层的颜色变为原来的颜色,把每层电梯按钮放在了button数组中,这样通过button数组就可调用电梯层数变量,同时调用了timer——tick来实现每过一段时间,就执行一次。这样就实现了电梯的运行界面。

 List<Button> btnlist = new List<Button>();
            a.Add(button1);
            a.Add(button2);
            a.Add(button3);
            a.Add(button4);
            a.Add(button5);
            a.Add(button6);
            a.Add(button7);
            a.Add(button8);
            a.Add(button9);
            a.Add(button10);

其次实现了电梯的上下移动,设置了2个全局变量,m,n,m始终表示将要到达的电梯层数,n始终表示当前电梯的层数,通过m,n的关系来实现电梯进行上下移动,通过比较m,n的值来判断电梯是往下还是往上运行,坐上标记,多人同时乘电梯时,每按一次按钮,该层按钮的点击事件中的变量+1,将每个人想要去的层数放在数组中,然后进行排序,依次将乘客送达目的地。

 List<Button> btnlist = new List<Button>();
            chuangjian(btnlist);
            if (m > x )
           {
                if(x>0)
               btnlist[x-1].BackColor = Color.White; 
               btnlist[x].BackColor = Color.Red;
               if (renshu[x] == 1)
               {
                   btnlist[x].BackColor = Color.Black;
               }
               x++;
               if(x==m+1)
               {
                   x = m;
                   timer1.Enabled=false;
               }
           }
           if (m < x)
           {
               btnlist[x-1].BackColor = Color.White;
               btnlist[x-2].BackColor = Color.Red;
               x--;
               if (x==m)
               {
                   x = m;
                   timer1.Enabled = false;
               }
           }               

下一步的目标是实现标记电梯里的人数,当每次有人按按钮时,电梯的人数+1,到达目的地后,电梯的人数减去当时按该层按钮的人数,实现电梯人数的实时性,从而将电梯的人数限制在要求内,体重也是如此,假如超过了限制,则不在该层停,当把该方向的人全部送完后,再回来送该层的乘客,目前正在实现中。

王丹-20112791

祁子梁-20112782

原文地址:https://www.cnblogs.com/wangdan/p/3608676.html