zoukankan      html  css  js  c++  java
  • 结对项目开发--电梯调度

    一 、编写目的   编写本需求说明旨在开发电梯系统做初步需求调查分析,详细说明电梯系统的需求和功能。

    二 、任务概述和要求

       进入电梯系统,有界面提示可以选择1-4号电梯,然后进入电梯界面,然后可以选择楼层。每一个电梯都有2个状态,door=0或door=1,即开关门。电梯有本来任务即向上还是向下,当然还有静止。假设有人在电梯往上的时候选择向下走即电梯不响应。

    1、每一对学生将设计一套接口和类定义这样一种算法提供者可以提供他/她实现“电梯调度程序”类。

    定义电梯类,乘客类。载重器接口(这里不予考虑),外部危险接口(不予考虑,只设置了紧急键)

      public class lift 
        { 
           public static int numpassenger=0;//乘客数
           public static int mostnumpassenger=17;//最多乘客数
           public static int number;//电梯编号
           public  int liftlocafloor;//电梯所在楼层
           public  int ta;//电梯从所在楼层到目的楼层的时间
           public int qiuta(int t, int lift_ta, int lift_liftlocafloor, int passenger_passengerlocafloor,int destion) 
           {
               int h;
               h = (liftlocafloor - 2 * passenger.passengerlocafloor + Form1.destion)*t;
               return (h);
           }
         
        }
      public class passenger
        {
           public static int passengerlocafloor;//乘客所在楼层
        }

    2、所有乘客的平均总旅行时间要求少。

    我们这里设置每个楼层速度是一样的,所以每个楼层都是t,T是所有乘客的总旅行时间,最后求平均TA,得最少。

      private void button1_Click(object sender, EventArgs e)
            {
                
                destion = 0;
                l1.qiuta(t, l1.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion);
                
                l2.qiuta(t, l2.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion);
                l3.qiuta(t, l3.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion);
                l4.qiuta(t, l4.ta, l1.liftlocafloor, passenger.passengerlocafloor, destion);
    
                if (l1.ta >= l2.ta && l1.ta >= l3.ta && l1.ta >= l4.ta)
                    lift.number = 1;
                else if (l2.ta > l1.ta && l2.ta >= l3.ta && l2.ta >= l4.ta)
                    lift.number = 2;
                else if (l3.ta > l1.ta && l3.ta >= l4.ta && l3.ta > l2.ta)
                    lift.number = 3;
                else if (l4.ta > l1.ta && l4.ta > l2.ta && l4.ta > l3.ta)
                    lift.number = 4;
    
                lift.numpassenger++;
                if (lift.numpassenger > lift.mostnumpassenger)
                    MessageBox.Show("对不起,超载");
            }

    3、代码要求:它具有生成0 (零)的代码分析警告和错误。

    4、电梯有载重或人数限制。

    电梯的每一个类都有个number,乘客每按下一个楼层,number++直到number到达极限值后,如果再加,电梯弹出对话框“电梯超重,请选择其他电梯”。因为不知道怎么样输入重量,所以这里我们不考虑重量,当然可以设计一个接口,接入测重器,我们这里每一个电梯设置不同的平均人数值,number。

    5、特殊情况:

    (1)当出现外部因素时,系统会提示,然后乘客可以按下紧急键,那么,电梯会自动停在本来电梯应该前往方向的最近一层。

    (2)当电梯超重即人数超过平均值时,电梯会弹出对话框“电梯超重,请选择其他电梯”。直到电梯达到或低于电梯人数平均值。

    三 、开发环境 Microsoft Visual Studio 2010

    四 、时间日志 

    3月6日14:00~16:00 3月6日16:00~17:30 3月8日14:00~15:30 3月8日16:00~18:00
    结队讨论题目 分析题目需求 制作界面 编写需求分析
    3月16日 3月17号
    编写类和判断电梯编号条件 编写类和判断电梯条件

     

     

    五 、界面 开始状态下:

     

    运行状态下:

    六 、总结

    在编写这个电梯中,实在是觉得自己的能力有点小,好多知识都必须得去复习或者是学习,编写的效率非常低,对于电梯的调度的平均时间,我们是以(电梯所在楼层-乘客所在楼层)+(目的楼层-乘客所在楼层)*t,而且我们还只能选择一个楼层,有比较大的缺陷,但是我们会继续改进。

    八 、小组成员 20112832周亚豪 20112802姜立比

    --未完结。

  • 相关阅读:
    ORACLE 11.2.0.4 OCR VOTING DISK 模拟恢复场景
    Oracle Enterprise Linux 6.4 下配置vncserver
    Oracle Enterprise Linux 6.4 下挂载ISCSI 设备
    关于Solaris 的磁盘的分区
    【Google Earth】pro之视频录制
    【爱江山越野跑】ITRA积分认证流程
    android发送邮件
    android手机有多个摄像头,打开其中一个
    Android截图
    Android中的ACCESS_MOCK_LOCATION权限使用Demo
  • 原文地址:https://www.cnblogs.com/zhouyahao/p/3585158.html
Copyright © 2011-2022 走看看