结对编程项目--电梯调度(合作伙伴叶思维)
2016-04-09 11:14
337 查看
我们所完成的项目是电梯调度,具体要求如下:
一.项目以及合作伙伴
项目:现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:
其使用规定如下:
1.楼层号为0到20,其中0为地下一层。
2.有楼层限制的电梯不在响应楼层停靠,如单双层。
3.所有电梯采用统一按钮标志。
合作伙伴:叶思维博客网址http://www.cnblogs.com/ysw6
二.项目的需求和程序的设计
接到这个项目后,我就跟叶思维交流怎么去写,用什么语言去写和怎么去实现电梯的功能,经过一番交流,我们决定每个电梯写一个函数,每个函数去实现每个电梯的具体功能,写代码的过程是我们两个一起完成的,主函数与子函数分配合作,很快就写出了初始代码,之后经过修改和完善,最终写了800多行,由于对图形界面的相关知识了解比较少所以没有用到图形界面来显示电梯的运行过程。
三.对方性格评价
叶思维的责任心比较强,做事很认真,做起事来也很有耐心,在写程序过程的争执也是和谐的解决了,我们两个合作的很愉快,下面是我们合作编程时的照片
四.合作伙伴编程的习惯
叶思维在编程过程中有时候会出现一些小小的失误,但是在我们的一起合作下,小bug都被及时的解决了,我也是如此,在我们的互补之下,很顺利的完成了这个项目。
五.此次编程过程的体会和总结
此次编程是我第一次和别人一起合作完成,之前都是我自己去编程,遇到不会的问题就去百度,虽然这培养了自己的独立完成项目的能力,但是合作编程也是我们需要去培养的,让我们学会合作与交流,并且知道自己与他人的差别,促进自己以及伙伴超越对方,我们一起互帮互助的共同进步。
六.程序运行截图及源代码
一.项目以及合作伙伴
项目:现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:
电梯编号 | 客服务楼层 | 最大乘客数量 | 最大载重量 |
1 | 全部楼层 | 10 | 800kg |
2 | 单层 | 10 | 800kg |
3 | 双层 | 20 | 1600kg |
4 | 全部楼层 | 20 | 2000kg |
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; } } }
相关文章推荐
- C++中的头文件和原文件
- java:comp/env/jdbc/ 的两种配置方法
- C++ - STL- vector
- Qt核心剖析: moc
- java,this放在第一行,不能和super同时使用
- 【C语言】C语言的const与C++的const区别
- Spring + Spring MVC + MyBatis 整合
- 【C语言】总结C语言深度剖析
- 【动态规划】最长公共子序列(并续)
- C++ 访问范围说明符
- C++异常处理机制几种方法
- 100天JAVA学习计划06-多态
- c++中栈与队列的实现
- javase JDK 和 javaee SDK
- SpringMVC的各种参数绑定方式
- Qt中moc问题(qt moc 处理 cpp)
- Qt中moc问题(qt moc 处理 cpp)
- Machine Learning 线性回归( Linear Regression) Andrew Ng 课程练习 Matlab Script 详细解析
- qt中moc的作用
- 结对编程之队友篇