任务1:在学习通上注明结对的成员对格式(5分)

        4班顾雪微——4班许爽

任务2:结对的成员共同完成本次作业,撰写博客并将结对项目的程序发布到github上(95分)

        博客的内容安排如下:

  1.提供你的结对成员的博客链接地址(5分)
https://www.cnblogs.com/gugu-/p/11708321.html

  2.结对成员对四则运算项目进行代码互审,并给出代码审查结果表
 

        顾雪微代码审查表(由许爽完成)(10分)

程序的板式
重要性 审查项 结论
空行是否得体?
代码行内的空格是否得体?
长行拆分是否得体?
“{” 和 “}” 是否对齐于同一列?
重要 一行代码是否只做一件事?如只定义一个变量,只写一条语句。
重要 If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。
重要 在定义变量(或参数)时,是否将修饰符 * 和 & 紧靠变量名?注释是否清晰并且必要?
长行拆分是否得体?
重要 注释是否有错误或者可能导致误解?
命名规则
重要性 审查项 结论
重要 命名规则是否与所采用的操作系统或开发工具的风格保持一致?
标识符是否直观且可以拼读?
重要 程序中是否出现相同的局部变量和全部变量?
类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则?
静态变量、全局变量、类的成员变量是否加前缀?
表达式与基本语句
重要性 审查项 结论
重要 如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序?
重要 是否用隐含错误的方式写if语句? 例如
如果循环体内存在逻辑判断,并且循环次数很大,是否已经将逻辑判断移到循环体的外面?
将浮点变量用“==”或“!=”与任何数字比较。
函数设计
重要性 审查项 结论
参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字。
是否使用类型和数目不确定的参数?
是否省略了函数返回值的类型?
类的高级特性
重要性 审查项 结论
是否违背了继承和组合的规则?
其它常见问题
重要性 审查项 结论
重要 变量的数据类型有错误吗?
重要 变量的初始化或缺省值有错误吗?
重要 循环终止条件不正确吗?

###        许爽代码审查表(由顾雪微完成)(10分)
程序的板式
重要性 审查项 结论
空行是否得体?
代码行内的空格是否得体?
长行拆分是否得体?
“{” 和 “}” 是否对齐于同一列?
重要 一行代码是否只做一件事?如只定义一个变量,只写一条语句。
重要 If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。
重要 在定义变量(或参数)时,是否将修饰符 * 和 & 紧靠变量名?注释是否清晰并且必要?
长行拆分是否得体?
重要 注释是否有错误或者可能导致误解?
命名规则
重要性 审查项 结论
重要 命名规则是否与所采用的操作系统或开发工具的风格保持一致?
标识符是否直观且可以拼读?
重要 程序中是否出现相同的局部变量和全部变量?
类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则?
静态变量、全局变量、类的成员变量是否加前缀?
表达式与基本语句
重要性 审查项 结论
重要 如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序?
重要 是否用隐含错误的方式写if语句? 例如
如果循环体内存在逻辑判断,并且循环次数很大,是否已经将逻辑判断移到循环体的外面?
将浮点变量用“==”或“!=”与任何数字比较。
函数设计
重要性 审查项 结论
参数的书写是否完整?不要贪图省事只写参数的类型而省略参数名字。
是否使用类型和数目不确定的参数?
是否省略了函数返回值的类型?
类的高级特性
重要性 审查项 结论
是否违背了继承和组合的规则?
其它常见问题
重要性 审查项 结论
重要 变量的数据类型有错误吗?
重要 变量的初始化或缺省值有错误吗?
重要 循环终止条件不正确吗?
##3.选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:(30分) ###        (a)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量命名规范)。 - 函数的大小一般不要超过50行,函数越小,代码越容易维护。 - 空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰。 - 一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 - if、for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。 - 代码行最大长度宜控制在70至80个字符以内。代码行不要过长,否则眼睛看不过来,也不便于打印。 - 在代码中经常残留一下被注释的代码,如果这段代码还有价值,必须对该段代码加上被注释的原因,或者不需要有的就直接删除。 - 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。 - 注释应当准确、易懂,防止注释有二义性。 - 标识符应当直观且可以拼读,可见名知意,不必进行“解码”。 - 所有的变量,函数,类的命名,若需要多个单词时,每个单词直接连写,不要用下划线(“_”)或横线(“-”)分开。如:DeviceInfo,RemoteCamera。 - 变量的名字应当使用“名词”或者“形容词+名词”。首字母以小写开头。 - 函数名字与返回值类型在语义上不可冲突。
###      (b)描述结对编程的感受。 ###1.互相学习        结对编程也是一个互相学习的过程。在结对编程过程中,两人会不断就实现方法、代码风格或命名方法等进行讨论,两个人的思路能够进行互补,在编写过程中能够学到对方解决问题的思路和方法,对于提高自己解决问题和编程能力有很大的帮助。 ###2.认真对待        我认为,结对编程与个人编程一个最明显的不同就体现在心理差异上。因为结对编程是两个人的事情,不论是担任驾驶员还是领航员的角色,都需要对程序设计和实现有足够的准备,否则很容易变成一个人写代码,另一个人无所事事。开发过程中,要打起十二分精神,两个人紧密配合,谁也不好意思开小差,能够集中注意力在代码上。 ###3.提高效率        结对编程的形式使得代码处于不断地审查过程,每一段代码都由一个人编写,另一个人检查,最大程度上减少了出现bug的可能;两人互相交流,商讨实现方式,遇到问题时,能够做到互补。在测试过程中,因为有两个人共同调试,所以能够更快的发现问题所在。 ###      (c)结对场景照片 ![](https://img2018.cnblogs.com/blog/1791116/201910/1791116-20191021202737639-1256059183.jpg)

4.结对项目编程要求:对结对项目首先完成代码规范和设计规范的修改,其次完成项目增加的需求,最后将完成的项目提交到github上,给出github的连接地址,可以给出简单的设计说明。(40分)

(1)分析所需要具有的功能模块

(2)实现各个模块功能

(3)进行异常处理

(4)代码测试找bug

(5)改进代码

GitHub地址:https://github.com/gugu-l/java-