【day10】JavaSE基础项目——学生管理系统

项目介绍

本项目是JavaSE第一阶段的实践项目,旨在实现学生对象在数组中的增删改查功能。这是一个基础的管理系统,您可以在此基础上发挥自己的想象力,添加更多功能,进行完善和扩展。不过,本项目的核心依然是对前9天知识点的实践应用。

项目展示

以下是学生管理系统的主要功能展示:

2.1 添加功能

在这里插入图片描述

2.2 查看功能

在这里插入图片描述

2.3 修改功能

在这里插入图片描述

2.4 删除功能

在这里插入图片描述

2.5 退出功能

在这里插入图片描述

功能实现

3.1 JavaBean - Student

以下是Student类的定义,它是一个简单的JavaBean,用于封装学生的信息。

public class Student {
    private int id;     // 学号
    private String name; // 姓名
    private int age;    // 年龄
    private String sex;  // 性别

    public Student() {
    }

    public Student(int id, String name, int age, String sex) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    // Getters and Setters
    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 int getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

3.2 启动项目 - Test01

以下是项目的启动类Test01,它负责启动学生管理系统。

public class Test01 {
    public static void main(String[] args) {
        new StudentView().start();
    }
}

3.3 操作页面 - StudentView

StudentView类是学生管理系统的操作页面,它负责接收用户输入,并调用相应的功能方法。

public class StudentView {
    Scanner sc = new Scanner(System.in); // 用于接收用户输入
    Student[] students = new Student[50]; // 存储学生对象的数组,最大容量50
    int count = 0; // 记录当前存储了多少个学生对象
    Student[] newStudents = new Student[students.length - 1]; // 用于删除操作的新数组

    public void start() {
        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("请选择(1-5):");

            int num = sc.nextInt();
            System.out.println("--------------------------------");

            switch (num) {
                case 1:
                    addStudent();
                    break;
                case 2:
                    updateStudent();
                    break;
                case 3:
                    deleteStudent();
                    break;
                case 4:
                    findAllStudent();
                    break;
                case 5:
                    System.out.println("退出功能");
                    return;
            }
        }
    }

    private void findAllStudent() {
        // 查看功能实现
    }

    private void deleteStudent() {
        // 删除功能实现
    }

    private void updateStudent() {
        // 修改功能实现
    }

    private void addStudent() {
        // 添加功能实现
    }
}

3.4 工具类 - ArrayUtils

ArrayUtils类提供了一个静态方法,用于根据学生ID查找学生在数组中的索引位置。

public class ArrayUtils {
    private ArrayUtils() {
    }

    public static int findIndexById(Student[] students, int id, int count) {
        for (int i = 0; i < count; i++) {
            if (id == students[i].getId()) {
                return i;
            }
        }
        return -1;
    }
}

3.5 添加功能 - addStudent

以下是添加学生信息的具体实现。

private void addStudent() {
    System.out.println("请您输入学生学号:");
    int id = sc.nextInt();
    System.out.println("请您输入学生姓名:");
    String name = sc.next();
    System.out.println("请您输入学生年龄:");
    int age = sc.nextInt();
    System.out.println("请您输入学生性别:");
    String sex = sc.next();

    Student student = new Student(id, name, age, sex);
    students[count] = student;
    count++;
    System.out.println("添加成功!!!");
}

3.6 查看功能 - findAllStudent

以下是查看所有学生信息的具体实现。

private void findAllStudent() {
    System.out.println("学号\t姓名\t年龄\t性别");
    for (int j = 0; j < count - 1; j++) {
        for (int i = 0; i < count - 1 - j; i++) {
            if (students[i].getId() > students[i + 1].getId()) {
                Student temp = students[i];
                students[i] = students[i + 1];
                students[i + 1] = temp;
            }
        }
    }

    if (count == 0) {
        System.out.println("对不起,现在班级没有学生,待开班.........");
    } else {
        for (int i = 0; i < count; i++) {
            System.out.println(students[i].getId() + "\t" + students[i].getName() + "\t" + students[i].getAge() + "\t" + students[i].getSex());
        }
    }
}

3.7 修改功能 - updateStudent

以下是修改学生信息的具体实现。

private void updateStudent() {
    System.out.println("请您输入要修改的学生学号:");
    int id = sc.nextInt();
    int updateIndex = ArrayUtils.findIndexById(students, id, count);

    System.out.println("请您输入学生姓名:");
    String name = sc.next();
    System.out.println("请您输入学生年龄:");
    int age = sc.nextInt();
    System.out.println("请您输入学生性别:");
    String sex = sc.next();

    Student student = new Student(id, name, age, sex);
    students[updateIndex] = student;
    System.out.println("修改成功!!!");
}

3.8 删除功能 - deleteStudent

以下是删除学生信息的具体实现。

private void deleteStudent() {
    System.out.println("请您输入要删除的学生学号:");
    int id = sc.nextInt();
    int removeIndex = ArrayUtils.findIndexById(students, id, count);

    System.arraycopy(students, 0, newStudents, 0, removeIndex);
    System.arraycopy(students, removeIndex + 1, newStudents, removeIndex, students.length - removeIndex - 1);
    students = newStudents;
    count--;
    System.out.println("删除成功");
}

3.9 退出功能 - switch

以下是退出系统的实现。

case 5:
    System.out.println("是否退出?按0为退出/按9为取消");
    int key = sc.nextInt();
    if (key == 0) {
        System.out.println("再见,欢迎再来");
        return;
    } else if (key == 9) {
        continue;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员波特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值