首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【day10】JavaSE基础项目——学生管理系统

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

作者头像
程序员波特
发布2024-12-23 08:09:24
发布2024-12-23 08:09:24
3230
举报
文章被收录于专栏:魔法书魔法书

项目介绍

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

项目展示

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

2.1 添加功能
2.2 查看功能
2.3 修改功能
2.4 删除功能
2.5 退出功能

功能实现

3.1 JavaBean - Student

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

代码语言:javascript
复制
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,它负责启动学生管理系统。

代码语言:javascript
复制
public class Test01 {
    public static void main(String[] args) {
        new StudentView().start();
    }
}
3.3 操作页面 - StudentView

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

代码语言:javascript
复制
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查找学生在数组中的索引位置。

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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

以下是退出系统的实现。

代码语言:javascript
复制
case 5:
    System.out.println("是否退出?按0为退出/按9为取消");
    int key = sc.nextInt();
    if (key == 0) {
        System.out.println("再见,欢迎再来");
        return;
    } else if (key == 9) {
        continue;
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目介绍
  • 项目展示
    • 2.1 添加功能
    • 2.2 查看功能
    • 2.3 修改功能
    • 2.4 删除功能
    • 2.5 退出功能
  • 功能实现
    • 3.1 JavaBean - Student
    • 3.2 启动项目 - Test01
    • 3.3 操作页面 - StudentView
    • 3.4 工具类 - ArrayUtils
    • 3.5 添加功能 - addStudent
    • 3.6 查看功能 - findAllStudent
    • 3.7 修改功能 - updateStudent
    • 3.8 删除功能 - deleteStudent
    • 3.9 退出功能 - switch
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档