HNU个人项目中小学数学卷子自动生成程序互评

本博客对JAVA结对编程项目代码进行分析总结。项目实现了用户登录、出题、切换难度等功能,能根据账户类型出题,保证题目不重复并特殊保存。代码架构清晰,符合规范,注释详细,但部分函数功能冗杂、生成函数复杂,有待改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

本博客是对结对编程队友代码的分析与总结,代码使用语言为JAVA。

完成情况:很好的实现了项目的需求,功能完整。同时每个页面的提示信息都比较完整,在不需要他人协助的情况下,可以根据屏幕上的提示信息进行操作,如果用户输入不正确,系统会出现指示,显示正确输入格式,用户可根据提示继续进行对系统的操作。

二、项目需求分析

1、命令行输入用户名和密码,两者之间用空格隔开,核对是否正确。如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个,否则系统提示错误信息,重新输入用户名、密码。

2、登录后,系统提示当前账户年级,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100。

3、程序根据输入生成符合的题目的卷子。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复。

4、在登录状态下,实现用户需要切换类型选项的功能并作出提示,系统对新设置的类型进行出题。

5、生成的题目将以特殊形式保存,每个账号一个文件夹。文档内题目以特殊格式存储。

附录:

账户类型

账户

密码

备注

小学

张三1

123

张三2

123

张三3

123

初中

李四1

123

李四2

123

李四3

123

高中

王五1

123

王五2

123

王五3

123

小学

初中

高中

难度要求

+,-,*./

平方,开根号

sin,cos,tan

备注

只能有+,-,*./和()

题目中至少有一个平方或开根号的运算符

题目中至少有一个sin,cos或tan的运算符

三、代码主体架构

  1. User类:User类用于对用户进行定义。
  2. userIn类:通过读入储存用户信息文件,将当前登录用户与文件中信息进行比对,实现用户的登录功能。
  3. Question接口:包括出小学题目、初中题目、高中题目三个函数。
  4. MakeQuestion类:实现接口的函数,完成三个函数具体功能。
  5. MakePaper类:接收输入,生成卷子,并在过程中实现题目查重。
  6. Main类:主函数。

四、功能测试

1、登录功能

M]JL3W@O)BPA63(UP)(M)0X

登录页面清晰简洁,有充分的文字提示,并且实现了退出登录和直接退出系统的选项。

2、出题功能

Z]WWIKUZG{[3H)Y2N3IZYGC

限制了出题范围,并且错误输入后可以继续输入。

3、切换难度功能

FS_A8``EMW1ZMK%[C[Z90O6

4、题目展示

$O(ZT3_P%ED~3RWJHQ6GO]U 835~9`7BKAQ7CHR8EAI42W8

运算符、操作数和括号均符合规范。

五、代码分析

优点:

1.登录提示比较详细,在输入错误情况下会有相对应的指示,体验度高。较好的完成了项目需求,实现了用户登录,功能选择,题目查重,试卷自动生成等功能。

2.类名和函数名可以体现其对应的功能,其他方法都被封装在了各个方法内,在主函数中调用较少方法,使代码的结构更加清晰。多用返回值和传参函数,较好的掌握面向对象的编程思想,便于以后的修改的使用。

3.符合Google编码规范,编码采用utf-8的标准,同时注释较为详细,阅读起来较为流畅。

4.将用户信息放在文档内,通过读入文档内的信息实现检测登录用户是否正确。并且采用了相对路径生成文件,生成题目保存在指定文件夹,使用时比较顺畅。

缺点:

1.部分函数的功能比较冗杂导致函数过长,比如接收输入并据此确定题目数量或其他操作的函数,可以再将功能细化封装。

2.题目生成函数较为复杂,其中涉及到了表达式生成,符号处理,可以进行改进。

HNU个人项目中小学数学卷子自动生成程序互评
资源下载链接为: https://pan.quark.cn/s/9648a1f24758 Java JDK(Java Development Kit)是Java编程语言的核心组件,为开发和运行Java程序提供了必要的工具和环境。JDK 8是Oracle公司推出的一个重要版本,它引入了许多新特性和改进,极大地提升了开发效率和代码质量,对开发者来说具有极高的实用价值。 本次提供的“jdk-8u251-macosx-x64.dmg”安装包是专为Mac OS X系统设计的64位版本,其中不仅包含了Java运行环境(JRE),还涵盖了丰富的开发工具,方便用户在Mac平台上进行Java程序的开发与运行。 JDK 8的关键更新和特性如下: Lambda表达式:这是JDK 8的一项重大语法创新,允许开发者使用简洁的匿名函数替代复杂的多行回调代码,从而使代码更加简洁、易读且高效。 方法引用与构造器引用:与Lambda表达式配合使用,可以更直观地引用已有的方法或构造器,进一步减少冗余代码,提升代码的可维护性。 Stream API:这是一个用于处理集合的新API,采用声明式处理方式,使集合操作(如过滤、映射和归约等)更加高效且易于理解。 日期和时间API的改进:JDK 8对日期和时间API进行了重构,引入了java.time包,包含LocalDate、LocalTime和LocalDateTime等类,替代了原有的java.util.Date和java.util.Calendar,使日期和时间的处理更加友好和灵活。 Optional类:为解决null对象导致的空指针异常问题,JDK 8引入了Optional类,它是一个容器对象,可以表示一个值存在或不存在,从而有效避免空指针异常。 接口的默认方法和静态方法:接口现在可以定义默认方法(使用default关键字)和静态方法。默认方法允许在不破坏向后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值