结对编程——个人项目互评

结构

使用了两个类:Teacher类,用来构建教师用户对象;MakerMain类,完成出题功能和系统逻辑。

Teacher类

写法非常简洁,Teacher下有三个属性,分别是type(类型)、username(用户名)、password(密码)。只有一个带参的构造方法,没有其他方法。清晰明了。

 

MakerMain类

MakerMain下有三个属性,teacherInfo用于构建九个教师用户;schoolType表示年级的变量;teacherNo教师编号。

teachrInit()方法

对九个教师用户的账户信息进行初始化,设置他们年级、姓名与密码。将教师对象用数组方式进行存储。

logincheck()方法

用于登录并返回登录账号的编号,在该方法中输入教师的姓名和密码,对teacherInfo中每个对象进行遍历查找,若找到返回教师编号;若找不到则返回logincheck()方法继续进行输入与判断,直到正确为止。

makeTest()方法

生成试卷的函数,同时可以处理切换出题年级的要求。
使用try catch方法接住输入,输入不为数字时,切换年级

 

generate()方法

试卷生成功能,创建父文件夹以及各个老师的子文件夹,使用for循环的方法生成题目,对于每个操作数给定随机添加各种运算符号。

check()方法

用于对生成的每个算式查重,使用文件数组,提取当前教师文件夹中所有文件,使用split将题号与算式分离,然后逐个判断当前算式是否与之前的算式有相同,有相同则在generate方法中重新生成一个算式。

优点

1、代码十分简洁和明了,没有多余的步骤,建立Teacher类和MakerMain类,将用户登录、切换、生成试卷、输出文件等操作封装到类中,有很好的封装性。
2、执行函数(main)中,只写了很少的语句,调用了已经封装好的功能函数

 

 

3、功能封装合理,大大减少了代码量。

缺点

在generate试卷生成方法中,小学初中高中三种试卷写在了一起,代码阅读起来有些繁琐。
采用先生成操作数再添加符号的逻辑进行算式生成,需要经过很多条件判断,或许存在有更便捷的逻辑。

posted @ 2021-09-27 23:41  MAMafia  阅读(43)  评论(0)    收藏  举报