Java学生管理系统

  • 项目演示:
  • 实现思路:
    • 1、定义学生类
      • 下面是学生类的源代码
    • 2、主界面的代码编写
      • 思路:
      • 下面是主界面源代码
      • 效果展示
    • 3、添加学生的代码编写
      • 思路
      • 下面是添加学生的源代码
      • 效果展示
    • 4、查看学生的代码编写
      • 思路:
      • 下面是查看学生的源代码
      • 效果展示
    • 5、删除学生的代码编写
      • 思路:
      • 下面是删除学生的源代码
      • 效果展示
    • 6、修改学生的代码编写
      • 思路:
      • 下面是修改学生信息的源代码
      • 效果展示
    • 程序补充
      • 解决添加学生学号重复问题
      • 下面是源代码
      • 注释

项目演示:

---------欢迎来到学生管理系统---------
1、 添加学生
2、删除学生
3、修改学生
4、查看所有学生
5、退出
请输入你的选择:

实现思路:

1、定义学生类
2、主界面的代码编写
3、添加学生的代码编写
4、查看学生的代码编写
5、删除学生的代码编写
6、修改学生的代码编写

每一个功能都定义一个方法,在方法里面来实现功能,再在main函数里面相应位置调用就可以。

1、定义学生类

学生类这里我们定义的一个标准学生类,里面设置了四个学生信息,都用private修饰。每一个学生成员变量都提供get/set方法。这里不是很清楚的可以去看一下我的 Java面向对象——封装 这篇文章

下面是学生类的源代码

public class Student {
   private String xh; //学号
   private String name; //姓名
   private String age; //年龄
   private String juzd; //居住地

    public Student(){  //不带参数的构造方法

    }
    //带四个参数的构造方法
    public Student(String xh,String name,String age,String juzd){
        this.xh=xh;
        this.name=name;
        this.age=age;
        this.juzd=juzd;
    }

    public void setXh(String xh) {
        this.xh = xh;
    }

    public String getXh() {
        return xh;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAge() {
        return age;
    }

    public void setJuzd(String juzd) {
        this.juzd = juzd;
    }

    public String getJuzd() {
        return juzd;
    }
}

2、主界面的代码编写

思路:

1、用输入语句完成主界面的编写
2、用Scanner实现键盘录入数据
3、用switch语句完成操作的选择
4、用循环完成再次回到主界面

下面是主界面源代码

 public static void main(String[] args) {
        ArrayList<Student> array=new ArrayList<>();
        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 cs = new Scanner(System.in);
            int a = cs.nextInt();
            switch (a) {
                case 1:
                    glxttjxs(array);//添加学生的方法
                    break;
                case 2:
                    glxtscxs(array);//删除学生的方法
                    break;
                case 3:
                    glxtxgxs(array);//修改学生的方法
                    break;
                case 4:
                    glxtckxs(array);//查看所有学生的方法
                    break;
                case 5:
                    System.out.println("退出");
                    System.exit(0);//死循环中退出Java虚拟机
            }
            System.out.println();//这里两个换行为了让界面更好看
            System.out.println();
        }

    }

效果展示

3、添加学生的代码编写

思路

1、用键盘录入的选择添加学生
2、定义一个方法,用于添加学生

  • 判断输入的学号是否被占用,如果被占用输出提示信息,如果没有被占用,继续下一步
  • 显示提示信息,提示要输入何种信息
  • 键盘录入学生对象所需要的信息
  • 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
  • 将学生对象添加到集合中(保存)
  • 给出添加成功提示信息

3、调用方法

下面是添加学生的源代码

public static void glxttjxs(ArrayList<Student> a){
        Scanner tj=new Scanner(System.in);
        String xh;
        while (true) {
            System.out.println("请输入学生学号:");
            xh = tj.nextLine();
            boolean flag = pdxhsfcf(a, xh);
            if (flag) {
                System.out.println("你输入的学号已经被占用,请重新输入");
            } else {
                break;
            }
        }
        System.out.println("请输入学生姓名:");
        String name=tj.nextLine();
        System.out.println("请输入学生年龄:");
        String age=tj.nextLine();
        System.out.println("请输入学生家庭住址:");
        String jtzu=tj.nextLine();

        Student b=new Student();//创建学生对象,并把键盘录入的数据赋值给学生对象的成员变量
        b.setXh(xh);
        b.setName(name);
        b.setAge(age);
        b.setJuzd(jtzu);

        a.add(b);//将学生对象添加到集合中

        System.out.println("添加学生成功!");

    }

效果展示

下面是输入没有被占用学生学号的效果

下面是学生学号被占用的效果

4、查看学生的代码编写

思路:

    1、用键盘录入选择查看所有学生信息
    2、定义一个方法,用于查看学生信息
     1.1判定集合中是否有数据,如果没有显示提示信息
     1.2显示表头信息
     1.3将集合中数据取出按照对应格式显示学生信息,年龄补充“岁”
    3、调用方法

下面是查看学生的源代码

public static void glxtckxs(ArrayList<Student> a){

        if(a.size()==0){
            System.out.println("无信息,请先添加信息再查看");
            return;//为了不让程序继续往下执行
        }
        System.out.println("学号\t\t\t"+"姓名\t\t"+"年龄\t\t"+"地址");
        for(int i=0;i<a.size();i++){
            Student s=a.get(i);
            System.out.println(s.getXh()+"\t"+s.getName()+"\t"+s.getAge()+"岁\t\t"+s.getJuzd());
        }
    }

效果展示

5、删除学生的代码编写

思路:

    1、用键盘录入选择删除学生信息
    2、定义一个方法,用于删除学生信息
     2.1显示提示信息
     2.2键盘录入要删除的学生学号
     2.3在删除学生之前,对学号是否存在进行判断
       2.31如果不存在,显示提示信息
       2.32如果存在,执行删除
     2.4遍历集合将对应学生对象从集合中删除
     2.5给出删除成功提示
    3、调用方法

下面是删除学生的源代码

 public static void glxtscxs(ArrayList<Student> a){
        System.out.println("请输入要删除学生的学号:");
        Scanner x=new Scanner(System.in);
        String xh=x.nextLine();

      int j=-1;
        for (int i=0;i<a.size();i++){
            Student b=a.get(i);
            if(b.getXh().equals(xh)){
                j=i;
                break;
            }
        }
        if(j==-1){
            System.out.println("该学生信息不存在,请重新输入");
        }else {
            a.remove(j);
            System.out.println("删除成功!");
        }
    }

效果展示

下面是学生学号不存在的效果展示

下面是成功删除的效果展示

6、修改学生的代码编写

思路:

    1、用键盘录入选择修改学生信息
    2、定义一个方法,用来修改学生信息
     2.1显示提示信息
     2.2键盘录入要修改点的学生学号
     2.3判断学生学号是否存在,不存在给出提示信息
     2.4键盘录入要修改的学生信息
     2.5遍历集合对应的学生信息
     2.6给出修改成功提示
    3、调用方法

下面是修改学生信息的源代码

public static void glxtxgxs(ArrayList<Student> a){
        System.out.println("请输入要修改学生的学号:");
        Scanner x=new Scanner(System.in);
        String xh=x.nextLine();

        int j=-1;
        for(int i=0;i<a.size();i++){
            Student s=a.get(i);
            if(s.getXh().equals(xh)){
                j=i;
                break;
            }
        }
        if(j==-1){
            System.out.println("你输入的学号不存在,请重新输入");

        }else {
            System.out.println("请输入学生新姓名:");
            String name=x.nextLine();
            System.out.println("请输入学生新年龄:");
            String age=x.nextLine();
            System.out.println("请输入学生新家庭住址:");
            String jtzu=x.nextLine();

            Student s=new Student();

            s.setXh(xh);
            s.setName(name);
            s.setAge(age);
            s.setJuzd(jtzu);
            for(int i=0;i<a.size();i++){
                Student student=a.get(i);
                if(student.getXh().equals(xh)){
                    a.set(i,s);
                    break;
                }
            }
            System.out.println("修改成功!");
        }
    }

效果展示

下面是修改学生学号不存在的展示

下面是修改成功的展示

程序补充

解决添加学生学号重复问题

    思路:
    1、定义一个方法,对学号是否被使用进行判断
       如果与集合中的某一个学生学号相同,返回true
       如果都不相同,返回false
    2、在添加学生录入学号后调用该方法
         如果返回true,弹出提示,重新输入学号
         如果返回false,正常添加学生对象

下面是源代码

 public static boolean pdxhsfcf(ArrayList<Student> a,String xh){
        boolean flag=false;
     for(int i=0;i<a.size();i++){
        Student sb= a.get(i);
        if(sb.getXh().equals(xh)){
            flag=true;
            break;
        }
     }
            return flag;
    }

注释

不知道这样写你们看不看得懂,如果有什么问题欢迎 评论或者私信 问我。大家一起学习一起进步。

更多推荐

Java实现 学生管理系统项目 完整版,每个功能详细介绍,最后面完整源代码可直接执行