- 评价:软件2104党郑骅霖
- 代码:软件2104熊偲彤
一、项目介绍
个人项目:中小学数学卷子自动生成程序
用户:小学、初中和高中数学老师。
功能:
- 命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名、密码”,重新输入用户名、密码;
- 登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100;
- 题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录),程序根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复(以指定文件夹下存在的文件为准,见5);
- 在登录状态下,如果用户需要切换类型选项,命令行输入“切换为XX”,XX为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“”系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题;
- 生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行;
二、代码功能测试
登录界面,输入正确可以登录,输入错误会提示:
操作界面,可以切换生成试卷的所属类型,可以生成相应数量的题目,可以进行重新登录:
生成试卷符合要求,以时间为标题:
题目符合要求:
小学使用基础符号和括号
初中至少有1个平方或根号
高中至少有1个三角函数
综上可见功能基本完善,对错误的输入能做出反馈,程序能及时退出
三、代码分析与评价
- 代码分析:
存在两个包ToolClass与ui:
ToolClass为登录、生成试卷等操作所需要的工具,其中包含:
ElementMaker用于生成操作数、对应年级使用的符号、括号;PaperMaker生成试卷并判断是否存在重复;TitleMaker生成相应题目;User定义相应用户并生成用户对应的文件夹与文件名 ;Writer用于写入文件。
ui为交互页面工具,其中包含:
Conect用于连接user中的账号、密码、年级;LoginJFrame用于登录弹窗界面交互;PaperMakerMainJFrame用于生成试卷界面交互。
main通过调用交互界面中的登录,以此引出之后操作。
- 代码优点:
使用交互页面,便于操作使用
在主函数中仅调用一个方法,使代码的结构更加清晰。多用返回值和传参函数,较好的掌握面向对象的编程思想,便于以后的修改的使用。
符合Google编码规范,编码采用utf-8的标准,同时注释较为详细,阅读起来较为流畅。
提示比较详细,在输入错误情况下会有相对应的指示,体验度高。较好的完成了项目需求,实现了用户登录,功能选择,题目查重,试卷自动生成等功能。
- 代码缺点和问题:
代码逻辑没有考虑双操作数交换律也属于重复的题目
程序中的文件保存你绝对路径,硬编码为"C:\\",这可能导致在不同操作系统或环境下的问题。应该使用相对路径或配置文件来管理文件路径。
- 总结与评价
熊偲彤同学基本完成了需求的功能,且在程序设计上有着自己独特且精巧的设计,可读性有一点小欠缺,不过因为每个类都有其特定的功能,并给出了相应注释,因此只需要仔细看一下便可以理解,不过希望之后代码的可读性和可维护性可以通过引入更多的注释和文档来提高代码的可读性和可维护性。通过互评我认识到自己的不足,也互相学习了对方的可取之处,受益匪浅也希望在接下来的时间里我们能共同进步。
标签:题目,登录,个人,项目,代码,生成,互评,XX,输入 From: https://www.cnblogs.com/gulukulu/p/17718757.html