深入分析理想同学的试卷生成系统
题目简介:
用户:
小学、初中和高中数学老师。
功能:
命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名、密码”,重新输入用户名、密码;
登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100;
题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录),程序根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复(以指定文件夹下存在的文件为准,见5);
在登录状态下,如果用户需要切换类型选项,命令行输入“切换为XX”,XX为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“”系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题;
生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行;
题目难点分析:
1.生成指定的文件名(user/难度/时间文件名);
2.不同难度的数学卷子自动生成函数;
用法说明:1输入:用户名 空格 密码;用户名或密码错误,重新登陆;
2输入题目数量为-1时,系统退出登陆,进入重新登陆状态;
3用户可以选择切换出题难度,也就是小学/初中/高中;
4题目数量在10~30之间,系统才会生成相应数量的题目。
优点分析:
(1)该程序实现了要求的虽有功能,输出的题目很整齐,每道题都有题号,数字和符号之间没有空格,每行题目之间一行空行,让人看起来不会有密密麻麻的感觉,界面整齐漂亮;
(2)他的代码写了三个题目生成函数,分别对应小学,初中,高中,和一个文件名生成函数,用来把生成的题目存放到对应的文件里,文件夹中分别囊括了各个难度的试题,从而使得代码很简单,很清晰;
(3)引入状态参数,判断当前属于登录态还是切换态。
缺点在于:
(1)分层不够明确,代码有些冗杂,判定题目难度的部分写在了主函数里面,很繁琐;代码长度过长。
(2)在提示切换类型时,提示内容有误,他的输出的提示内容之这样的“请输入切换的类型(小学/中学/高中)”,然而输入中学后却会提示输入错误,输入“切换为初中”才能成功;
(3)可以多次登录,但没有用户名和密码错误一定次数,封号一天之类的惩罚措施,只有当输入题目数量为-1时,才能退出登录。