软件2103 桑健康
队友 李明胜
功能测试
登录模块
需求:系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100
正常测试 正常:
错误输入 正常:
切换模块
需求:在登录状态下,如果用户需要切换类型选项,命令行输入“切换为XX”,XX为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“”系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题。
正常测试 正常:
错误测试 正常:
出题模块:
需求:
1、题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录),程序根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复
2、生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行
正常测试 正常:
小学
题目
初中
题目
高中
题目
错误测试 正常:
所有功能都已完成,并且在用户进行错误输入的情况下,也可以完成功能。
代码框架
文件架构
Paper 文件夹下用于存储用户产生的试卷
papergenerator 文件夹下用于存储运行代码,下有两个包
1、paper包 用于产生试卷和题目
2、user包 用于用户登录
Client用于主函数运行
uml图
ideal自动生成的
Paper包
User包
代码运行流程
User.LoginAndOperate 初始化user信息-->Client.afterLoginOperation- 判断user信息是否输入正确 --> 根据输入执行功能
1、 出题--> user.generatePaper(n)
2、 切换--> changeUserAccountType()
总评
优点
1、程序正确运行,用户输入不规范输入,也可以正常运行
2、代码的复用,几乎没有发现重复的代码
3、抽象类的运用,使用抽象类PaperGenerator,便于以后功能的扩展
4、出题后,给出试卷的文件位置
5、代码规范较好,每个函数见名知意,并且有注释
有待改进
1、user的用户名密码写在运行程序里,不便于扩展
2、一个用户具有PrimaryPaperGenerator , SeniorPaperGenerator , JuniorPaperGenerator三个产生试卷的工具,有些多余
3、题目查重功能暴力全局遍历,有待优化