此系统为,面向对象的学生成绩录入系统:需要包含至少三个文件,学生类,学校类,入口类
系统中,新用户需要先进行登录和注册功能,在录入5个学生的信息后,需要输出五个学生的所有个人信息,以及他们的平均分。
学生在注册成功后,需要先登录,后进行个人信息的录入。
学生类的要求:
- 学生类继承学校类
- 实现有参数的构造函数
- 所有成员变量均为 private
- 有登录功能
- 有注册功能
学校类的要求:
- 需要有两个构造函数,一个有参数的,一个无参数的
- 需要实现计算平均数方法
入口类:
- 实现具体的操作和功能
此系统为,面向对象的学生成绩录入系统:需要包含至少三个文件,学生类,学校类,入口类
系统中,新用户需要先进行登录和注册功能,在录入5个学生的信息后,需要输出五个学生的所有个人信息,以及他们的平均分。
学生在注册成功后,需要先登录,后进行个人信息的录入。
学生类的要求:
学校类的要求:
入口类:
本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢
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;
}
}
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);
}
}
}
在这个系统中:
请注意,这个示例是一个简单的演示,在实际应用中,数据存储应该使用数据库等更可靠的方式,并且密码应该进行加密处理等安全措施。