帮我做一个学生成绩管理系统
时间: 2023-10-05 16:05:24 浏览: 41
好的,我可以帮你设计一个简单的学生成绩管理系统。以下是这个系统的基本功能:
1. 添加学生信息和成绩
2. 修改学生信息和成绩
3. 删除学生信息和成绩
4. 查询学生信息和成绩
5. 统计班级成绩情况
下面是一个可能的实现:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManagementSystem {
private ArrayList<Student> students;
public StudentManagementSystem() {
students = new ArrayList<>();
}
public void addStudent(Student student) {
students.add(student);
}
public void removeStudent(Student student) {
students.remove(student);
}
public void updateStudent(Student student) {
int index = students.indexOf(student);
students.set(index, student);
}
public Student findStudentById(int id) {
for (Student student : students) {
if (student.getId() == id) {
return student;
}
}
return null;
}
public void printAllStudents() {
for (Student student : students) {
System.out.println(student);
}
}
public void printClassScore() {
int totalScore = 0;
double averageScore = 0;
for (Student student : students) {
totalScore += student.getScore();
}
if (students.isEmpty()) {
System.out.println("No students in the class.");
} else {
averageScore = (double) totalScore / students.size();
System.out.println("Total score: " + totalScore);
System.out.println("Average score: " + averageScore);
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StudentManagementSystem system = new StudentManagementSystem();
while (true) {
System.out.println("1. Add student");
System.out.println("2. Remove student");
System.out.println("3. Update student");
System.out.println("4. Find student by ID");
System.out.println("5. Print all students");
System.out.println("6. Print class score");
System.out.println("0. Exit");
int choice = scanner.nextInt();
if (choice == 0) {
break;
}
switch (choice) {
case 1:
System.out.println("Enter student ID:");
int id = scanner.nextInt();
System.out.println("Enter student name:");
String name = scanner.next();
System.out.println("Enter student score:");
int score = scanner.nextInt();
Student student = new Student(id, name, score);
system.addStudent(student);
break;
case 2:
System.out.println("Enter student ID:");
id = scanner.nextInt();
student = system.findStudentById(id);
if (student != null) {
system.removeStudent(student);
} else {
System.out.println("Student not found.");
}
break;
case 3:
System.out.println("Enter student ID:");
id = scanner.nextInt();
student = system.findStudentById(id);
if (student != null) {
System.out.println("Enter new student name:");
name = scanner.next();
System.out.println("Enter new student score:");
score = scanner.nextInt();
student.setName(name);
student.setScore(score);
} else {
System.out.println("Student not found.");
}
break;
case 4:
System.out.println("Enter student ID:");
id = scanner.nextInt();
student = system.findStudentById(id);
if (student != null) {
System.out.println(student);
} else {
System.out.println("Student not found.");
}
break;
case 5:
system.printAllStudents();
break;
case 6:
system.printClassScore();
break;
default:
System.out.println("Invalid choice.");
break;
}
}
}
}
class Student {
private int id;
private String name;
private int score;
public Student(int id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String toString() {
return "ID: " + id + ", Name: " + name + ", Score: " + score;
}
public boolean equals(Object obj) {
if (obj instanceof Student) {
Student student = (Student) obj;
return this.id == student.id;
}
return false;
}
}
```
这个程序用一个 `StudentManagementSystem` 类来管理学生信息。它包含了添加、修改、删除、查询和统计班级成绩的功能。程序入口在 `main` 方法中,它使用一个无限循环来接收用户输入的选项,并执行相应的操作。在 `Student` 类中,我们定义了每个学生的 ID、姓名和成绩,并重写了 `equals` 方法以便在列表中查找学生时使用。