结对编程项目:个人项目互评
总述
互评对象:软件2002刘旭
代码简介
采用Java语言实现了中小学生数学试卷生成器的功能,一共有四大类:Datebase、main、Question、User
,生成的文件以绝对路径存放在相关主文件夹的下属lib
文件夹中,采用数据库存放数据的思想以图存放数据,而用户的信息从一开始就通过代码写出来,并通过Hashmap
来获取。
实际情况是将内容保存在txt文本中,并未保存在数据库中,因此Datebase
这个类的实际功能并没有用到,作者本人可能是为了以后实现功能的拓展,提高代码的可扩展性
代码流程
从main
函数入口开始,通过User
类生成一个对象,然后调用User
类中的log_in
方法,此时提供登录界面;登录成功后用count
变量记录用户的出题数;用户进行下一步操作,输入的内容为-1
系统会直接退出,如果输入的内容包含切换为XX的字样,则会调用String.contain()
方法进行下一步判断;如果输入的数字规范,则会通过Question
类调用其中含有的makeQuestion
方法生成试卷。
Question
类中的Question
方法用来获取user
的账号。然后通过Question
类中的makeQuestion
方法,根据传入参数type
用户的类型不同,生成不同的数学题目。
代码架构
├── PaperCreateProgram
├── idea
├── lib
│ └── paperManageSystem.sqlite
├── lib
│ ├── 张三1
│ ├── 张三2
│ ├── 张三3
│ ├── 李四1
│ ├── 李四2
│ ├── 李四3
│ ├── 王五1
│ ├── 王五2
│ ├── 王五3
│ └── mysql-connerctor-java.8.0.28.jar
├── out
│ └── production
│ └── PaperCreateProgram
│ ├── Datebase.java
│ │ ├── getConnection()
│ │ ├── select()
│ │ └── setUsers()
│ ├── main.java
│ ├── Question.java
│ │ ├── makeQuestion()
│ │ ├── primary()
│ │ ├── middle()
│ │ ├── high()
│ │ ├── singleMiddle()
│ │ ├── singleHigh()
│ │ ├── getTime()
│ │ ├── makeFile()
│ │ ├── writeFile()
│ │ └── getHashset()
│ ├── User.java
│ │ ├── reset()
│ │ ├── log_in()
│ │ └── log_out()
└── src
│ └── Datebase.java
│ │ ├── getConnection()
│ │ ├── select()
│ │ └── setUsers()
│ ├── main.java
│ ├── Question.java
│ │ ├── makeQuestion()
│ │ ├── primary()
│ │ ├── middle()
│ │ ├── high()
│ │ ├── singleMiddle()
│ │ ├── singleHigh()
│ │ ├── getTime()
│ │ ├── makeFile()
│ │ ├── writeFile()
│ │ └── getHashset()
│ ├── User.java
│ │ ├── reset()
│ │ ├── log_in()
│ │ └── log_out()
示例演示
首先从main
类里面运行主程序,显示出用户初始登录界面:
输入九个用户的账号和密码,在此我们选择以张三1 123
为例:
如果直接输入10-30
范围内的题量,在此我们选择以15
为例:
我们可以看到,在lib
文件夹下的张三1
文件夹中已经出现对应时间的文件:
相关题目如下:
如果在出题页面的时候,输入切换为XX
,在此以切换为切换为初中
为例:
输入题数15
,亦可正常出题
所以程序的大概流程可以运行,除了程序之间会出现一些小bug,但是不影响程序的整体性和大体框架,说明作者本人较好地了解了项目需求,较为完整地复现了所需功能。
优点
1、代码构架思想清晰,尤其是在Question
类中,通过用户类型的不同生成不同的题目类型。
2、使用Java语言,通过面向对象的方式实现功能,便于此后的维护和修改。
3、部分代码写法规范,部分方法名通过Google
制定的Java语言规范书写,如Question
类中的getHashset()
方法,与要求的驼峰法命名规范一致。
4、采用数据库的思想存放试卷内容,虽然在本次个人项目中并没有使用,但是很容易改动投入使用,值得肯定。
5、采用Hashset
进行题目的重复筛选。
6、开根号符号用^0.5
代替,有新意,进行了较为新奇的转换。
缺点
1、部分代码命名不规范,如main
这个类,实际上应为Main
类;还如User
类中的lon_in
方法,按照命名规范应写为logIn
;其余代码规范在此不再赘述。
2、没有考虑到用户输入情况是-2
此类负数的情况,系统仍会生成一个空白文件夹;没有按照题目要求进行10-30
之间的规范输入,如输入500
可能生成500道题。下面是实例截图:
3、没有考虑到输入情况为张三1 123 123
此类输入,亦可登录成功。下面是实例截图:
4、代码注释有一点少,批改本人看着不太吃力,但是写得再稍微多一点可能开源时便于理解。
5、高中的题目中无法出现初中的题目,没有根号和开根号的符号;括号没有内嵌括号,无法进行低优先级符号的优先运算。
批改人:软件2002常守豪
posted on 2022-09-13 20:39 MiraitowaC 阅读(249) 评论(0) 编辑 收藏 举报