public class Student {
private String name;
private int id;
private double score;
//带参数构造方法
public Student(String name,int id,double score){//与类同名
this.name=name;
this.id=id;
this.score=score;
}
//方法
public String getName(){
return name;
}
public int getId(){
return id;
}
public double getScore(){
return score;
}
}
import java.util.ArrayList;
public class StudentManagementSystem {
private ArrayList<Student> students;
//创建一个students的ArrayList对象,students为一个动态数组,<Student>表示该 ArrayList 中存储的是 Student 类型的对象。
//构造方法
public StudentManagementSystem(){
students=new ArrayList<>();//初始化了students变量,将一个新的ArrayList分配给它
}
public void addStudent(String name,int id,double score){
Student newStudent=new Student(name,id,score);//初始化新学生对象的信息
students.add(newStudent);//将新创建的Student对象newStudent添加到students动态数组中,调用add方法
System.out.println("学生信息添加成功");
}
public void deleteStudent(String name){
for (int i=0;i<students.size();i++){//使用for循环遍历students的每一对象
Student student=students.get(i);//调用students.get(i)获取位置,并赋值给student
if (student.getName().equals(name)) {
students.remove(i);//调用remove方法
System.out.println("学生信息删除成功");
return;//结束方法循环
}
}
System.out.println("未找到学生信息");
}
public void display(){
for(int i=0;i<students.size();i++){
System.out.println("姓名:"+students.get(i).getName()+"\nID:"+students.get(i).getId()+"\nScore:"+students.get(i).getScore());
}
}
}
import java.util.Scanner;
public class TestManagement {
public static void main(String[] args) {
StudentManagementSystem sms=new StudentManagementSystem();
Scanner scanner=new Scanner(System.in);
//交互系统
while(true){
System.out.println("1.添加学生信息");
System.out.println("2.删除学生信息");
System.out.println("3.显示学生信息");
System.out.println("4.退出系统");//打印操作菜单
System.out.println("请选择操作:");
int choice= scanner.nextInt();//使用 Scanner 对象 scanner 读取用户输入的操作选项,存储在 choice 变量中。
switch (choice){//这是一个无限循环,表示程序会一直运行直到手动退出
case 1:
System.out.println("请输入学生姓名:");
String name=scanner.next();
System.out.println("请输入学生ID:");
int id=scanner.nextInt();
System.out.println("请输入学生成绩:");
double score=scanner.nextInt();
break;
case 2:
System.out.println("请输入要删除的学生姓名:");
String deleteName=scanner.next();
sms.deleteStudent(deleteName);
break;
case 3:
sms.display();
break;
case 4:
System.out.println("感谢使用");
System.exit(0);
//参数 0 表示正常退出,非 0 的参数通常表示异常退出。调用 System.exit(0) 会立即终止当前正在运行的 Java 虚拟机(JVM),并且返回状态码 0,表示程序正常结束。
break;
default:
System.out.println("输入有误");
}
}
}
}
-
Student
类表示学生对象,包含姓名、学号和成绩等属性,以及相应的构造方法和获取属性值的方法。 -
StudentManagementSystem
类实现了学生管理系统的核心功能,包括添加学生信息、删除学生信息和显示学生信息等方法。 -
TestManagement
类是程序的入口,通过控制台与用户交互,提供操作菜单让用户可以选择添加、删除、显示学生信息或退出系统。
在 main
方法中,通过一个无限循环来持续接收用户输入并执行相应操作,直到用户选择退出系统(输入 4)。当用户选择退出时,调用 System.exit(0)
来正常结束程序。
如果用户选择添加学生信息(输入 1),则会提示输入学生的姓名、学号和成绩,并调用 addStudent
方法将学生信息添加到系统中。
如果用户选择删除学生信息(输入 2),则会提示输入要删除的学生姓名,并调用 deleteStudent
方法来删除该学生信息。
如果用户选择显示学生信息(输入 3),则会调用 display
方法展示所有学生的姓名、学号和成绩信息。