• 结对开发项目 电梯调度发布版(已完成) 刘佳琪、兰梦


    ---恢复内容开始---

    程序开发周期

    程序的一些重要算法

    public void call()//根据电梯所在楼层和所在楼层的距离差,选择最近的电梯调度
            {
                int[] a = new int[4];
                a[0] = (442 - label2.Top) / 19;//电梯一所在楼层
                a[1] = (442 - label3.Top) / 19;//电梯二所在楼层
                a[2] = (442 - label4.Top) / 19;//电梯三所在楼层
                a[3] = (442 - label5.Top) / 19;//电梯四所在楼层
                int n = 0;
                int min = 461;
                for (int i = 0; i <= 3; i++)//找出距离最近的电梯
                    if (Math.Abs(a[i] - floor1) < min)
                    {
                        n = i;
                        m=n;//传值到函数用来判断请求到的电梯
                        min = Math.Abs(a[i] - floor1);
                    }
                if (floor1 - a[n] == 0)//所在楼层相同不动
                {
                    switch (n)
                    {
                        case 3:
                            this.timer1.Stop();
                            break;
                        case 2:
                            this.timer3.Stop();
                            break;
                        case 1:
                            this.timer5.Stop();
                            break;
                        case 0:
                            this.timer7.Stop();
                            break;
                    }
                }
                else
                {
                if ((floor1 - a[n])> 0)//电梯所在楼层小于请求楼层,向上走
                {
                    switch (n)
                    {
                        case 3:
                            this.timer1.Start();
                            break;
                        case 2:
                            this.timer3.Start();
                            break;
                        case 1:
                            this.timer5.Start();
                            break;
                        case 0:
                            this.timer7.Start();
                            break;
                    }
                }
    /*向下走*/
    else { switch (n) { case 3: this.timer2.Start(); break; case 2: this.timer4.Start(); break; case 1: this.timer6.Start(); break; case 0: this.timer8.Start(); break; } } } }

     电梯的上升函数

     public void timer1_Tick(object sender, EventArgs e)//电梯四上升
            {
                label7.Text = "电梯四";//显示请求到的电梯
                label1.Text = ("" + (461 - label5.Top) / 19 + "");//显示所在楼层及状态
                if (label5.Top < 53 + 19 * (21 - floor1))
                    this.timer1.Stop();
                label5.Top -= 19;//电梯上升
            }

    电梯下降函数

     private void timer2_Tick(object sender, EventArgs e)//电梯四下降
            {
                label7.Text = "电梯四";
                label1.Text = ("" + (424 - label5.Top) / 19 + "");
                if (label5.Top >404-19*floor1 )
                    this.timer2.Stop();
                     label5.Top += 19;
            }

    运行的一些截图

  • 相关阅读:
    word查找与替换
    细说ASP.NET Windows身份认证
    防钓鱼代码
    sql触发器
    url地址栏参数
    sql递归查询
    认识TWICImage类
    尝试发个贴
    泛型单元
    [学习官方例子]TArray
  • 原文地址:https://www.cnblogs.com/lan-meng/p/3614648.html
Copyright © 2020-2023  润新知