目录
一、前言
二、学生管理系统主要功能
在学生类下
在学生总部类下:
main方法:
登录密码验证:
打印菜单:
增加学生信息:
查看学生信息:
删除学生信息:
修改学生信息:
查找学生信息:
代码效果演示图:
一、前言
我们前面写了通讯录管理系统,现在我们来写个学生管理系统,
其实主干代码都一 不过,在学生管理系统中我添加和优化了许多功能,
如【登录密码验证,异常处理,非空判断,,防止重复添加】等。
二、学生管理系统主要功能
增加学生信息
删除学生信息
修改学生信息
查找学生信息
查看所有学生信息
退出学生管理系统
主干总览图:
我们分成了许多的方法模块,便于调用。
在学生类下
,就是普通的构造方法和get和set方法,还有一个重写的toString方法
(Alt+Insert可以快速生成上述的所有)
package 学生管理系统;public class Student {private String name;private String age;private String sex;private String number;private String classroom;public Student(){}public Student(String name, String age, String sex, String classroom,String number) {this.name = name;this.age = age;this.sex = sex;this.classroom = classroom;this.number=number;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getClassroom() {return classroom;}public void setClassroom(String classroom) {this.classroom = classroom;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}
重写toString方法是为了让我们设置好的方式去显示:
@Overridepublic String toString() {return "名字:"+name+" |性别:"+sex+" |年龄:"+age+" |学号:"+number+" |班级:"+classroom+"\n";}
}
在学生总部类下:
main方法:
public static void main(String[] args) {ArrayList<Student> arrayList=new ArrayList<Student>();password();//密码验证while(true){menu();//菜单Scanner sc=new Scanner(System.in);try{int num=sc.nextInt();switch(num){case 1:{addStudent(arrayList);break;}case 2:{deleteStudent(arrayList);break;}case 3:{reviseStudent(arrayList);break;}case 4:{oneStudent(arrayList);break;}case 5:{checkStudent(arrayList);break;}case 6:{System.out.println("退出成功");System.exit(0);}default:{System.out.println("输入错误,输入0-6之间的数字");break;}}}catch(Exception e){e.printStackTrace();System.out.println("你的输入是非数字,请输入0-6的数字");}}}//main方法
登录密码验证:
public static void password(){System.out.println("***欢迎来到学生管理系统***");Scanner sc=new Scanner(System.in);System.out.print("请输入管理员密码:");String s="键盘敲烂";int sum=3;while(true){String ss=sc.nextLine();if(ss.equals(s)){System.out.println("验证成功!");break;}else{sum--;System.out.print("密码错误,你还有"+sum+"次机会:");}if(sum==0){System.out.println("输入上限,再见!");System.exit(0);}}}//密码验证
打印菜单:
public static void menu(){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("6.退出");System.out.println("请选择:");}//打印菜单页
增加学生信息:
public static void addStudent(ArrayList<Student> arrayList){Scanner sc1=new Scanner(System.in);System.out.print("请输入姓名:");String name=sc1.nextLine();System.out.print("请输入年龄:");String age=sc1.nextLine();System.out.print("请输入性别:");String sex=sc1.nextLine();System.out.print("请输入学号:");String number=sc1.nextLine();System.out.print("请输入班级:");String classroom=sc1.nextLine();Student stu=new Student();stu.setAge(age);stu.setClassroom(classroom);stu.setName(name);stu.setSex(sex);stu.setNumber(number);int kong=0;//用来定义是否已经存在的学号for (int i=0;i<arrayList.size();i++){Student s=arrayList.get(i);if((arrayList.size())>1&&(s.getNumber().equals(number))&&(s.getClassroom().equals(classroom))){System.out.println("添加失败,你输入的学号在同一班级已存在");kong++;//存在就加一arrayList.remove(stu);}}if(name.length()==0||age.length()==0||sex.length()==0||classroom.length()==0||number.length()==0||kong!=0){System.out.println("有某项为空或学号在同一班已存在,添加失败");arrayList.remove(stu);//移除该项} else{arrayList.add(stu);System.out.println("添加成功");}}//加信息
查看学生信息:
public static void checkStudent(ArrayList<Student> array){if(array.isEmpty()){System.out.println("这里没有任何信息,请添加后查看!");}else{System.out.println(array);}}//查信息
删除学生信息:
public static void deleteStudent(ArrayList<Student> array){if(array.isEmpty()){System.out.println("这里没有任何信息,请添加后在进行操作!");}else{Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除信息的名字");String str=sc.nextLine();int sum=0;for(int i=0;i<array.size();i++){Student s = array.get(i);if(s.getName().equals(str)){array.remove(i);sum++;System.out.println("删除成功");}}if(sum==0){System.out.println("没有该信息,删除失败!");}}}//删信息
修改学生信息:
public static void reviseStudent(ArrayList<Student> arrayList){if(arrayList.isEmpty()){System.out.println("没有任何信息,请输入后在进行操作!");}else {int sum=0;Scanner sc = new Scanner(System.in);System.out.println("请输入你要换信息的名字");String name=sc.nextLine();for(int i=0;i<arrayList.size();i++){Student s1=arrayList.get(i);if(s1.getName().equals(name)){sum++;}}if(sum!=0){Scanner sc1=new Scanner(System.in);System.out.print("请输入姓名:");String name1=sc1.nextLine();System.out.print("请输入年龄:");String age=sc1.nextLine();System.out.print("请输入性别:");String sex=sc1.nextLine();System.out.print("请输入学号:");String number=sc1.nextLine();System.out.print("请输入班级:");String classroom=sc1.nextLine();Student stu=new Student();stu.setAge(age);stu.setClassroom(classroom);stu.setName(name1);stu.setSex(sex);stu.setNumber(number);int kc=0;for (int i = 0; i < arrayList.size(); i++) {Student stu1 = arrayList.get(i);if(arrayList.size()>1&&(stu1.getNumber().equals(number)&&stu1.getClassroom().equals(classroom))){kc++;System.out.println("添加失败,已经存在此学号在同一班");break;}if(name1.length()==0||age.length()==0||sex.length()==0||classroom.length()==0||number.length()==0) {System.out.println("有某项为空,添加失败"); break;}if (stu1.getName().equals(name)&&kc==0) {arrayList.set(i, stu);System.out.println("修改成功");break;}}}if(sum==0){System.out.println("修改失败,没有找到对应的名字");}} }//改信息
查找学生信息:
public static void oneStudent(ArrayList<Student> arrayList){if (arrayList.isEmpty()){System.out.println("没有学生信息,请添加后再查找");}else{Scanner sc=new Scanner(System.in);System.out.print("请输入你要查找学生的名字:");String name=sc.nextLine();int sum=0;for(int i=0;i<arrayList.size();i++){Student stu=arrayList.get(i);if(stu.getName().equals(name)){sum++;System.out.println("姓名:"+stu.getName()+" 年龄:"+stu.getAge()+" 性 别:"+stu.getSex()+" 班级:"+stu.getClassroom()+" 学号:"+stu.getNumber());}}if(sum==0){System.out.println("你查找的学生不存在");}}}//找信息