编程语言
首页 > 编程语言> > 结对编程队友代码分析

结对编程队友代码分析

作者:互联网

一、简介

​ 队友:张笑睿

​ 语言:Java

​ 本博客是对我的队友的个人项目的代码分析及评价。个人项目的内容为中小学生试题自动生成系统。

二、功能测试

​ 可以看出在登陆时随便输入的字符串系统会检测出来并提示用户输入正确的用户名以及密码,在生成数学题时如果输入不符合规范会检测到并提示用户输入正确的范围或指令。由此看出程序的安全性和可靠性还是比较高的。

​ 可以看出生成试卷的功能可以实现,并且按照要求在指定路径下生成规定格式的试卷,并且以txt的形式保存下来,符合题目要求。

​ 美中不足的是并没有很清晰的表明生成的试卷是那种类型,可以稍微改进一下增加用户的体验。

三、代码分析

整体架构:

各个类的分析如下:

Operations类

此类为操作类,用来存储用户信息,进行登录验证和操作种类的判断。

属性:

变量 类型 含义
userMap HashMap<String, User> 用户信息Map

方法:

User类

此类为提供试卷的用户类,可以获取用户信息,修改用户信息,生成试卷,创建用户专属的文件夹和试卷文件。

属性:

变量 类型 描述
username string 用户名
password string 密码
type string 学校种类

方法:

PaperMaker类

此类为试卷制造类,可以将试题按顺序写入试卷文件中去。

属性:

变量 类型 描述
titleMaker TitleMaker 题目制造类对象

方法:

Writer类

此类为文件写入类,用于试卷的写入。

方法:

TitleMaker类

此类为题目制造类,可以生成单个的算式。

属性:

变量 类型 描述
elementMaker ElementMaker 元素制造类的对象

方法:

ElementMaker类

此类为元素制造类,用于生成算式中每个元素,并对其进行拼接形成算式。

属性:

变量 类型 描述
primarySymbol LinkedList 存放小学难度符号
juniorSymbol LinkedList 存放初中难度符号
seniorSymbol LinkedList 存放高中难度符号

方法:

方法名 返回值 描述
ElementMaker 构造函数
quitOrNot boolean 判断本轮添加数字后是否退出
addNum void 随机生成1-100之间的操作数
addLeftBracket Object[] 添加随机左括号
addRightBracket int 随机添加右括号
addEvolution void 随机添加根号
addSquare int 随机添加平方
addTFunction int 随机添加三角函数
addSymbol void 随机添加一种运算符
closeBrackets void 补全右括号 使括号闭合

方法数量过多,这里只举一个例子:

// 随机添加根号
  public void addEvolution(Random random, StringBuffer stringBuffer) {
    // 随机加根号
    int evolutionOrNot = random.nextInt(2);
    if (evolutionOrNot == 1) {
      stringBuffer.append(juniorSymbol.get(1));
    }
  }

该方法实现了添加根号的功能。

Main类

该类为测试类,用于测试程序。

方法:

四、总结

优点:

1. 整体架构清晰明了,封装性很强。
2. 代码的功能实现非常完备,逻辑判断边界考虑非常周到。
3. 代码可读性很高,注释也很多,方便阅读。
4. 严格遵守Google编码规范,代码整体很美观。

缺点:

  1. 题目查重的算法效率比较低,有待改进。
  2. 生成试卷的区分上面还可以更加完善。
  3. 用户信息存储需要改进,若增加用户信息需要在源代码更改,有待优化。
  4. 可以在代码复用性上再进一步改进。

总的来说,xr同学的程序整体上是非常不错的,是很值得我去借鉴学习的,希望以后可以多多跟xr大佬请教!

标签:结对,String,userMap,方法,编程,队友,new,type,public
来源: https://www.cnblogs.com/liyachen/p/16691590.html