经过一个多星期的实验,目前电梯调度已经实现了一部分的功能。
首先,实现了界面上的设置,实现了电梯运行的界面,电梯每经过一层,该层颜色变为红色。我采用的方法是电梯经过时置该层的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