package com.wei.test;
import com.wei.domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManger {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
//创建集合容器对象
ArrayList<Student> list=new ArrayList<>();//只创建一个
lo://循环标号,在此退出
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("请输入您的选择:");
String chioce = sc.next();
switch(chioce){
case "1":
// System.out.println("添加学生");
addStudent(list);//alt+回车 创建方法
break;
case "2":
//System.out.println("删除学生");
deleteStudent(list);
break;
case "3":
//System.out.println("修改学生");
updateStudent(list);
break;
case "4":
//System.out.println("查看学生");
queryStudent(list);
break;
case "5":
System.out.println("已退出,感谢你的使用!");
break lo;
default:
System.out.println("你输入的有误!请重新输入:");
break;
}
}
}
private static void updateStudent(ArrayList<Student> list) {
//给出提示信息
System.out.println("请输入需要修改学生信息的学号:");
//键盘接收需要先修改的学号
Scanner sc=new Scanner(System.in);
String updateSid = sc.next();
//调用getIndex方法,查找该学号的在集合中出现的索引位置
int index = getIndex(list, updateSid);
//根据索引位置判断学号是否在集合中存在
if (index==-1){
System.out.println("学号不存在,请重新输入!");
}else{
//存在:修改学生的信息
System.out.println("请输入该学生新的姓名:");
String name = sc.next();
System.out.println("请输入该学生新的年龄:");
int age = sc.nextInt();
System.out.println("请输入该学生新的生日:");
String birthday = sc.next();
//封装成为新的学生对象
Student stu = new Student(updateSid, name, age, birthday);
//调用集合的set方法,完成修改
list.set(index,stu);
System.out.println("修改成功!");
}
}
public static void deleteStudent(ArrayList<Student> list) {
//给出提示信息
System.out.println("请输入要删除的学号:");
//键盘接收要删除的学号
Scanner sc=new Scanner(System.in);
String deleteSid = sc.next();
//调用getIndex方法,查找该学号的在集合中出现的索引位置
int index = getIndex(list, deleteSid);
//根据索引位置判断学号是否在集合中存在
if (index==-1){
System.out.println("学号不存在,请重新输入!");
}else{
//存在
list.remove(index);
System.out.println("删除成功!");
}
}
//查看学生的方法
public static void queryStudent(ArrayList<Student> list) {
//1.判断集合中是否存在数据,如果不存在直接给出提示
if (list.size()==0){
System.out.println("暂时没有数据,请添加后重新查询!");
return;
}
//2.存在的话,展示表头数据
System.out.println("学号\t 姓名\t\t年龄\t 生日");
//3.遍历集合,获取每一个数据
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);//crtl+alt+空格 可以补全代码
System.out.println(stu.getSid()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getBirthday());
}
}
//添加学生方法
public static void addStudent(ArrayList<Student> list) {//方法接收一个集合对象
Scanner sc=new Scanner(System.in);
String sid;
/**
* 1.给出录入的提示信息
* 2.将键盘录入的信息封住成学生对象
* 3.将封装好的学生对象,添加到集合容器当中
* 4,给出添加成功的提示信息
*/
//如何判断学号重复输入,已经存在的学号不能再进行添加
//使用while 循环
while(true){
System.out.println("请输入学号:");
sid = sc.next();
int index = getIndex(list, sid);
if (index==-1){
//sid不存在,学号可以使用
break;
}else{
System.out.println("学号已经存在,请重新输入!");
}
}
System.out.println("请输入姓名:");
String name = sc.next();
System.out.println("请输入年龄:");
int age = sc.nextInt();
System.out.println("请输入生日:");
String birthday = sc.next();
Student stu = new Student(sid, name, age, birthday);
list.add(stu);
System.out.println("添加成功");
}
/**
* getIndex:接收一个集合对象,接收一个学生学号
* 查找这个学号,在集合中出现的索引位置
*/
public static int getIndex(ArrayList<Student> list,String sid){
//list集合对象,sid是传入的学号
//1.假设传入的学号不在集合中,就找不到
int index=-1;
//遍历集合,获取每一个学生的对象,准备进行查找
for (int i=0;i<list.size();i++){
Student stu = list.get(i);
//获取每一个学生对象的学号
String id = stu.getSid();
//获取出的学号与传入的学号(查找的学号)进行对比
if (id.equals(sid)){
index=i;
}
}
return index;
}
}
控制台输出的形式:
希望初学者以此练练手