您的位置:首页 > 编程语言

结对编程项目--电梯调度(合作伙伴叶思维)

2016-04-09 11:14 337 查看
我们所完成的项目是电梯调度,具体要求如下:

一.项目以及合作伙伴

项目:现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:

电梯编号客服务楼层最大乘客数量最大载重量
1全部楼层10800kg
2单层10800kg
3双层201600kg
4全部楼层202000kg
其使用规定如下:

1.楼层号为0到20,其中0为地下一层。

2.有楼层限制的电梯不在响应楼层停靠,如单双层。

3.所有电梯采用统一按钮标志。

合作伙伴:叶思维博客网址http://www.cnblogs.com/ysw6

二.项目的需求和程序的设计

接到这个项目后,我就跟叶思维交流怎么去写,用什么语言去写和怎么去实现电梯的功能,经过一番交流,我们决定每个电梯写一个函数,每个函数去实现每个电梯的具体功能,写代码的过程是我们两个一起完成的,主函数与子函数分配合作,很快就写出了初始代码,之后经过修改和完善,最终写了800多行,由于对图形界面的相关知识了解比较少所以没有用到图形界面来显示电梯的运行过程。

三.对方性格评价

叶思维的责任心比较强,做事很认真,做起事来也很有耐心,在写程序过程的争执也是和谐的解决了,我们两个合作的很愉快,下面是我们合作编程时的照片




四.合作伙伴编程的习惯

叶思维在编程过程中有时候会出现一些小小的失误,但是在我们的一起合作下,小bug都被及时的解决了,我也是如此,在我们的互补之下,很顺利的完成了这个项目。

五.此次编程过程的体会和总结

此次编程是我第一次和别人一起合作完成,之前都是我自己去编程,遇到不会的问题就去百度,虽然这培养了自己的独立完成项目的能力,但是合作编程也是我们需要去培养的,让我们学会合作与交流,并且知道自己与他人的差别,促进自己以及伙伴超越对方,我们一起互帮互助的共同进步。

六.程序运行截图及源代码











#include<stdio.h>
#include<stdlib.h>
#include <time.h>
int elevator1()
{
int floor[20];
int i=0;
int j=0;
int t=0;
int p=0;
int c=0;
int weight[10];
int s=0;
int h;
int l;
int p1;
int m;
int x;
srand(time(NULL));
x=rand()%20;
while(1)
{
printf("1.上楼\n");
printf("2.下楼\n");
printf("3.退出\n");
printf("请选择(1-3):");

scanf("%d",&c);
switch(c)
{
case 1:
printf("此电梯可服务全部楼层\n");
printf("此电梯最大乘客数量10人,最大载重量800KG\n");
printf("此时电梯正在%d层,稍作等待\n",x);
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[i];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]>floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");

for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;

case 2:
printf("关闭电梯门\n");
break;
}

}

break;

case 2:
printf("此电梯可服务全部楼层\n");
printf("此电梯最大乘客数量10人,最大载重量800KG\n");
printf("此时电梯正在%d层,稍作等待\n",x);
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[i];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]<floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;
case 3:
return 0;
break;
}
}
}

int elevator2()
{

int floor[20];
int i=0;
int j=0;
int t;
int p;
int c;
int h;
int weight[10];
int s=0;
int l;
int p1;
int m;

while(1)
{
printf("1.上楼\n");
printf("2.下楼\n");
printf("3.退出\n");
printf("请选择(1-3):");

scanf("%d",&c);
switch(c)
{
case 1:
printf("此电梯只服务单号楼层\n");
printf("此电梯最大乘客数量10人,最大载重量800KG\n");
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>800)
{
printf("超重,请下去一个人");
s=s-weight[i];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的单号楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]>floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;

case 2:

printf("此电梯只服务单号楼层\n");
printf("此电梯最大乘客数量10人,最大载重量800KG\n");
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>800)
{
printf("超重,请下去一个人");
s=s-weight[i];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的单号楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]<floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;
case 3:
return 0;
break;

}
}
}

int elevator3()
{
int floor[20];
int i=0;
int j=0;
int t;
int p;
int c;
int weight[20];
int s=0;
int h;
int l;
int p1;
int m;
while(1)
{
printf("1.上楼\n");
printf("2.下楼\n");
printf("3.退出\n");
printf("请选择(1-3):");

scanf("%d",&c);
switch(c)
{
case 1:
printf("此电梯只服务双号楼层\n");
printf("此电梯最大乘客数量20人,最大载重量1600KG\n");
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>1600)
{
printf("超重,请下去一个人");
s=s-weight[i];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的双号楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]>floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;

case 2:
printf("此电梯只服务双号楼层\n");
printf("此电梯最大乘客数量20人,最大载重量1600KG\n");
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>1600)
{
printf("超重,请下去一个人");
s=s-weight[i];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的双号楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]<floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;
case 3:
return 0;
break;

}
}
}

int elevator4()
{
int floor[20];
int i=0;
int j=0;
int t;
int p;
int c;
int weight[20];
int s=0;
int h;
int x;
int l;
int p1;
int m;
srand(time(NULL));
x=rand()%20;
while(1)
{
printf("1.上楼\n");
printf("2.下楼\n");
printf("3.退出\n");
printf("请选择(1-3):");

scanf("%d",&c);
switch(c)
{
case 1:
printf("此电梯可服务全部楼层\n");
printf("此电梯最大乘客数量20人,最大载重量2000KG\n");
printf("此时电梯正在%d层,稍作等待\n",x);
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>2000)
{
printf("超重,请下去一个人");
s=s-weight[p];
p=p-1;
}
}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]>floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;

case 2:

printf("此电梯服务全部楼层\n");
printf("此电梯最大乘客数量20人,最大载重量2000KG\n");
printf("此时电梯正在%d层,稍作等待\n",x);
printf("请输入进入电梯的人数:\n");
scanf("%d",&p);
printf("他们的体重依次是:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&weight[i]);
s=s+weight[i];
if(s>2000)
{
printf("超重,请下去一个人");
s=s-weight[i];
p=p-1;
}

}
printf("载重量为%dkg,未超重\n",s);

printf("请输入你想去的楼层:\n");
for(i=0;i<p;i++)
{
printf("第%d个人: ",i+1);
scanf("%d",&floor[i]);
}
for(j=0;j<p-1;j++)
for(i=0;i<p-1-j;i++)
{
if(floor[i]<floor[i+1])
{
t=floor[i];
floor[i]=floor[i+1];
floor[i+1]=t;
}
}
printf("将依次到达下列楼层:\n");
for(j=0;j<p;j++)
{
printf("%d\n",floor[j]);
printf("已到达%d层,走好\n",floor[j]);
printf("此层有没有人进电梯?请选择:1-2\n");
printf("1.有人\n");
printf("2.无人\n");
scanf("%d",&h);

switch(h)
{
case 1:
printf("请进电梯\n");
printf("进入电梯人数:\n");
scanf("%d",&p1);
printf("依次的体重:\n");
for(l=0;l<p1;l++)
{
scanf("%d",&weight[l]);
s=s+weight[l];
if(s>800)
{
printf("超重,请下去一个人\n");
s=s-weight[l];
p1=p1-1;
}

}
printf("载重量为%dkg,未超重\n",s);
printf("请输入想去的楼层:\n");
for(m=0;m<p1;m++)
{
scanf("%d",&floor[m]);
printf("已到达%d层,走好\n",floor[m]);
continue;

}
break;
case 2:
printf("关闭电梯门\n");
break;
}
}
break;
case 3:
return 0;
break;
}
}
}

void main()
{
int a;
while(1)
{

printf("欢迎使用电梯\n");
printf("1.乘坐1号电梯\n");
printf("2.乘坐2号电梯\n");
printf("3.乘坐3号电梯\n");
printf("4.乘坐4号电梯\n");
printf("5.退出\n");
printf("请选择(1-5):");

scanf("%d",&a);

getchar();

switch(a)

{
case 1:
elevator1();
break;
case 2:
elevator2();
break;

case 3:
elevator3();
break;
case 4:
elevator4();
break;
case 5:
exit(0);
break;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: