一、实验目标
1)体验敏捷开发中的两人合作。
2)进一步提高个人编程技巧与实践。
二 、实验内容
1)根据以下问题描述,练习结对编程(pair programming)实践;
2)要求学生两人一组,自由组合。每组使用一台计算机,二人共同编码,完成实验要求。
3)要求在结对编程工作期间,两人的角色至少切换 4 次;
4)编程语言不限,版本不限。建议使用 Python 或 JAVA 进行编程。
三、组队情况:
1、队名:WxWz
2、各队员博客地址:3170701103 王旭(https://www.cnblogs.com/014wangxu/)
3170701104 王振(https://www.cnblogs.com/wshu221/)
3、课题及仓库:四则运算 https://www.gitHub.com/jdbcsy/yunsuan
四、实验内容:
1、代码规范:
代码规范化基本上有七大原则,体现在空行、空格、成对书写、缩进、对齐、代码行、注释七方面的书写规范上。
1)空行
空行起着分隔程序段落的作用。空行得体将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序会多消耗一些纸张,但是值得。
2)空格
关键字之后要留空格。像 const、case 等关键字之后至少要留一个空格,否则无法辨析关键字。函数名之后不要留空格,对于表达式比较长的 for 语句和 if 语句,为了紧凑起见,可以适当地去掉一些空格。但 for 和 if 后面紧跟的空格不可以删,其后面的语句可以根据语句的长度适当地去掉一些空格。
3)成对书写
成对的符号一定要成对书写,如 ()、{}。不要写完左括号然后写内容最后再补右括号,这样很容易漏掉右括号,尤其是写嵌套程序的时候。
4)缩进
缩进是通过键盘上的 Tab 键实现的,缩进可以使程序更有层次感。原则是:如果地位相等,则不需要缩进;如果属于某一个代码的内部代码就需要缩进。
5)对齐
对齐主要是针对大括号{}
说的:
规则一:{
和}
分别都要独占一行。互为一对的{
和}
要位于同一列,并且与引用它们的语句左对齐。
规则二:{}
之内的代码要向内缩进一个 Tab,且同一地位的要左对齐,地位不同的继续缩进。
6)代码行
规则一:一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且便于写注释。
规则二:if、else、for、while、do 等语句自占一行,执行语句不得紧跟其后。此外,非常重要的一点是,不论执行语句有多少行,就算只有一行也要加{}
,并且遵循对齐的原则,这样可以防止书写失误。
7)注释
C语言中一行注释一般采用//…
,多行注释必须采用/*…*/
。注释通常用于重要的代码行或段落提示。在一般情况下,源程序有效注释量必须在 20% 以上。虽然注释有助于理解代码,但注意不可过多地使用注释。
2、程序的总体设计(附图说明模块之间的关系)
经讨论后得出下面的程序流程图:
3、程序结对编程过程(附图)及功能实现情况(附代码和图)
本次结对编程实验我们两人的交互如下:
第一次由王旭同学对代码进行了整体的规划与上传
代码网址:https://github.com/wanzghen1111/yunsuan/tree/master/sy
第二次由我添加了对错误更有效地处理并附带代码如下
修改之前:
修改之后,对于做对了的题目保持不变,做错的题目将给出正确答案。
代码如下:
第三次由我对运行界面进行了优化
一开始界面主菜单和题目同时存在,并且没有题目类型提示,不够美观和明显,所以我将界面主菜单和题目分开,并且标注了运算的题目类型。
优化前:
优化后:
代码如下:
第四步由王旭同学对代码进行了检错与整理,详见王旭同学博客。
4、项目github地址(附图)
https://github.com/jdbcsy/yunsuan
5、实验总结
本次实验给了我们一个平台可以合作编程,这是跟以前的编程是不同的,与他人同时编辑一个文档,可以提高我们的工作效率,毕竟有两个人来协同努力,两个人的努力不只是1+1=2的简单计算,两个人可以互补不足。同时结对编程相对于一个人编程,出现错误的几率更小,因为两个人的工作细致程度是一个人没法比的。通过这次实验也了解到托管的用法,可以将代码托管到GitHub上,方便别人查看和保管,有利于积累经验和保存成果。这次实验是一个全新的体验,给了我们一个学习的平台和方法,第一次相对的了解了结对编程。