Hnu个人项目互评

发布时间 2023-09-20 18:55:48作者: 杨梅道理

一、简介
本文是对于编程队友xjm同学的代码互评,本着互相学习,互相进步的想法,学习对方的代码,找出其中的优点,缺点也要提醒队友改正。
二、项目结构
先简单分析一下队友项目中的类以及功能。

项目中包括7个类和一个接口
User类中

点击查看代码
private String userName;
    private String userPassword;
    private String grade;
其中创建了用户的账号,密码,以及年级,后面是对应的get和set函数。 在Teacher类以及Teachersystem类中主要写了登录的界面以及出题的界面,使用了Map来储存用户信息,并在登录时进行对比。
点击查看代码
String[] teacherSplit = input.nextLine().split(" ");
                if (teacherSplit.length < 2) {
                    System.out.println("请输入正确的用户名、密码:");
                    continue;
                }
                String teacherName = teacherSplit[0];
                String teacherPassword = teacherSplit[1];
登录时用的是输入一次,在遇到空格时断开,分成两个字符串,然后两个字符串分别与存入的账号密码进行比对,正确则登录,错误则提示输入正确的账号密码。 PrimaryPaper,MiddlePaper和HighPaper分别是小学,初中,高中的出题类,都是用随机数种子实现的,仅展示其中一个。
点击查看代码
Random seed = new Random();                                   //随机数种子
            String question = new String();                               //问题保存
            while (true) {
                int operand = seed.nextInt(4) + 2;                    //操作数的个数
                question = "";                                              //初始化问题
                int bracketNum = seed.nextInt(3);                   //随机生成括号的个数,设置最多有两组括号
                int rightNum = 0;                                           //记录右括号的个数
                int interval = 0;                                           //左右两括号的间隔距离
                question += generate(seed, question, operand, bracketNum, rightNum, interval, i);
                question += "=";
                if (checkPaper(teacher, question)) {
                    questions[i - 1] = question;
                    i++;
                    num--;
                }
                if (num == 0) {
                    break;
                }
            }
CheckPaper接口中包括了生成试卷的函数,以及题目查重的函数

三、代码测试
登录界面

登录成功


生成题目

切换年级

小学题目

初中题目

高中题目

四、优缺点及总结
优点
代码符合规范,每个类的功能区分的很明确,该实现的功能都实现了。
缺点
登录时如果不输入,直接回车,可能会出现bug,导致程序终止。
用户的存储并没有用文件的形式,后续如果需要添加用户的操作,不利与实现。
总结
在这次的个人项目中,对于项目有了一个初步的理解,并且在互评的过程中,从其他人的代码中能学习很多,发现自己代码中的许多不足,获益良多。