【C#】结对项目开发-电梯调度仿真系统(内部开发者版)(党云龙、黄为)

1.功能展示

  • 电梯调度的初始界面

 

  • 电梯外部上下键功能展示

 

  • 电梯内部按钮功能展示

 

2.实现功能的核心代码及其分析

亮点一:模拟真实电梯运动

通过panel容器利用两个图片,用panel表示电梯lift两个图片来表示两扇门。在运行过程中通过对panel的location做出改变来实现电梯运动,调用opendoor和closedoor对两个图片做出处理实现开关门动作。

 

if (NumFloor < l.Num)
            {
                lblup.ForeColor = Color.Red;
                for (int i = panel3.Height - NumFloor * n; i >= getfloorLength(); i--)
                {
                   
                    lift.Location = new Point(3, i);
                    //判断有没有请求
                    //if(isRequest[NumFloor-1]==1)
                       // MessageBox.Show("有人出");
                    System.Threading.Thread.CurrentThread.Join(10);
                }
            }

 

 

 

亮点二:支持多楼层按钮输入

首先实现一个楼层的按钮输入即l.num来存储按钮发出请求的楼层数。然后我们利用数组来存储多楼层按钮的发出请求的楼层数,通过对21求余来有序的存储。利用数组Squeue.msg[]对l.num进行赋值,这里遇到的问题是在还未运动到目标楼层时l.num值已经被其他楼层覆盖导致未实现目标功能。我们的处理办法是在l.num中已赋值目标楼层数后强行跳出赋值循环,在运动至目标楼层后,继续赋下一个目标楼层的值

 

while (k < 21)
            {
                k++;
                if (Squeue.msg[k] != 0)
                {
                    l.Num = Squeue.msg[k];
                    lbNum.Text = l.Num.ToString();
                    lbFloorNum.Text = l.Num.ToString();

                    move.Interval = 1000;
                    move.Start();
                    break;
                }
                
            }
            if (k >= 21)
                k = 0;

 

3.项目说明

项目时间管理

3月12号~3月14号进行单电梯的基本功能实现

3月15号~3月17号对单电梯基本功能的完善以及已知道的部分bug进行修复,如按钮颜色改变问题以及电梯门的开关时间问题

项目进度说明

已基本实现项目功能,未实现四部电梯的联合调度问题,在3月18号到3月20号我们将完善这一缺陷

 

 

 

posted @ 2014-03-17 14:16  黄为  阅读(515)  评论(0编辑  收藏  举报