• 结对作业


    其实这个电梯的程序挺难得,其实老师布置的是4部电梯,然而写到今天才知道是4部电梯,然而我俩一直只写了1部。其实老师布置的要写22层(或更多层),然而我俩只写了5层,其实我俩觉得22层和5层,是一样的。其实我俩觉得这样偷工减料不好,其实我俩的能力还是有限的,其实我俩尽力了,其实我们是用MFC写的,其实我俩也就只能写成这个样子了。

    其实我们的电梯是这样的:

    1.详细设计

    电梯分为电梯里和电梯外,其中每层都有个电梯外,而电梯里的空间只有一个。,而老师说要做界面,所以设计电梯里界面,和五层电梯口的界面。这些界面都放在一个菜单上进行管理。

    假设有甲在1楼先按上键,乙在3楼,丙在5楼同时按下电梯,假设电梯在这一刻是向上运动在2楼,甲乙丙按下键后,电梯继续上行到请求最高的层数,5楼,然后在向下运动,等丙进电梯后按下要去的楼层,然后电梯就到达指定楼层后继续向下运动到请求的最底层,途中经过低3层,接乙下楼,到1楼在载甲上行,

    电梯每一次到达最高,最低点后运动状态都变一次, 

    2. 我们的概要设计:(以下所有界面全都做过缩小处理)

    我觉得电梯调度算法应该站在设计者的角度去调度电梯给人们服务(1.首先电梯分为电梯里面和各个等待电梯的电梯门外。如图2.1,为何要设楼外和电梯里 设楼外就是模仿有人在该层进行操作,对电梯有请求。这是一个菜单页面。

     

    图2.1

     

     

    2.①点一下各个按键,比如,点开电梯里,有下图2.2

    图2.2

     

     

    在上图中,有各个按钮代表要去几层,编辑框代表电梯现在所处在的位置,名字为 “走起”的按键功能类似于关门键。Cancel按键在这没啥作用。

    ② 点开一楼外,有下图2.3

    图2.3

    同样编辑框代表电梯现在所处在的位置,名字为走起 的按键功能类似于关门键。

    但这里有一个向上的按键,表示该层有使用电梯的请求。Cancel按键在这没啥作用。

    ③所以同理其他几层的界面二三四楼都一样,五楼顶楼没有上键。

     

    3.各界面具体实现

    首先在菜单界面上定义一个电梯里的按钮,并设置按钮的ID(随便设,但必须大写)

     

    再在对话框出新建一个对话框,设置IDIDD_DIALOG1,然后右键,点击类向导,提 示建立一个新的类,建立新的类后在Class name栏里用视图类CELECT_ THREE View,绑 定该对话框的IDAdd Faction,再编辑代码。

     

    进入编辑代码的函数内后,给这个类建一个对象,采用非模态对话框的方式,将菜单的 按钮和对话框绑定在一起,代码如下

    void CELECT_THREEView::OnInElect() 

    {

    / TODO: Add your command handler code here

    I N_ELECT  *one=new IN_ELECT ();

        one->Create(IDD_DIALOG1);

        one->ShowWindow(SW_SHOWNORMAL);

    } 特别注意,类视图的编辑代码出并没有应用上面那个对话框所对应了类,所以要加 上, #include "IN_ELECT.h" ,否则会出错,

    同理,

        总共建立的是6个界面,相对应的是6个类,分别是:

    Class  IN_ELECT   -------电梯里的类

    Class  ELECT1 -------电梯口1楼的类

    Class  ELECT2 -------电梯口2楼的类

    Class  ELECT3 -------电梯口3楼的类

    Class  ELECT4 -------电梯口4楼的类

    Class  ELELCT5 -------电梯口5楼的类

     

    其他几层的界面也是这样建出来的,使用非模态对话框的好处在于可以同时打开多个对 话框,下图是同时打开多个对话框的情况,代表有多层的人要请求用电梯。

     

     

    4.遇到的问题

    有时候明明已经给某个对话框建立了类,然后在点开类向导用CELECT_ THREE View类视图绑定对话框时,却弹出来说是不是要新建一个类,这是我就知道这个类,这个对话框失效了,

    于是得重新建立一个对话框和他所对应的类。

     

    剩下的工作有我的队友完成http://www.cnblogs.com/wodove/完成

    感觉挺对不起自己的队友,自己太渣了,什么都不会,但现在自己正在自己学习以前落下的,希望自己可以进步

    my patener

     

     

  • 相关阅读:
    nyoj_216_A problem is easy_201312051117
    nyoj_676_小明的求助_201312042142-2
    C# 堆和栈的区别?
    DataReader和DataSet区别
    SQLSERVER2008R2正确使用索引
    SQL Profiler工具简介
    (转)非常完善的Log4net详细说明
    SQL语句优化技术分析
    HashTable、HashSet和Dictionary的区别
    使用Nuget发布自己的类库包
  • 原文地址:https://www.cnblogs.com/jingaaaaa/p/5372430.html
Copyright © 2020-2023  润新知