我是想弄个有可以查询和增加学生信息的东西但是
就是这个不知道为什么就是运行不出来,就是图上那样 ,who给俺解答以下哇,谢谢
package 学生管理系统;
import java.util.ArrayList;
import java.util.*;
public class system {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>(null);
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 退出系统");
Scanner sc = new Scanner(System.in);
System.out.println("输出操作序号");
String choose = sc.next();
sc.close();
switch (choose) {
case "1" ->
showstudent(list);
case "2" ->
addstudent(list);
case "3" ->
deletestudent(list);
case "4" ->
changestudent(list);
case "5" ->
System.exit(0);
default ->
System.out.println("没有选项");
}
}
}
public static void showstudent(ArrayList<Student> list) {
if (list.size() == 0) {
System.out.println("没有学生信息,添加后查询");
return;
}
System.out.println("id\t\t姓名\t年龄\t家庭住址");
for (int i = 0; i < list.size(); i++) {
Student stu = new Student();
stu = list.get(i);
System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAdress());
}
}
public static void addstudent(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
Student st = new Student();
System.out.println("请输入一个id");
int id = sc.nextInt();
st.setId(id);
System.out.println("请输入一个姓名");
String name = sc.next();
st.setName(name);
System.out.println("请输入一个年龄");
int age = sc.nextInt();
st.setId(age);
System.out.println("请输入一个家庭住址");
String adress = sc.next();
st.setAdress(adress);
sc.close();
list.add(st);
}
public static void deletestudent(ArrayList<Student> list) {
System.out.println("删除");
}
public static void changestudent(ArrayList<Student> list) {
System.out.println("更改");
}
}
```java
package 学生管理系统;
public class Student {
private int id;
private String name;
private int age;
private String adress;
public void setId(int id) {
this.id = id;
}
public int getId() {
return this.id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
public void setAdress(String adress) {
this.adress = adress;
}
public String getAdress() {
return this.adress;
}
}
```
把这行代码去掉 sc.close(); 你关闭了他之后后面就无法在使用 new Scanner(System.in) 这个了,因为系统的输入流已经被你关闭了。
不知道你这个问题是否已经解决, 如果还没有解决的话: