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

项目需求简述

个人项目:中小学数学卷子自动生成程序
用户:
小学、初中和高中数学老师。
功能:
1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名、密码”,重新输入用户名、密码;
2、登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100;
3、题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录),程序根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复(以指定文件夹下存在的文件为准,见5);
4、在登录状态下,如果用户需要切换类型选项,命令行输入“切换为XX”,XX为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“”系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题;
5、生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行;
在这里插入图片描述
下面对队友的代码进行简要分析
优点:
1、代码模块结构清晰
小黄同学将整个工程总体分为两个大模块:登录和出题,在每个模块中对各个方法进行封装实现功能。
2、交互性好
每一步的提示语都清楚明了,让用户即使输错了也会有相应的提示语句,不用担心输错而使程序终止
3、题目的生成
在这里插入图片描述
在Tree.java里采用建树的方式生成题目,初中和高中的题目只需将sin、cos等符号与叶子节点结合即可;node.java里根据符号的优先级,删除无意义的括号,更贴近实际
4、可读性强
变量命名清晰规范,很好的遵循了编码规则。且仅有一个成员变量,节省了内存空间,代码旁的注释简单明了,方便阅读。
5、使用相对路径
文件路径使用相对路径。文件路径具有相对路径和绝对路径两种形式,而绝对路径可能会使得程序的可重用性差,使得在别的终端上不能运行,而在程序中使用相对路径则会变的有极强的适应性,提高了代码健壮性。
缺点:
查重部分
如果有重复部分在写入文档时只有因为重复而重新写入的部分,原来没重复的部分被覆盖掉了
总体分析
小黄的程序运行过程清晰明了,交互性好,用户可以无障碍的输入命令和自己的需求,代码的可读性也很高,很快的理解了各个模块的功能,很好的完成了文档中的全部需求只是查重时的文件读写部分有些小bug,我的代码中没有实现无意义括号的去除,以及出题格式存在问题,通过阅读小黄同学的代码,学习到了很多!我们会在接下来的结对项目中相互学习,共同进步写出更好的项目!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值