import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;
public class StudentSystem {
private static final Scanner s = new Scanner(System.in);
private static LinkedList studentList = new LinkedList(); //用集合保存学生数据
private static LinkedList idStudent = new LinkedList(); //这个集合只负责保存学生id
//系统页面功能
private static void functionPage() {
System.out.println("-----------1、增加学生-----------");
System.out.println("-----------2、查询学生-----------");
System.out.println("-----------3、删除学生-----------");
System.out.println("-----------4、修改学生-----------");
System.out.println("-----------0、退出系统-----------");
System.out.print("请输入:");
}
//增加学生
private static void addStudent() {
System.out.print("请输入学号:");
String id = s.next();
Iterator it = idStudent.iterator(); //用另一个集合判断学生id是否存在,就是遍历另一个集合
while (it.hasNext()) {
Object studentId = it.next();
if (studentId.equals(id)) {
System.out.println("学号已存在,请重新输入!");
return;
}
}
idStudent.add(id); //另一个集合只保存学生id,这样才可以判断学号是否冲突
System.out.print("请输入姓名:");
String name = s.next();
System.out.print("请输入年龄:");
int age = s.nextInt();
System.out.print("请输入基本信息:");
String info = s.next();
studentList.add(new StudentAttributes(id, name, age, info));
System.out.println("学生信息添加成功!!");
}
//查询学生
private static void studentShowInfo() {
//判断集合是否为空
if (studentList.isEmpty()) {
System.out.println("暂时还没学生~");
} else {
System.out.println("全部学生信息如下:");
int count = 0;
for (Object sl : studentList) {
System.out.print("编号(" + (++count) + "):");
System.out.println(sl);
}
}
}
//删除学生
private static void delStudent() {
//判断集合是否为空
if (studentList.isEmpty()) {
System.out.println("暂时还没学生~");
} else {
System.out.print("请输入要删除学生学号/0退出:");
String id = s.next();
if (id.equals("0")) {
System.out.println("已取消!");
return;
} else {
Iterator it = idStudent.iterator();
int count = 0;
while (it.hasNext()) {
count++;
Object idStu = it.next();
if (idStu.equals(id)) {
studentList.remove(count - 1);
idStudent.remove(count - 1); //这个写法用于遍历我要删除一次就行,后面元素就不在遍历,因为执行完后就return了
// it.remove(); //这个用于遍历集合所有元素,满足条件就全部删除
System.out.println("删除成功!!");
return;
}
}
System.out.println("没找到该学生学号!");
}
}
}
//修改学生
private static void modifyStudent() {
if (studentList.isEmpty()) {
System.out.println("暂时还没学生~");
} else {
System.out.print("请输入要修改学生学号/0退出:");
String id = s.next();
if (id.equals("0")) {
System.out.println("已取消!");
return;
} else {
Iterator it = idStudent.iterator();
int count = 0;
while (it.hasNext()) {
count++;
Object idStu = it.next();
if (idStu.equals(id)) {
System.out.println("该学生信息为:" + studentList.get(count - 1));
System.out.print("请输入修改学号:");
String stuId = s.next();
System.out.print("请输入修改姓名:");
String name = s.next();
System.out.print("请输入修改年龄:");
int age = s.nextInt();
System.out.print("请输入修改基本信息:");
String info = s.next();
studentList.set(count - 1, new StudentAttributes(stuId, name, age, info));
System.out.println("学生信息修改功!!");
return;
}
}
System.out.println("没找到该学生学号!");
}
}
}
//退出系统功能
private static void exit() {
System.out.println("感谢使用~");
}
public static void main(String[] args) {
while (true) {
functionPage();
int key = s.nextInt();
switch (key) {
case 1:
addStudent(); //增加学生
break;
case 2:
studentShowInfo(); //查询学生
break;
case 3:
delStudent(); //删除学生
break;
case 4:
modifyStudent(); //修改学生
break;
case 0:
exit(); //退出学生系统函数
return;
default:
System.out.println("输入错误!!请重新输入");
break;
}
}
}
}