Peer Programming Project: 4 Elevators Scheduler 附加题

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

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

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

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

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(Model)

——摘自百度百科

  

时间: 2024-10-10 08:40:08

Peer Programming Project: 4 Elevators Scheduler 附加题的相关文章

Peer Programming Project: 4 Elevators Scheduler

1.Advantages and disanvantages of Peer Programming advantages The code are constantly validated by two people, reducing the possibility of indivudual making stupid mistakes. The code belongs to two people simutaneously, avoiding consulting each other

结对编程_附加题_博客2

1.界面模块,测试模块和核心模块的松耦合 2.改进程序 结对编程_附加题_博客2

2016届阿里实习生在线笔试附加题3

#include<iostream> using namespace std; int a[1000]; int waiting = 1; int main(){ int temp = 0; int i = 0; while(cin>>temp){ a[temp] = 1; if(temp == waiting){ cout<<waiting; for(i = waiting + 1;a[i] == 1;i++){ cout<<","&l

结对项目(附加题)开发总结

结对项目(附加题)开发总结 这次附加题的任务就是把两个小组写的独立的UI和CORE模块打乱重组,拼接成一个新的APP. 我们小组选择了大神刘乾所在小组和我们合作交换.一拿到乾神的核心代码,我不得不说,乾神就是乾神,代码一出,直接把我镇住了,各种参数看不懂咋办?咋写UI? 还好我们的乾神同志给我们提供了帮助文档,介绍了各个参数的作用,现摘录如下: 对于计算表达式的值(CALC模式): AnswerGet(string s)其中s是给定的算式,以等号结尾. 调用生成器时,使用: public Gen

结对项目附加题

我们与刘乾组进行了互换.附加题目遇到的问题比较多,且有些直到最后也难以解决. 其中最主要的问题在于,刘乾组的代码在给我们的时候并没有完全封装成dll的样子,虽然文档里列出了一些接口,但实质上都是一些可以直接使用的类.虽然能实现所有的功能,但形式上并不是我们想象中接口的样子.我们尝试将他们的数据结构转换为我们的数据结构,之后再做一个适配层,利用他们提供的接口,实现我们所定义的几个接口.然而,由于在接口的设计上大相径庭,完成这一转换所需的工作量相当大.于是,最终的适配层放弃了进行数据结构及接口的转换

结对项目(附加题)

结对项目成员:徐丞(13061203) 赖彦谕(13061212) [附加题]第四阶段目标 - 界面模块,测试模块和核心模块的松耦合. 我们小队是和付帅,赵庶宏组进行了交换测试,我们导出的静态链接库(.lib),然后在界面里include来调用.我们两个组都是用C++写的程序,用MFC写的界面.遇到的主要的问题,就是因为我们的想法有一些不同, API接口的设计和他们设计的接口有些不一致,所以导致我们的模块和他们的界面模块不能很好的连接. 为了解决这一问题,如果要修改我们设计好的API,那么就会修

hdu 4972 A simple dynamic programming problem (转化 乱搞 思维题) 2014多校10

题目链接 题意:给定一个数组记录两队之间分差,只记分差,不记谁高谁低,问最终有多少种比分的可能性 分析: 类似cf的题目,比赛的时候都没想出来,简直笨到极点..... 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath> 6 #include <vector> 7 #include &

[附加题] 结对项目对接的苦痛

[附加题] 结对项目对接的苦痛 本次很荣幸地,我的程序作为很多程序员队伍的备胎计算模块被加入了各大程序的附加题参考中,有以下几位同学都曾与我进行模块的对接: GNU_Linuxer 马克斯 kanelim PocketPanacea kibbon ruoyuwang 夜微凉evol 先来谈谈我作为计算模块的提供者的感受吧: 总的感受就几个字:请别吐槽我了... 我的代码质量我觉得还是可以的,但是在这过程中出现的最严重的问题是啥呢,是设计的问题,是设计者对于需求的理解和框架.接口统一与否的问题.

北京地铁_结对项目_附加题

地铁出行项目(续)- 附加题 团队成员:杨金键 谢振威 金豪 要求描述: 使程序支持不同城市的地图.请让程序能处理上海的地铁地图,或者其它城市的地图.把程序由 “固定处理一个地图” 升级为 “能处理多个地图”, 程序的什么模块需要变化? 其实,在我们设计程序之初就已经考虑到了程序将来的可扩展性,所以无论是地图储存文件还是代码我们都是从这个角度出发考虑的. 具体来说: 取消所有对于北京地图的特殊化处理,针对特殊的地方,例如环线或者单行线则定义关键词统一处理 所有地图相关信息都靠文件读取,避免地图相