整个项目代码由三个顶层类文件分为三个部分:
MainPart.java(交互界面,主函数)
users:账户类实例化
initList()
初始化账户信息
createProblems()
出题界面
adminSystem()
管理员界面
initSystem()
登录界面
User.java(账户类)
grade:类型
id:名字
password:密码
User()
构造方法
getGrade()
获得类型
getId()
获得名字
getPassword()
获得密码
setPassword()
设置密码
Creation.java(生成题目)
id:名字
grade:类型
num:生成题目数
Creation()
构造方法,根据类型生成不同难度题目
createBasic()
添加一个操作数和运算符
createTwo()
生成两操作数数学题
createThree()
生成三操作数数学题
createFour()
生成四操作数数学题
createFive()
生成五操作数数学题
saveFile()
保存题目到txt文件
creating()
随机生成不同操作数的题目并判断是否重复
运用面对对象的思想将项目分为三个相对独立的部分:账户类、交互界面类和生成题目类。
账户类:保存账户信息,由其他两部分调用。
交互界面类:接收用户的输入指令,调用其他两部分的方法登录、生成题目或修改账户信息。
生成题目类:接受交互界面类的调用生成题目,保存在生成的txt文件中。
便于代码复用及维护。
代码格式规范。
文件名、类名、变量名取名都使用驼峰法,简洁明了,可读性强。
缩进、空格、自动换行都采用统一标准,大气美观。
每个类或方法都有注释解释说明了大致功能与参数、返回值。
各功能分类明确,准确无误地满足了项目需求,测试无bug存在。
生成题目的算法采用了分解组合的方法,多操作数题目由少操作数题目组合而成,如五操作数题目由四操作数题目加一操作数而成,以此类推。该算法考虑到了各种题目情况,比较全面。
添加了项目需求中未要求的管理员账户,实现了对已有账户的修改和增添、删除账户的功能。
在用户界面一些输入要求没有提示,有些输入错误后跳转界面不友好,成功生成文件后没有提示。
一些难懂的代码旁没有注释使得理解有些困难。
生成题目的方法createFive()、createFour()、createThree()、createTwo()、createBasic()中代码的重复率过高,比较庞杂。
管理员账户对账户的修改无法保存到下一次运行。
解释器中的警告很多(强迫症患者表示很难受)。