import java.util.ArrayList;
import java.util.Scanner;
public class lx {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Student> array = new ArrayList<Student>();
while (true) {
System.out.println("------欢迎来到学生管理系统------");
System.out.println("1.添加学生信息");
System.out.println("2.删除学生信息");
System.out.println("3.修改学生信息");
System.out.println("4.查看所有学生信息");
System.out.println("5.退出");
System.out.println("请输入你的选择:>");
int i = sc.nextInt();
switch (i) {
case 1: {
addStudent(array);
break;
}
case 2: {
deleteStudent(array);
break;
}
case 3: {
System.out.println("3.修改学生信息");
break;
}
case 4: {
findStudent(array);
break;
}
case 5: {
System.out.println("5.退出");
System.exit(0);
}
}
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> array){
Scanner sc = new Scanner(System.in);
System.out.println("请输入修改学生的学号");
String sid = sc.nextLine();
int n = 0;
for(int i=0;i<array.size();i++){
Student s = array.get(i);
if(s.getSid().equals(sid)){
System.out.println("请输入想要修改的信息:>");
System.out.println("1.姓名");
System.out.println("2.年龄");
System.out.println("3.地址");
System.out.println("4.全部");
int m =sc.nextInt();
switch (m){
case 1:{
System.out.println("请输入新姓名");
String name = sc.nextLine();
}
case 2:{
System.out.println("请输入新年龄");
String age = sc.nextLine();
}
case 3:{
System.out.println("请输入新住址");
String address =sc.nextLine();
}
case 4:{
System.out.println("请输入新姓名");
String name = sc.nextLine();
System.out.println("请输入新年龄");
String age = sc.nextLine();
System.out.println("请输入新住址");
String address =sc.nextLine();
}
}
}
}
}
}
每个学生的学号是唯一的,修改单个学生,就让他输入学号,然后遍历你的集合,按学号找到这个学生,然后就能修改了
有帮助点个采纳吧
现在的代码可以做到修改单人呀
28 行的break前面加一个 updateStudent(array);
不然会直接退出程序