多点盐 2024-10-23 16:18 采纳率: 90%
浏览 7

java 注册登录录入信息

此系统为,面向对象的学生成绩录入系统:需要包含至少三个文件,学生类,学校类,入口类
系统中,新用户需要先进行登录和注册功能,在录入5个学生的信息后,需要输出五个学生的所有个人信息,以及他们的平均分。
学生在注册成功后,需要先登录,后进行个人信息的录入。
学生类的要求:

  • 学生类继承学校类
  • 实现有参数的构造函数
  • 所有成员变量均为 private
  • 有登录功能
  • 有注册功能

学校类的要求:

  • 需要有两个构造函数,一个有参数的,一个无参数的
  • 需要实现计算平均数方法

入口类:

  • 实现具体的操作和功能
  • 写回答

1条回答 默认 最新

  • 月下独码 Java领域新星创作者 2024-10-23 16:26
    关注

    本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢

    1. 学生类(Student.java)
      • 首先,因为学生类继承学校类,所以要先定义学校类。
      • 在学生类中,我们定义私有成员变量来存储学生的相关信息,如学号、姓名、成绩等。
      • 实现注册和登录功能,这里简单假设注册是将用户名和密码存储在类的成员变量中(实际应用中应该存储在数据库等更安全的地方),登录则是验证用户名和密码是否匹配。
      • 以下是学生类的代码实现:
    class School {
        // 这里可以定义一些学校相关的属性,如学校名称等,暂时为空
        public School() {}
        public School(String someParam) {}
        public double calculateAverage(double[] scores) {
            double sum = 0;
            for (double score : scores) {
                sum += score;
            }
            return sum / scores.length;
        }
    }
    
    class Student extends School {
        private String username;
        private String password;
        private String studentId;
        private String name;
        private double[] scores;
    
        public Student(String username, String password, String studentId, String name) {
            this.username = username;
            this.password = password;
            this.studentId = studentId;
            this.name = name;
            this.scores = new double[5];
        }
    
        public boolean register(String newUsername, String newPassword) {
            this.username = newUsername;
            this.password = newPassword;
            return true;
        }
    
        public boolean login(String inputUsername, String inputPassword) {
            return this.username.equals(inputUsername) && this.password.equals(inputPassword);
        }
    
        public void setScore(int index, double score) {
            scores[index] = score;
        }
    
        public String getStudentId() {
            return studentId;
        }
    
        public String getName() {
            return name;
        }
    
        public double[] getScores() {
            return scores;
        }
    }
    
    1. 入口类(Main.java)
      • 在入口类中,我们实现整个系统的操作流程。
      • 包括用户注册、登录,然后录入5个学生的信息,最后输出学生的个人信息和平均分。
      • 以下是入口类的代码实现:
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            Student[] students = new Student[5];
    
            // 模拟注册和登录过程
            System.out.println("请注册新用户:");
            System.out.print("输入用户名: ");
            String registerUsername = scanner.nextLine();
            System.out.print("输入密码: ");
            String registerPassword = scanner.nextLine();
    
            boolean loggedIn = false;
            Student currentStudent = null;
            while (!loggedIn) {
                System.out.println("请登录:");
                System.out.print("输入用户名: ");
                String inputUsername = scanner.nextLine();
                System.out.print("输入密码: ");
                String inputPassword = scanner.nextLine();
    
                currentStudent = new Student(registerUsername, registerPassword, "", "");
                if (currentStudent.login(inputUsername, inputPassword)) {
                    loggedIn = true;
                } else {
                    System.out.println("登录失败,请重新登录。");
                }
            }
    
            // 录入5个学生的信息
            for (int i = 0; i < 5; i++) {
                System.out.println("录入第 " + (i + 1) + " 个学生的信息");
                System.out.print("输入学号: ");
                String studentId = scanner.nextLine();
                System.out.print("输入姓名: ");
                String name = scanner.nextLine();
                students[i] = new Student("", "", studentId, name);
                for (int j = 0; j < 5; j++) {
                    System.out.print("输入第 " + (j + 1) + " 门课程的成绩: ");
                    double score = scanner.nextDouble();
                    students[i].setScore(j, score);
                }
                scanner.nextLine();// 处理换行符
            }
    
            // 输出学生信息和平均分
            for (Student student : students) {
                System.out.println("学号: " + student.getStudentId());
                System.out.println("姓名: " + student.getName());
                double[] scores = student.getScores();
                for (int i = 0; i < scores.length; i++) {
                    System.out.println("第 " + (i + 1) + " 门课程成绩: " + scores[i]);
                }
                double average = student.calculateAverage(scores);
                System.out.println("平均分: " + average);
            }
        }
    }
    

    在这个系统中:

    • 学生类(Student)继承学校类(School),实现了注册和登录功能以及存储和获取学生个人信息的功能。
    • 学校类(School)提供了计算平均数的方法。
    • 入口类(Main)通过与用户交互,实现了注册、登录、学生信息录入以及最终的信息输出功能。

    请注意,这个示例是一个简单的演示,在实际应用中,数据存储应该使用数据库等更可靠的方式,并且密码应该进行加密处理等安全措施。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月23日

悬赏问题

  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目
  • ¥15 根据时间在调用出列表
  • ¥15 R 包chipseeker 安装失败
  • ¥15 Veeam Backup & Replication 9.5 还原问题
  • ¥15 vue-print-nb
  • ¥15 winfrom的datagridview下拉框变成了黑色,渲染不成功
  • ¥20 利用ntfy实现短信推送