zoukankan      html  css  js  c++  java
  • 结对开发 电梯调度的实现(徐梦迪&刘博)

    3月11日星期二下午14:00--15:30

    做了一个基本界面,由于要求四部电梯功能是基本一样的,我就先设计了一个电梯,想等功能实现了在用同样的方法设计另外三部电梯。

    3月12日星期三晚上19:00--22:00

    实现了一些功能,确定了一些基本功能,进行了电梯调度的程序设计,基本确定了大概模块,

    具体介绍:
    1.左边一列是模拟楼层A,以后电梯具体走向会在这里显示。
    2.上面的doorA是要进行设计电梯门的,设想电梯门可以开关。
    3.中间的showA是模拟电梯内按键,-1是停车场,1-20是楼层,默认电梯停在1层。用户在这里按键选择要去的楼层。并设置开关键,控制电梯开关。         
    4.下面的controlA是电梯上下的控制键,用户在电梯外按键上、下使电梯到达用户所在的楼层。这是我们的初步设计,但也被一个难题困住了,怎么把这几个模块联系起来实现电梯的正常使用并屏显出来,我们在这思考了好一会儿,还是没有好的办法。
    3月14日星期四晚上19:00--22:00
    我们设计了一部电梯,实现了其基本功能,但是好多东西都不符合实际,我们设计了一个四个电梯的界面,讨论的时候,我们觉得四部电梯其实就是一部电梯,因为它们是并联的,运行的过程及其算法是一样的
    3月15日星期六晚上19:00--22:00,我们修改了界面,增加了一下功能,实现了一些功能
    这个是电梯内部分按钮的代码,因为各个楼层都一样,就不一一列举了。
     private void btn1_Click(object sender, EventArgs e)
            {
                btn1.ForeColor = Color.Yellow;
                string s1 = btn1.Name;
           
                btnAction(s1);
               
                
            }
     3月16日星期日晚19:00-22:30我们修正了代码,初步拟定了我们的测试版电梯调度。下面是部分功能实现的代码。
    这个是通过楼层按钮实现把字符转换成数字的函数。基本上也就是通过 int.Parse(str)来实现的。
      //string变数字
            public int getFloor(string letter)
            {
                string s1 = letter;
                string str = "";
                foreach (char s in s1)
                {
                    if (s <= 58 && s >= 48)
                    {
                        str += s;
                    }
                }
                return int.Parse(str);
            }

    这个是楼层的按钮代码。由于每个楼层都设置上下两个按钮,所以要写两个函数通过

     btn21Down.ForeColor = Color.Red
    实现对楼层颜色的改变,只要掌握了这个函数21层也就和一层一样了。其他代码类似,不在赘述。
      private void btn21Down_Click(object sender, EventArgs e)
            {
                btn21Down.ForeColor = Color.Red;
                string s1 = btn21.Name;
                btnAction1(s1);
            }
    
            private void btn21Up_Click(object sender, EventArgs e)
            {
                btn21Up.ForeColor = Color.Red;
                string s1 = btn21.Name;
                btnAction1(s1);
    
            } 

     public void btnAction(string s1)//形成队列处理函数一
            {
                isRequest[getFloor(s1)]=1;
                if (getFloor(s1) < l.Num)
                {
                    lbldown.ForeColor = Color.Red;
                    lbDown.ForeColor = Color.Red;
                }
                else if (getFloor(s1) > l.Num)
                {
                    lblup.ForeColor = Color.Red;
                    lbUp.ForeColor = Color.Red;
                }
               
                Squeue.msg[getFloor(s1)] = getFloor(s1);//将楼层存入数组
                isRequest[getFloor(s1)] = 0;//确定已存入
    }
    
    

    这个是队列处理函数,处理电梯外按钮的动作,是将按钮存入的数据看成个目标,把将要达到这个目标的数据看成一个数组,通过if语句判断来实现楼层颜色变化。

    这个是我们初步实现的功能,仅仅实现了电梯的上下移动,还没有实现电梯人数的限制,我们还会对这个进行不断改进。对于电梯门的开关我们还没有很好的实现也会在以后的进程中增加。

  • 相关阅读:
    互联网与局域网(四)
    Socket介绍(五)
    HttpClient(七)
    TCP协议与HTTP协议区别
    TCP连接的三次握手
    context-param和init-param区别
    【HPU】[1736]老王修马路(二)
    【HPU】[1735]老王修马路(一)
    【HPU】[1734]老王修公园
    【HPU】[1733]神奇的数字9
  • 原文地址:https://www.cnblogs.com/mengdi/p/3604121.html
Copyright © 2011-2022 走看看