说明:
此次是结对编程项目,其实还是第一次接触。之前都是自己一个人闷头写,想实现什么功能就写什么。但这次接触到结对编程,发现和别人讨论的重要性。两个人商量着来,分析用户需求,完善功能。而且两个人商量也不会像一个人找bug时那么的焦虑、着急。同时,也是最重要的,结对编程的方式对程序的质量也会有很大的提高。
一、题目要求:
现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:
电梯编号 |
可服务楼层 |
最大乘客数量 |
最大载重量 |
1 |
全部楼层 |
10 |
800 kg |
2 |
单层 |
10 |
800 kg |
3 |
双层 |
20 |
1600 kg |
4 |
全部楼层 |
20 |
2000 kg |
其使用规定如下:
1、楼层号为0~20,其中0号为地下一层;
2、有楼层限制的电梯不在响应楼层停靠,如单双层;
3、所有电梯采用统一按钮控制
请根据上述要求设计并实现一个电梯控制程序,如果有图形显示就更好了。
二、需求分析:
1、共有4部电梯,分单双层停靠和全部楼层都停靠。
2、用户在任意层请求,距离最近的电梯响应乘客要求。
3、随时显示各个电梯运行状态和所在层数。
4、判断电梯人数,防止超重。电梯如果超重不接受外部请求,只接受电梯内部请求。
三、功能实现:
1、电梯数据结构:
其中各个数据作用已在注释中说明
struct elevator
{
int maxPeople;//电梯最大载重量
int nowPeople;//电梯目前装载4人数
int ifFloor;//是否超载(已满1、未满0)
int serveFloor;//电梯服务楼层(全部3、单层1、双层0)
int outPeople[21];//外部人按电梯请求楼层(数组下标表示楼层,数值值表示是否停靠。停靠1、不停靠-1)
int inPeople[21];//电梯内部人按电梯请求楼层
int staut;//上升1、下降-1、停止0
int floor;//电梯目前楼层
};
2、初始化函数
4部电梯最初都不处于服务状态。即outPeople[21]={-1}、inPeople[21]={-1};电梯内最初人数nowPeople=0;根据每部电梯的载重量和服务楼层再分别赋值。其中每部电梯的起始楼层是不同的,考虑用户请求要及时相应尽量等较少时间方面的考虑,一号电梯最初在20、二号在9、三号在10、四号在1。
void Iint()//各个电梯初始化 { for (int i=0; i < 4; i++) { for (int j = 0; j < 21; j++) { a[i].inPeople[j] = -1; a[i].outPeople[j] = -1; } a[i].nowPeople = 0; a[i].ifFloor = 0; } a[0].maxPeople = 10; a[0].serveFloor = 3; a[0].staut = 0; a[0].floor = 20; a[1].maxPeople = 10; a[1].serveFloor = 1; a[1].staut = 0; a[1].floor = 9; a[2].maxPeople = 20; a[2].serveFloor = 0; a[2].staut = 0; a[2].floor = 10; a[3].maxPeople = 20; a[3].serveFloor = 3; a[3].staut = 0; a[3].floor = 1; }
原文:http://www.cnblogs.com/mww123/p/5370283.html