电梯调度(续)

成员:真真 小兰

3月10日,7:00~9:30 界面设计

第一天设计出了界面,虽然没有什么技术含量,但,毕竟是个好的开始!!!期待明天的工作。

3月11日  19:00-21:00

经过讨论,又重新设计一下界面,把电梯上下楼标志由radioButton改为了一个按钮,由按钮来运动。并且把类和主要的函数构思了一下,初步结果如下(看起来很简单,其实。。。恩):

乘客类;

{

  体重;

  乘客当前楼层;

  所要到达楼层;

  选择楼层;

  控制电梯门开关;

  按钮选择上下楼;

}

电梯类

{

   电梯号:

   电梯当前所在楼层;

电梯状态;

上下楼;

}

只是大概想想思路,具体的就期待明天的19:00—21:00咯偶哈!!!!收工喽!!!!!

3月12日

思路改了,没有用类和接口,用的控件和一些算法

实现了乘客告诉电梯他在哪个楼层,然后电梯到达那个楼层,并且电梯内部的显示屏上显示实时的楼层数。当然还有开关门功能。

3月13日

实现了乘客进到电梯里,按下所要到达的楼层键,电梯可以把乘客准确送到。

还有一个很大的问题就是:当电梯送乘客上楼时,如果有另外的乘客想要上楼,按下这位乘客当前的楼层,电梯就会立即响应这位乘客,而第一位乘客此时还没有到达目的地、、、、

计划未来三个晚上解决掉这个问题!

控制上下楼代码:

 1 private void timera_Tick(object sender, EventArgs e)  //电梯上下至乘客所在楼层
 2         {
 3            if (n <= louceeng)   //电梯上至乘客所在楼层
 4             { 
 5                 label33.Location = new Point(510, 460 - a);
 6                 a += 20;
 7                 if (n == louceeng)
 8                 {
 9                     timera.Stop();
10                     timerkaimrn.Start();
11                     
12                 }
13                 label1.Text = Convert.ToString(n);    //动态显示楼层数
14                 n++;
15               
16             }
17            else  //电梯下至乘客所在楼层
18             {
19                 a -= 20;
20                 label33.Location = new Point(510, 460 - a);
21                 
22                 if (n == louceeng)
23                 {
24                     timera.Stop();
25                    // timerkaimrn.Start();
26                 }
27                 label1.Text = Convert.ToString(n-1);
28                 n--;
29               
30             }
31 
32         }

控制电梯开关代码:

 1  private void timerkaimrn_Tick(object sender, EventArgs e)  //电梯开
 2         {
 3             x++;
 4             label34.Width = 54 - x;
 5             label35.Width = 54 - x;
 6             label35.Location = new Point(66+x, 14);
 7             if (x == 44)
 8             {
 9                 timerkaimrn.Stop();
10                 x = 0;
11             }
12         }
13       
14         private void timerguanmen_Tick(object sender, EventArgs e) //电梯关
15         {
16             x++;
17             label34.Width = 10 + x;
18             label35.Width = 10 + x;
19             label35.Location = new Point(110 - x, 14);
20             if (x == 44)
21                 timerguanmen.Stop();
22         }

其实,这次电梯做的功能很不完善,也没有用到类,只是用c#来实现对电梯的控制,有待改进。

原文地址:https://www.cnblogs.com/fengxiaolan/p/3611935.html