码迷,mamicode.com
首页 > 其他好文 > 详细

电梯调度程序

时间:2016-04-08 23:00:44      阅读:442      评论:0      收藏:0      [点我收藏+]

标签:

说明:

此次是结对编程项目,其实还是第一次接触。之前都是自己一个人闷头写,想实现什么功能就写什么。但这次接触到结对编程,发现和别人讨论的重要性。两个人商量着来,分析用户需求,完善功能。而且两个人商量也不会像一个人找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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!