你可以参考一下

/*
学生类:Student
*/
public class Student {
private String id; //学号
private String name; //姓名
private int grade; //成绩
//无参构造方法
public Student() {
}
//有参构造方法
public Student(String id, String name, int grade) {
this.id = id;
this.name = name;
this.grade = grade;
}
//学号
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
//姓名
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//成绩
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
}
/*
学生管理类:StudentManage
*/
import java.util.*;
public class StudentManage {
public static void main(String[] args) {
//创建学生对象集合,用于存储学生对象
ArrayList<Student> array = new ArrayList<>();
//用循环使系统不断运行
while (true) {
//用输出语句完成主界面的编写
System.out.println("请选择操作:");
System.out.println("1-输入学生信息\t2-按成绩从低到高显示全部学生信息\t3-查询学生信息\t4-退出\t5-删除学生\t6-修改成绩");
//用Scanner实现键盘录入数据
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
//用switch语句完成操作的选择
switch (input) {
case "1":
addStudent(array);
break;
case "2":
showStudent(array);
break;
case "3":
queryStudent(array);
break;
case "4":
System.out.println("感谢您的使用,祝您生活愉快!");
System.exit(0);
case "5":
deleteStudent(array);
break;
case "6":
modifyStudent(array);
break;
default:
System.out.println("你的输入有误,请重新输入!");
}
}
}
//输入学生信息
public static void addStudent(ArrayList<Student> array) {
//接受用户输入
Scanner sc = new Scanner(System.in);
//录入要添加的学号
System.out.print("请输入学号:");
String id = sc.nextLine();
//学号是否已经在集合中的标记,true表示不存在,反之
boolean flag = true;
//判断用户输入的学号是否已经存在
for (int i = 0; i < array.size(); i++) {
//获取集合中的学生信息
Student s1 = array.get(i);
//判断用户输入的学号是否和集合中的一致
if (s1.getId().equals(id)) {
flag = false;
System.out.println("该学生已存在,请输入正确的学号");
break;
}
}
//学号不存在,进行添加操作
if (flag) {
System.out.print("请输入姓名:");
String name = sc.nextLine();
System.out.print("请输入成绩:");
int grade = sc.nextInt();
//创建新的学生对象
Student s = new Student(id, name, grade);
//将学生对象添加到集合中
array.add(s);
}
}
//按成绩从低到高显示全部学生信息
public static void showStudent(ArrayList<Student> array) {
if (array.size() != 0) {
//使用Lambda表达式
System.out.println("学号\t\t姓名\t\t成绩");
array.sort(Comparator.comparingInt(Student::getGrade));
array.forEach(e -> System.out.println(String.format("%-8s%-8s%-3d", e.getId(), e.getName(), e.getGrade())));
} else {
System.out.println("没找到任何学生的信息!");
}
}
//通过学号查询学生信息
public static void queryStudent(ArrayList<Student> array) {
//判断集合中是否有数据,如果没有显示提示信息
if (array.size() == 0) {
System.out.println("无学生信息,请先添加后再查询");
//return让程序不再往下执行
return;
}
//集合中有数据,让用户输入学号
System.out.print("请输入学号:");
Scanner sc = new Scanner(System.in);
String id = sc.nextLine();
//在集合中查询是否有输入的学号
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getId().equals(id)) {
System.out.println("学号\t\t姓名\t\t成绩");
System.out.println(String.format("%-8s%-8s%-3d", s.getId(), s.getName(), s.getGrade()));
return;
}
}
//找不到该学生
System.out.println("没有找到该学生的信息!");
}
//通过学号删除学生信息
public static void deleteStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
if (array.size() == 0) {
System.out.println("无学生信息,请添加后再操作");
} else {
//键盘录入要删除的学生学号
System.out.print("请输入学号:");
String id = sc.nextLine();
//遍历集合将对应学生对象从集合中删除
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getId().equals(id)) {
array.remove(i);
//给出删除成功提示
System.out.println("删除成功");
return;
}
}
//找不到该学生
System.out.println("你输入的学号有误,请重新输入!");
}
}
//通过学号修改学生成绩
public static void modifyStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
if (array.size() == 0) {
System.out.println("无学生信息,请添加后再操作");
} else {
//键盘录入要修改成绩的学生学号
System.out.print("请输入学号:");
String id = sc.nextLine();
//遍历集合找到该学生
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getId().equals(id)) {
System.out.print("请输入新成绩:");
int grade = sc.nextInt();
s.setGrade(grade);
//给出修改成功提示
System.out.println("修改成功");
return;
}
}
//找不到该学生
System.out.println("你输入的学号有误,请重新输入!");
}
}
}