/*
* 学生管理系统
*
* 1.定义学生类
* 2.学生管理系统的主界面的代码编码
* 3.学生管理系统的查看所有学生的代码编写
* 4.学生管理系统的添加学生的代码编写
* 5.学生管理系统的删除学生的代码编写
* 6.学生管理系统的修改学生的代码编写
*
*/
public class StudentManager {
public static void main(String[] args) {
ArrayList<Student> arrl=new ArrayList<Student>();
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 xuanze = sc.nextLine();
switch (xuanze) {
case "1":
// 1.查看所有学生
findAllStudent(arrl);
break;
case "2":
// 2.添加学生
addStudent(arrl);
break;
case "3":
// 3.删除学生
deleteStudent(arrl);
break;
case "4":
// 4.修改学生
updateStudent(arrl);
break;
case "5":
// 5.退出
default:
System.out.println("感谢使用");
System.exit(0);
break;
}
}
}
public static void findAllStudent(ArrayList<Student> arrl){
if(arrl.size()==0){
System.out.println("暂无信息,返回上一层");
//return是不往下执行的意思,并不是返回值
return;
}
// \t是tap键的文字写法
System.out.println("学号\t姓名\t年龄\t性别\t家庭地址");
for(int a=0;a<arrl.size();a++){
Student s=arrl.get(a);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getXingbie()+"\t"+s.getAddress());
}
}
public static void addStudent(ArrayList<Student> arrl){
//1.键盘输入学生信息
Scanner sc=new Scanner(System.in);
//定义对象id放这里,因为放while里面,下面外面的代码会报错
String id;
//循环判断学号有没有被人占用
while(true){
System.out.println("请输入学号:");
id=sc.nextLine();
//标记
boolean flag=false;
//遍历集合
for(int a=0;a<arrl.size();a++){
//定义对象s接收集合索引a的元素
Student s=arrl.get(a);
//如果对象s接收的元素和键盘输入的元素一样,标记变成true,break退出for循环
if(s.getId().equals(id)){
flag=true;
break;
}
}
//如果标记flag变成true,继续循环,false就跳出while循环
if(flag){
System.out.println("输入的学号重复,重新输入");
}else{
break;
}
}
System.out.println("请输入姓名:");
String name=sc.nextLine();
System.out.println("请输入年龄:");
String age=sc.nextLine();
System.out.println("请输入性别:");
String xingbie=sc.nextLine();
System.out.println("请输入家庭地址:");
String address=sc.nextLine();
//2.把输入的信息通过方法存到学生类
Student s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setXingbie(xingbie);
s.setAddress(address);
//3.把学生类的信息加到集合中
arrl.add(s);
System.out.println("信息添加成功");
}
public static void deleteStudent(ArrayList<Student> arrl){
//创建键盘输入,输入学号
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除学生的学号");
String id=sc.nextLine();
//标记,索引=-1表示不存在
int index=-1;
//循环比较集合中是否有匹配的信息
for(int a=0;a<arrl.size();a++){
Student s=arrl.get(a);
if(s.getId().equals(id)){
//如果相同,进来,a赋值给index
index=a;
break;
}
}
//如果index等于-1,说明上面if不成立,说明没找到,else则是找到了
if(index==-1){
System.out.println("未找到要删除的学生信息,重新输入");
}else{
arrl.remove(index);
System.out.println("删除成功");
}
}
public static void updateStudent(ArrayList<Student> arrl){
//创建键盘输入
Scanner sc=new Scanner(System.in);
System.out.println("请输入要修改学生的学号");
String id=sc.nextLine();
//标记,索引=-1时,不存在该元素
int index=-1;
//创建循环看集合中有没有匹配信息
for(int a=0;a<arrl.size();a++){
Student s=arrl.get(a);
//如果找到集合中有匹配的信息,把索引a赋值给index,然后跳出for循环
if(s.getId().equals(id)){
index=a;
break;
}
}
//如果索引=-1,说明上面for循环中没有匹配的信息
if(index==-1){
System.out.println("未找到要修改的学生信息,请重新输入");
}else{
//键盘输入要修改的信息
System.out.println("请输入姓名:");
String name=sc.nextLine();
System.out.println("请输入年龄:");
String age=sc.nextLine();
System.out.println("请输入性别:");
String xingbie=sc.nextLine();
System.out.println("请输入家庭地址:");
String address=sc.nextLine();
//2.把输入的信息通过方法存到学生类
Student s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setXingbie(xingbie);
s.setAddress(address);
//3.把学生类的信息加到集合中
//arrl.add(index, s);不能用这个,用这个的话,是新加上一条信息了
arrl.set(index,s);
System.out.println("信息添加成功");
}
}
}
成功输入的截图