您的位置:首页 > 编程语言 > C#

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

2014-03-17 14:16 441 查看
[b]1.功能展示[/b]

[b]电梯调度的初始界面[/b]

[b]

[/b]

[b]电梯外部上下键功能展示[/b]

[b]



[/b]

[b]电梯内部按钮功能展示[/b]

[b]



[/b]

[b]2.实现功能的核心代码及其分析[/b]

[b]亮点一:模拟真实电梯运动[/b]

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

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);
}
}


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

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

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;


[b]3.项目说明[/b]

项目时间管理

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

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

项目进度说明

已基本实现项目功能,未实现四部电梯的联合调度问题,在3月18号到3月20号我们将完善这一缺陷
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: