Implementation of student management system with Java (with detailed introduction and source code of the project)

Foreword : Recently, I have practiced a small project of simple student management system in Java language , so let me share it.

Ps: Originality is not easy, please support!

The summary analysis is as follows:

The main functions realized:

1. Add student information.

2. Query student information (realize single student information query & all student information query).

3. Modify student information.

4. Delete student information (implemented single student information deletion & all student information deletion).

5. Exit the management system.

project instruction:

cn.yunhe.bean package:

Student: represents the "student entity class".

cn.yunhe.utils包:

StudentTools: Represents "tool class". Scanner keyboard input tool class.

cn.yunhe.view包:

StudentFunction: Represents "addition, deletion, modification, and query functions".

StudentView: stands for "Project View Function".

The source code is as follows:

cn.yunhe.bean package:

package cn.yunhe.bean;

/**
 * @Auther: xydsr
 * @Date: 2023/4/3 16:58
 * @Desc:   学生管理系统
 *          创建学生类,定义私有成员变量,
 *          并定义构造方法和get、set方法
 **/

public class Student {

    //定义私有成员属性
    private int id;
    private  String name;
    private  double score;

    //创建构造方法(无参和有参构造)
    public Student() {
    }

    public Student(int id, String name, double score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }

    //创建set、get方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }
}

cn.yunhe.utils包:

package cn.yunhe.utils;

import java.util.Scanner;

/**
 * @Auther: xydsr
 * @Date: 2023/4/4 17:26
 * @Desc:
 **/

public class StudentTools {
    public static int ScannerId() {
        // System.out.println("请输入学生的学号:");
        Scanner sc = new Scanner(System.in);
        return sc.nextInt();
    }

    public static String ScannerName() {
        // System.out.println("请输入学生的姓名:");
        Scanner sc = new Scanner(System.in);
        return sc.nextLine();
    }

    public static double ScannerScore() {
        // System.out.println("请输入学生的成绩:");
        Scanner sc = new Scanner(System.in);
        return sc.nextDouble();
    }
}

cn.yunhe.view包:

package cn.yunhe.view;

import cn.yunhe.bean.Student;
import cn.yunhe.utils.StudentTools;

import java.util.ArrayList;

/**
 * @Auther: xydsr
 * @Date: 2023/4/4 16:06
 * @Desc: 学生管理系统功能模块
 **/

public class StudentFunction {

    //创建集合对象,用于存储学生信息
    private static ArrayList<Student> arrayList = new ArrayList<>();

    /**
     * 1、添加学生信息模块功能实现
     */
    public static void addStudent() {
        System.out.println();
        System.out.println("------------1、添加学生信息------------");

        int id;

        // 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        Student stu = new Student();

        // 添加学生学号,并判断是否已存在
        while (true) {
            System.out.print("请输入需要添加的学生学号:");
            id = StudentTools.ScannerId();
            boolean flag = isUsed(id);
            if (flag) {
                System.out.println("对不起,你输入的学号已存在,请重新输入:");
            } else {
                break;
            }
        }
        stu.setId(id);

        // 添加学生姓名
        System.out.print("请输入需要添加的学生姓名:");
        String name = StudentTools.ScannerName();
        stu.setName(name);

        // 添加学生成绩
        while (true) {
            System.out.print("请输入需要添加的学生成绩:");
            double score = StudentTools.ScannerScore();

            // 判断输入的成绩是否符合规范
            if (score <= 100 && score >= 0) {
                stu.setScore(score);
                break;
            } else {
                System.out.println("你输入的成绩不符合规范,请重新输入:");
            }
        }
        System.out.println();

        // 将学生对象添加到集合中(保存)
        arrayList.add(stu);

        // 添加成功提示
        System.out.println("添加成功!");

    }

    // 定义判断学号是否被占用的方法
    public static boolean isUsed(int id) {
        // 如果与集合中的某一个学生学号相同,返回true 如果都不相同,返回false
        boolean flag = false;
        for (int i = 0; i < arrayList.size(); i++) {
            Student s = arrayList.get(i);
            if (s.getId() == id) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    /**
     * 2、查询学生信息模块功能实现
     */
    public static void searchStudent() {
        System.out.println();
        System.out.println("------------2、查询学生信息------------");
        System.out.println("请输入序号选择查询的方式(1,按照学号查询;2,查询所有信息):");

        // 调用键盘录入对象方法,输入序号选择查询的方式
        int fun = StudentTools.ScannerId();

        while (true) {
            // 调用查询学生信息的方法
            if (fun == 1) {
                searchSingle(); // 调用查询单个学生信息的方法
            } else if (fun == 2) {
                searchAll();  // 调用查询所有学生信息的方法
            } else {
                System.out.println("你输入的序号功能暂未开发,请重新输入:");
            }
            return;
        }
    }

    // 定义查询单个学生信息的方法
    public static void searchSingle() {

        // 输入学生学号
        System.out.print("请输入需要查询的学生学号:");
        // 调用键盘录入对象方法
        int stuId = StudentTools.ScannerId();
        System.out.println();
        System.out.println("------------学生信息查询结果------------");

        for (Student student : arrayList) {
            if (student.getId() == (stuId)) {
                System.out.println("学号" + "              " + "姓名" + "              " + "成绩");
                System.out.println(student.getId() + "              " + student.getName() + "              " + student.getScore());
                return;
            }
        }
        System.out.println();
        System.out.println("对不起,你输入的学号不存在,请重新输入:");
        System.out.println();
    }

    // 定义查询所有学生信息的方法
    public static void searchAll() {
        System.out.println();
        System.out.println("------------学生信息查询结果------------");

        System.out.println("学号" + "              " + "姓名" + "              " + "成绩");
        for (int i = 0; i < arrayList.size(); i++) {
            Student s = arrayList.get(i);
            System.out.println(s.getId() + "              " +
                    s.getName() + "              " + s.getScore());
        }
    }

    /**
     * 3、修改学生信息模块功能实现
     */
    public static void updateStudent() {
        System.out.println();
        System.out.println("------------3、修改学生信息------------");

        int id;

        System.out.println("请输入你想修改的学生的学号:");
        id = StudentTools.ScannerId();

        // 输入学生学号,判断学号是否存在
        boolean upId = isExited(id);

        if (upId) {
            for (int i = 0; i < arrayList.size(); i++) {
                Student student = arrayList.get(i);

                if (student.getId() == (id)) {
                    // 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
                    Student stu = new Student();

                    // 键盘录入要修改的学生信息
                    System.out.println("请输入修改后的学生的学号:");
                    int updateId = StudentTools.ScannerId();
                    stu.setId(updateId);

                    System.out.println("请输入修改后的学生的姓名:");
                    String updateName = StudentTools.ScannerName();
                    stu.setName(updateName);

                    System.out.println("请输入修改后的学生的成绩:");
                    double updateScore = StudentTools.ScannerScore();

                    // 判断输入的成绩是否符合规范
                    if (updateScore <= 100 && updateScore >= 0) {
                        student.setScore(updateScore);
                    } else {
                        System.out.println("你输入需要修改的成绩不符合规范,请重新输入:");
                    }
                    stu.setScore(updateScore);

                    // 将修改的学生成绩到集合中(修改)
                    arrayList.set(i, stu);

                    // 给出修改成功提示
                    System.out.println("修改成功!");
                    System.out.println();
                    break;
                }
            }
        } else {
            System.out.println("对不起,你输入的学号不存在,请重新输入:");
        }
    }

    // 定义判断需要修改的学生学号是否存在
    public static boolean isExited(int id) {
        boolean updateId = false;
        for (int i = 0; i < arrayList.size(); i++) {
            Student s = arrayList.get(i);
            if (s.getId() == (id)) {
                updateId = true;
                break;
            }
        }
        return updateId;
    }

    /**
     * 4、删除学生信息模块功能实现
     */
    public static void deleteStudent() {
        System.out.println();
        System.out.println("------------4、删除学生信息------------");

        System.out.println("请输入序号选择删除的方式(1,按照学号删除;2,删除所有信息):");

        int delete = StudentTools.ScannerId();

        while (true) {
            if (delete == 1) {
                deleteSingle();  // 1,按照学号删除
            } else if (delete == 2) {
                deleteAll();   // 2,删除所有信息
            } else {
                System.out.println("你输入的序号功能暂未开发,请重新选择输入:");
            }
            break;
        }
        return;
    }

    // 定义单个删除的方法
    public static void deleteSingle() {

        // 判断需要删除的学生信息是否存在
        System.out.println("请输入需要删除的学生学号:");
        int id = StudentTools.ScannerId();

        int index = -1;

        // 遍历集合将对应学生对象从集合中删除
        for (int i = 0; i < arrayList.size(); i++) {
            Student s = arrayList.get(i);
            if (s.getId() == (id)) {
                index = i;
                break;
            }
        }

        while (true) {
            if (index == -1) {
                System.out.println("对不起,你输入的学号不存在,请重新输入:");
            } else {
                arrayList.remove(index);
                System.out.println("删除学生信息成功!");
            }
            break;
        }
    }

    // 定义全部删除的方法
    public static void deleteAll() {
        arrayList.clear();
        System.out.println("删除所有信息成功!");
    }

    /**
     * 5、退出系统模块功能实现
     */
    public static void exitSystem() {
        System.out.println();
        System.err.println("退出成功,欢迎再次访问!");
        System.exit(0);
    }
}
package cn.yunhe.view;

import cn.yunhe.utils.StudentTools;


/**
 * @Auther: xydsr
 * @Date: 2023/4/3 16:58
 * @Desc: 学生管理系统实现需求:
 * 1、添加学生信息
 * 2、查询学生信息
 * 3、修改学生信息
 * 4、删除学生信息
 * 5、退出管理系统
 **/

public class StudentView {
    public static void main(String[] args) {
        //用循环完成回到系统主界面功能
        while (true) {
            //系统主界面菜单模块
            System.out.println("------欢迎来到-xydsr-学生管理系统------");
            System.out.println("|-----------1、添加学生信息-----------|");
            System.out.println("|-----------2、查询学生信息-----------|");
            System.out.println("|-----------3、修改学生信息-----------|");
            System.out.println("|-----------4、删除学生信息-----------|");
            System.out.println("|-----------5、退出管理系统-----------|");
            //添加一个空格行,为了输出控制台布局美观、不拥挤(下同)。
            System.out.println();
            System.out.println("请选择功能序号:");

            int str = StudentTools.ScannerId();

            // 用switch循环完成系统主界面功能模块的切换操作
            switch (str) {
                case 1:
                    // System.out.println("1、添加学生信息");
                    StudentFunction.addStudent();
                break;
                case 2:
                    // System.out.println("2、查询学生信息");
                    StudentFunction.searchStudent();
                    break;
                case 3:
                    // System.out.println("3、修改学生信息");
                    StudentFunction.updateStudent();
                    break;
                case 4:
                    // System.out.println("4、删除学生信息");
                    StudentFunction.deleteStudent();
                    break;
                case 5:
                    // System.out.println("5、退出系统");
                    StudentFunction.exitSystem();
                    break;
                default:
                    System.out.println("对不起,你选择的功能序号有误,请重新输入:");
            }

            //添加一个空格行,为了输出控制台布局美观、不拥挤。
            System.out.println();
        }
    }

}

Project demo:

 

 

 

Guess you like

Origin blog.csdn.net/XFB9750/article/details/129993514