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

结对编程

2016-04-09 16:15 387 查看
一 题目要求



二 程序分析

这个程序由我和崔露露搭档完成,由于编程的能力有限,设计的程序比较简单,每次只能实现一个人做电梯,

运行程序,输入所在楼层,和要去的楼层,再输入方向,就可以启动电梯,电梯向上输入1,电梯向下要输

入-1,这是第一次写结对编程,相信经过这次的磨练,以后会越做越好。

三 对方性格评价

崔露露给我的感觉非常负责,工作起来的样子很认真,态度很端正,我们本次的合作过程一直都很顺利,

以前对她没有太多的认识,也基本没有过沟通,但是经过这次合作,对她有了比较深刻的了解,希望下次还能

和她一起合作。下面是我和她的工作照片





四 过程总结

这次作业让我对编程有了更深刻的了解,也找到了很多自己的不足,想的过程和亲自动手写是完全两码事,

本以为程序很简单,但是真正自己动手写的时候才发现什么都写不出,有很多基础知识都已经忘记了,这次

作业让我提升了自己的实力,并在日后的自我学习以及上课时,认真对待,不论上的是不是专业课,都认真

去听,努力做到最好。

这次作业我最大的感受有二。

第一、队友很重要。这包含如何沟通等。

第二、本身的编程能力很重要。 其实,学习计算机,最重要的不是读老师上课内容的了解,考试考得怎

么样。我认为最重要的是,自学能力。并且最有效的方式,就是与队友完成项目,以及合作的重要性,相信

自己以后会做到越来越好。

五 程序设计

定义三个函数

int abs_(int a, int b, int c, int d);//判断响应满足请求最近的电梯号
int check(int goTo, int now);//检查电梯状态,并判断最近电梯是否满足条件(是否超重)
int call(int now, int goTo, int dir, int a);//响应用户请求


主函数

void main()
{
while(1)
{
printf("输入所在楼层,前去的楼层,方向\n");
int dir;
int goTo, now;
int i;
scanf("%d%d%d", &now, &goTo, &dir);
i = check(goTo, now);
call(now, goTo, dir, i);
}
}


判断满足相应的最近的电梯号函数

int abs_(int n, int b, int c,int d)
{
int a1, a2, a3,caller;
a1 = n -ele[b].now;
if (a1 < 0)
a1 = -a1;
a2 = n- ele[c].now;
if (a2 < 0)
a2 = -a2;
a3 = n-ele[d].now;
if (a3 < 0)
a3 = -a3;
if (a1 < a2)
{
caller = b;
if (a1 < a3)
caller = b;
else
caller = d;
}
else
{
caller = c;
if (a2 < a3)
caller = c;
else
caller = d;
}
return caller;
}


查询函数

int check (int goTo, int now)
{
int a;
if (now % 2 == 0&&goTo%2==0)
{
if (ele[0].num > 10)//一号电梯是满
{
if (ele[2].now < ele[3].now)
a = 2;
else
a = 3;
}
else if (ele[2].num>20)//三号电梯满
{
if (ele[0].now < ele[3].now)
a = 0;
else
a = 3;
}
else if (ele[3].num>20)//四号电梯满
{
if (ele[2].now < ele[0].now)
a = 2;
else
a = 0;
}
else            //都不满
a = abs_(now, 0, 2, 3);
}
if (now % 2 == 0 && goTo % 2 == 1)//位于偶数层要去奇数层
{
if (ele[0].now<ele[3].now)
a = 0;
else
a = 3;
}
if (now % 2 == 1 && goTo % 2 == 0)//位于奇数层要去偶数层
{
if (ele[0].now<ele[3].now)
a = 0;
else
a = 3;
}
if (now % 2 == 1&&goTo%2==1)
{
if (ele[0].num > 10)//一号电梯是满
{
if (ele[1].now < ele[3].now)
a = 1;
else
a = 3;
}
else if (ele[1].num>10)//二号电梯满
{
if (ele[0].now < ele[3].now)
a = 0;
else
a = 3;
}
else if (ele[3].num>20)//四号电梯满
{
if (ele[1].now < ele[0].now)
a = 1;
else
a = 0;
}
else            //都不满
a = abs_(now, 0, 1, 3);
}
return a;
}


调用电梯函数

int call(int now,int goTo,int dir,int a)
{
if (dir == 1 && ele[a].dir == 1 && now > ele[a].now)//等于1为向上运行
{
ele[a].num++;
ele[a].now = now;
printf("the elevator %d is coming to your spot -- %d\n",a,now);
printf("now,the are/is %d people in elevator\n", ele[a].num);
ele[a].now = goTo;
ele[a].dir = 1;
printf("now,we are goning to floor %d\n",goTo);
printf("OK!Here we are!\n");
ele[a].num--;
ele[a].dir = 0;
printf("now,the are/is %d people in elevator\n", ele[a].num);
}
else if (dir == 1 && ele[a].dir == 0)
{
ele[a].num++;
ele[a].now = now;
printf("the elevator %d is coming to your spot -- %d\n",a, now);
printf("the are/is %d people in elevator\n", ele[a].num);
ele[a].now = goTo;
ele[a].dir = 1;
printf("now,we are goning to floor %d\n", goTo);
printf("OK!Here we are!\n");
ele[a].num--;
ele[a].dir = 0;
printf("now,the are/is %d people in elevator\n", ele[a].num);
}
if (dir == -1 && ele[a].dir == -1 && now < ele[a].now)//-1向下运行
{
ele[a].num++;
ele[a].now = now;
printf("the elevator %d is coming to your spot -- %d\n", a, now);
printf("the are/is %d people in elevator\n", ele[a].num);
ele[a].now = goTo;
ele[a].dir = -1;
printf("now,we are goning to floor %d\n", goTo);
printf("OK!Here we are!\n");
ele[a].num--;
ele[a].dir = 0;
printf("now,the are/is %d people in elevator\n", ele[a].num);
}
else if (dir == -1 && ele[a].dir == 0)
{
ele[a].num++;
ele[a].now = now;
printf("the elevator %d is coming to your spot -- %d\n", a, now);
printf("the are/is %d people in elevator\n", ele[a].num);
ele[a].now = goTo;
ele[a].dir = -1;
printf("now,we are goning to floor %d\n", goTo);
printf("OK!Here we are!\n");
ele[a].num--;
ele[a].dir = 0;
printf("now,the are/is %d people in elevator\n", ele[a].num);
}
return 0;
}
三 运行结果截图








内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: