结对编程
2016-04-09 19:28 真白新宇 阅读(275) 评论(1) 编辑 收藏 举报现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示:
电梯编号 |
可服务楼层 |
最大乘客数量 |
最大载重量 |
1 |
全部楼层 |
10 |
800 kg |
2 |
单层 |
10 |
800 kg |
3 |
双层 |
20 |
1600 kg |
4 |
全部楼层 |
20 |
2000 kg |
其使用规定如下:
1、楼层号为0~20,其中0号为地下一层;
2、有楼层限制的电梯不在响应楼层停靠,如单双层;
3、所有电梯采用统一按钮控制
上面是本次作业的题目要求,我的小伙伴是沈鹏飞,http://home.cnblogs.com/u/shenpfei/,我们选择了C语言进行编写。
程序分析
首先我们选择电梯的存储,通过讨论决定用结构体数组进行存储,结构体里面分别存有电梯现在所在楼层,电梯目的楼层,所需要走的楼层数;然后通过结构体数组中的四个结构体分别存放电梯1到电梯4,代码如下:
主函数中定义一个变量,用来判断是否结束电梯的使用,用while循环来进行电梯的显示和乘客的请求页面,代码如下:
乘客请求页面,会让用户填写想去的楼层和自己所在的楼层,因为电梯最高到20楼,所以当所填的楼层超过20的时候,系统自定义为20,然后调用elevator_panduan()函数,来进行电梯的选择,代码如下:
电梯的选择,首先判断乘客所在楼层是奇数楼层还是偶数楼层,当是奇数楼层是调用Short2()函数,然后进行目的楼层的判定;如果是偶数楼层,调用Short1()函数,然后进行目的楼层的判定;最后得到一个电梯号,然后连同乘客所在楼层和目的楼层传递给elevator_run()函数来运行电梯。代码如下:
电梯运行函数,通过传递进来的电梯号来选择需要进行调整的电梯,首先将该电梯的目的楼层修改成乘客所在楼层,将电梯需要走的数进行运算,每刷新一次,电梯就行走一步,当电梯到达乘客所在楼层后将电梯的目的楼层修改成乘客的目的楼层,然后等待刷新,或者是进行其他用户的请求,代码如下:
以上就是我们所写程序的大体流程。
遇到的问题
第一个问题是无论一个乘客输入层数和目的层数,最后显示的都是1楼,回头是沈鹏飞找到了问题所在,原来是我们进行距离比较的地方有些问题,经过修改程序得以正常运行。
第二个问题是开始第二个乘客的请求后,无论怎么刷新电梯显示的楼层数都不会发生改变,我们现实想是不是电梯函数出错了,结果并不是,然后我们就去看电梯运行和刷新函数,然后发现在函数的判定后多谢了一个break。
感想
在这次合作中,我学到了很多,也发现了原来两个人合作编程是这样的,一个人编程时总是觉得有点难就参考别人,但是这次是两个人共同思考,遇到问题一起解决,我自己承认在编程方面确实技不如人,发现自己的许多缺陷,例如总是多一点东西,导致最后程序运行错误,不够细心。
下面容许我评论一下我的小伙伴,很高兴这次能匹配到飞哥,大家心中的大哥,而且学习成绩比我好,编程能力比我强好多,跟他在一起合作可以学到很多不会的东西,遇到我不会的,他会细心跟我解释,很高兴能和他共同合作。
附录
我俩的合作照片(这会飞哥耐心给我解释问题呢,嘻嘻嘻)