import java.util.ArrayList;
import java.util.Scanner;
public class benxi {
public static void main(String[] args) {
//定义一个容器装学生
ArrayList<student> list=new ArrayList<>();
xh: 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("请输入选择");
Scanner sc=new Scanner(System.in);
String choose= sc.next();
switch (choose) {
case "1" -> addstudent(list);
case "2" -> delestudent(list);
case "3" -> updatestudent(list);
case "4" -> cxstudent(list);
default -> {System.out.println("退出");
break xh;
}
}
}
}
//定义添加学生方法
public static void addstudent(ArrayList<student> list){
//创建空参学生对象
student s=new student();
//键盘录入学生信息
Scanner sc=new Scanner(System.in);
String id=null;
while (true){
System.out.println("请输入学生id");
id=sc.next();
boolean q = only(list, id);
if (q) {
System.out.println("请重新输入id");
} else {
//把id放入空参中 下面的也是这样
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 home=sc.next();
s.setHome(home);
//学生对象放入ArrayList 这个容器
list.add(s);
System.out.println("添加成功");
}
//定义删除学生方法
public static void delestudent(ArrayList<student> list){
//键盘录入要删除学生的id
Scanner sc=new Scanner(System.in);
System.out.println("输入要删除学生的id");
String id=sc.next();
int i=index(list,id);
if (i>=0){
//存在这个id就删除
list.remove(i);
System.out.println("成功删除id为"+id+"的学生");
}else
System.out.println("id不存在删除失败");
}
//定义修改学生方法
public static void updatestudent(ArrayList<student> list){
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生id");
String id=sc.next();
//调用index方法
int index = index(list, id);
if (index==-1){
System.out.println("id不存在"+id+"请重新输入id");
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 newhome=sc.next();
stu.setHome(newhome);
System.out.println("信息修改成功");
}
//定义id唯一的方法
public static boolean only(ArrayList<student>list,String id){
//遍历集合ArrayList<student>list
for (int i = 0; i < list.size(); i++) {
//得到集合中每个元素
student s=list.get(i);
String b=s.getId();
if (b.equals(id)){
//集合中id和输入id相同返回true 不同false
return true;
}
}
return false;
}
//定义方法 根据索引来删除id
public static int index(ArrayList<student> list,String id){
//遍历集合
for (int i = 0; i < list.size(); i++) {
//得到集合中每个对象
student a=list.get(i);
//把对象的id给拿出来
String iid=a.getId();
//把对象的id和要删除的id比较
if(iid.equals(id)){
//相同返回索引 不同返回-1
return i;
}
}
return -1;
}
//定义查询学生方法
public static void cxstudent(ArrayList<student> list){
if (list.size()==0){
System.out.println("没有学生信息,请添加后查询");
}
//表头
System.out.println("id\t\t 姓名\t 年龄\t 家庭住址\t");
//遍历学生信息
for (int i = 0; i < list.size(); i++) {
student s = list.get(i);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getHome());
}
System.out.println("查询学生");
}
}
public class student {
private String id;
private String name;
private int age;
private String home;
public student() {
}
public student(String id, String name, int age, String home) {
this.id = id;
this.name = name;
this.age = age;
this.home = home;
}
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 getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
}