Java 实现完整功能的学生管理系统实例

 更新时间:2021年11月04日 09:28:36   作者:执久呀  
读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个完整版学生管理系统,大家可以在过程中查缺补漏,提升水平

一、前言

我们前面写了通讯录管理系统,现在我们来写个学生管理系统,

其实主干代码都一 不过,在学生管理系统中我添加和优化了许多功能,

如【登录密码验证,异常处理,非空判断,,防止重复添加】等。

二、学生管理系统主要功能

  • 增加学生信息
  • 删除学生信息
  • 修改学生信息
  • 查找学生信息
  • 查看所有学生信息
  • 退出学生管理系统

主干总览图:

我们分成了许多的方法模块,便于调用。

在学生类下

就是普通的构造方法和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方法是为了让我们设置好的方式去显示:

    @Override
    public 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);
               for (int i = 0; i < arrayList.size(); i++) {
                Student stu1 = arrayList.get(i);
                if (stu1.getName().equals(name)) {
                    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("你查找的学生不存在");
            }
        }
    }//找信息

代码效果演示图:

到此这篇关于Java 实现完整功能的学生管理系统实例的文章就介绍到这了,更多相关Java 学生管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现自定义线程池的方法

    SpringBoot实现自定义线程池的方法

    这篇文章主要介绍了SpringBoot中的自定义线程池解析,实现自定义线程池重写spring默认线程池的方式使用的时候,只需要加@Async注解就可以,不用去声明线程池类,需要的朋友可以参考下
    2023-11-11
  • IDEA必备开发神器之EasyCode

    IDEA必备开发神器之EasyCode

    对于java程序员来说,日常工作中就是crud的操作,每次都要搭建MVC三层,还是很繁琐,这里就出现了神器easycode的工具.可以快速生成代码.并且还可以自定义模板.需要的朋友可以参考下
    2021-05-05
  • Java JSch远程执行Shell命令的方法

    Java JSch远程执行Shell命令的方法

    本文主要介绍了Java JSch远程执行Shell命令,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • springboot开发flowable定时任务问题

    springboot开发flowable定时任务问题

    这篇文章主要介绍了springboot开发flowable定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 一文带你搞懂Java中Object类和抽象类

    一文带你搞懂Java中Object类和抽象类

    这篇文章主要为大家详细介绍了Java中Object类和抽象类的定义与使用,文中的示例代码讲解详细,对我们学习Java有一定帮助,需要的可以参考一下
    2022-08-08
  • Java实现解析JSON大文件JsonReader工具详解

    Java实现解析JSON大文件JsonReader工具详解

    这篇文章主要介绍了Java实现解析JSON大文件的工具JsonReader使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-01-01
  • 解决mybatis用Map返回的字段全变大写的问题

    解决mybatis用Map返回的字段全变大写的问题

    这篇文章主要介绍了解决mybatis用Map返回的字段全变大写的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • MyBatis拦截器动态替换表名的方法详解

    MyBatis拦截器动态替换表名的方法详解

    因为我们持久层框架更多地使用MyBatis,那我们就借助于MyBatis的拦截器来完成我们的功能,这篇文章主要给大家介绍了关于MyBatis拦截器动态替换表名的相关资料,需要的朋友可以参考下
    2022-04-04
  • SpringCloud Feign如何在远程调用中传输文件

    SpringCloud Feign如何在远程调用中传输文件

    这篇文章主要介绍了SpringCloud Feign如何在远程调用中传输文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • MyBatis的SQL执行结果和客户端执行结果不一致问题排查

    MyBatis的SQL执行结果和客户端执行结果不一致问题排查

    本文主要介绍了MyBatis的SQL执行结果和客户端执行结果不一致问题排查,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论