• Peer Programming Project: 4 Elevators Scheduler 附加题 157 165


    1.改进电梯调度的interface 设计, 让它更好地反映现实, 更能让学生练习算法, 更好地实现信息隐藏和信息共享。

    • 每个电梯增加目标楼层数组,这样可以更好地进行任务的分配,在我们的电梯中,这个数组即是DestinyFloors[]
    • 在实际情况中,每个人应该有进入电梯的时间,而不是电梯开门一下子就进去了。因此,电梯应该有开门、关门按钮,当没有人进入之后,在电梯内的人可以摁下关门按钮,同理,若到了5秒人还没有上完,可以摁下开门按钮。这样也更加符合实际情况。
    • 我们认为可以删除对最大人数的限制。电梯毕竟没有监控其内部人数的功能,而是通过最大载重判断是否安全。比如10个100kg的人进入一个载重1000kg的电梯是可以接受的,同样20个50kg的人进入电梯也是可行的。人数限制有些累赘。
    • 增加电梯闲置时间。有比较极端的情况就是计算后所有任务恰巧都分配给了同一部电梯,显然这样的效率不高。如果给每部电梯增加闲置时间变量,这样就能在一部电梯闲置较长时间后对其进行任务的分配,提高分配算法的效率。

    2.目前的这个测试程序只有命令行界面, 请给它设计UI界面, 显示乘客/电梯的运动, 并实现之。

    我们设计的UI是从整个大楼角度提供各个电梯的信息,加入了图形界面使电梯状态更加清晰,容易观察电梯的运行情况。

     

    初始化

    运行中

    结束!

    我们编写的GUI暂时还不能识别错误文件输入

    3.阅读有关 MVC 和  MVVM 设计模式的文章。说明你写的电梯调度的UI /Algorithm/interface 如何实现了MVC 或MVVM 的算法。    

      首先对这两个术语进行解释:

    • MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
    • MVVM是Model-View-ViewModel的简写。MVVM(Model-View-ViewModel)框架的由来是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性揉合进去,以应对客户日益复杂的需求变化。
    • ——摘自百度百科
    • MVC在我们的代码中体现得比较多。说白了就是为了是各个模块尽量分离,实现低耦合。
    • 在我们的程序中,主要就是体现了低耦合高内聚的思想。虽然暂时不是很理解M,V,C之间的协同工作方式,但是我们代码中的Scheduler主要负责任务分配,输出的任务由Passenger完成,而输入的任务完全又Loader负责。这就是我们对MVC以及MVVM的理解。

     

      

  • 相关阅读:
    vbs小脚本01将文件内txt转录到excel
    MybatisPlus乐观锁Version
    PHP使用pdfparser实现对PDF转换成本文
    php获取图片的主要颜色值RGB
    nginx http跳转到https
    java 获取中文第一个拼音方法
    mysql like查询时区分字母大小写
    mysql 查询用逗号隔开字符串的关键字
    Fiddler 手机抓包
    携程爬虫
  • 原文地址:https://www.cnblogs.com/dahuang/p/4033806.html
Copyright © 2020-2023  润新知