import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//创建一个集合存储学生数据:集合不用考虑长度比数组更加方便
ArrayList <Student> list = new ArrayList<>();
loop: 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("请输入您的选择:");
//创建一个扫描器接收用户输入的id
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose){
case "1"-> addStudent(list);
case "2"-> delStudent(list);
case "3"-> updateStudent(list);
case "4"-> queryStudent(list);
case "5"->{
System.out.println("退出");
break loop;
}
default -> System.out.println("没有这个选项,请重新选择");
}
}
}
//创建四个方法
//添加学生
public static void addStudent( ArrayList <Student> list){
//创建学生对象
Student s = new Student();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入学生id");
String id = sc.next();
boolean flag=contains(list,id);
if(flag){
//true:存在
System.out.println("id已经存在,请重新录入");
}
else {
s.setId(id);
break;
}
}
System.out.println("请输入学生姓名");
String name = sc.next();
s.setName(name);
System.out.println("请输入学生年龄");
int age = sc.nextInt();
s.setAge(age);
System.out.println("请输入学生地址");
String adress = sc.next();
s.setAddress(adress);
//将数据添加到集合里面去
list.add(s);
System.out.println("数据添加成功");
/*
* id为一思路
* (1)遍历集合==》判断集合里面有没有元素
* (2)获取元素的id,在集合里面查找有没有相同的id,有则false,没有则返回这个true
*
* */
//判断id是否为一,另外用一个方法
}
//删除学生
public static void delStudent( ArrayList <Student> list){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的id信息");
String uId =sc.next();
int index = getIndex(list,uId);
if (index >= 0){
list.remove(index);
System.out.println(uId+"的学号删除成功");
}
else {
System.out.println("学号不存在,删除失败");
}
}
//修改学生
public static void updateStudent( ArrayList <Student> list){
//键盘输入学生id
Scanner sc = new Scanner(System.in);
System.out.println("请输入要修改的学生id");
String id =sc.next();
//因为这里返回的是一个索引i==》
int index= getIndex(list,id);
//比较id,如果id不存在,则提示用户
//-1表示id的索引没有,集合里面没有这个id
if(index == -1){
//表示集合没有这个id,提示用户
System.out.println("没有这个学生的信息,请重新输入");
return;
}
//如果id存在,则修改
Student stu= list.get(index);
System.out.println("请输入修改的姓名");
//扫描器接收
String newName = sc.next();
stu.setName(newName);
System.out.println("请输入修改的年龄");
//扫描器接收
int newAge=sc.nextInt();
stu.setAge(newAge);
System.out.println("请输入修改的地址");
//扫描器接收
String newAdress = sc.next();
stu.setAddress(newAdress);
}
//查询学生
public static void queryStudent( ArrayList <Student> list){
System.out.println("查询学生");
//集合里面没有学生信息
if(list.size() == 0){
System.out.println("当前没有学生信息,请添加后在查询");
return;
}
//集合里面有学生信息
//等于表头信息
System.out.println("id\t姓名\t年龄\t家庭住址");
for (int i = 0; i < list.size(); i++) {
//遍历获取集合中的元素
Student stu = list.get(i);
System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress()+"\t");
}
}
//判断id在集合中是否存在
public static boolean contains(ArrayList<Student>list,String id){
return getIndex(list ,id)>=0;
}
//通过id获取索引
public static int getIndex(ArrayList<Student>list , String id){
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
String sid= stu.getId();
if (sid.equals(id)){
return i;
}
}
return -1;
}
}
学生类
public class Student {
private String id;
private String name;
private int age;
private String address;
public Student() {
}
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
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 getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}