i

中小学数学卷子自动生成程序结对前分析

前段时间花了一些时间写了个人项目作业:中小学数学卷子自动生成程序。在结对编程之前,看了队友的代码,发现队友编写的代码有一些可借鉴之处,也存在着不足。

 

结构分析

首先要赞扬的是他的代码结构逻辑清晰,没有什么冗余部分。

用户名和密码直接保存在userData中。

 【Main类】是程序的入口,负责调度所有的类和方法。

  其包含:

  main() 程序入口

【Question类】直接负责题目的生成。

  其包含:

  questionCreater()  按照参数生成指定数量的题目,并集合题目生成卷子,最终存储在当前目录下。

  primary() 生成一道小学题目

  junior() 生成一道初中题目

  highschool() 生成一道高中题目

【User类】负责各类操作的逻辑,管理用户。

  其包含:

  User() 构造方法,负责初始化

  checkUser() 参数传入用户名和密码,判定是否登录成功并更改登录状态

  login() 登录模块,附带提示和方法调用

  showTips() 提示模块,提示当前生成的题目数量

  launch() 主逻辑模块,按输入给出相应回应和变化

 

从Main类可以直接看出程序的大致执行流程:

 一个简单却高效的循环:【未登录时陷入执行登录】→【给出生成提示】→【操作模块】

但一方面来说,他的代码有些“过于集成”,Main类的执行逻辑比较僵硬,User类不仅管理用户还管理整个程序的执行逻辑,不易编辑扩展。

 

代码分析

因为是其他人写的程序,不好贴上代码附属,简单评价:

1、代码过程while、for、if、switch使用规范,过程出现的地方恰到好处,代码鲜明易懂。

2、用较少的代码实现了所有项目需求,简洁但是十分高效,在这种小项目中恰到好处。

3、代码中的注释十分合理,不赘余的同时又解释清了具体代码的用途。

4、程序里面没有使用到枚举类型,类型变化比较晦涩。

5、使用较多的boolean变量表示状态,这也是程序唯一冗余的一点。

6、Java的使用不熟,部分地方原本可以直接用Java的原生方法处理却没能使用。

 

posted @ 2019-09-19 21:47  BLANKMIND  阅读(111)  评论(0)    收藏  举报