结对编程——个人项目代码分析评价
简介
项目内容:数学计算出卷系统
相关功能:1.有多个类型(小学/初中/高中)教师用户可以凭借密码登录系统;
2.输入出题数目,系统凭其类 型生成相应类型的试卷文件;
3.教师也可手动修改出题类型
编程语言
JAVA(使用IDEA)
代码模块分析
我的搭档将项目实现内容分为了两个部分:“登录模块”与“出卷模块”,我就模块中几个有特点的部分进行分析总结
首先来看登录模块
教师的数据库与密码表示形式

登录具体流程可以总结为:输入用户id,系统识别并在字符串数组中与之匹配的用户id,并返回对应下标;然后,凡是输入密码为“123”,系统判断登录成功,进入出卷界面。这里可以看出教师的“用户名”与“密码”相关性较弱,这就暴露了一个明显的缺点:所有用户密码都是相同的,一改全改,假如有对于单个用户修改自己密码之类的需求,是不能实现的。
于是进一步总结——为了能够方便单个用户的系列需求,我们要趋于面向对象(这里即用户)编程,而非面向过程编程,去设计一个用户类,将id,密码等用户相关信息封装起来,这样用户的每一步操作都可以独立进行,不会影响其他用户属性。
然后是出卷模块
生成随机算式

这里我的搭档构思与我不同:我的构思是构造针对每一个操作数生成的随机函数,在这个函数中随机对操作数添加特殊符号或者括号,形成一个操作块,然后返回,在外部由四则运算符连接。而他的方法是对于一个算式,令操作数与与各个符号单独随机,然后一个符号一个符号累加。经过对比,我认为后者为佳。我的操作块连接的方法虽然看起来比较简洁,但是对于算式计算方面就显得很鸡肋;而他的程序因为一个一个添加操作数与字符的操作过程性更强,可以即时判断每一个新增符号的含义,更有利于算式结果的计算,对之后的结对编程更有帮助,这种巧妙构思很值得学习。

浙公网安备 33010602011771号