Java学生管理系统的简单实现

该代码示例展示了一个基于Java的学生管理系统,利用ArrayList存储Student对象,通过命令行接口实现学生信息的添加、删除、修改和查询功能。系统具有动态扩展存储空间的能力,并在用户输入错误时给出相应提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过命令行的方式简单实现学生管理系统的逻辑,通过ArrayList对学生对象进行存储,支持空间的动态增长,最终实现学生信息的增删改查。


StudentManager.java

package com.project.test;
import com.project.domain.Student;
import java.util.ArrayList;
import java.util.Scanner;

public class StudentManager {
    public static void main(String[] args) {

        ArrayList<Student> stuList = new ArrayList<>();

        Scanner sc = new Scanner(System.in);
        out:
        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.print("请输入您的选择:");

            String flag = sc.next(); //记录用户选择

            switch (flag) {
                case "1"://添加学生
                    addStudent(stuList);
                    break;
                case "2"://删除学生
                    deleteStudent(stuList);
                    break;
                case "3"://修改学生
                    updateStudent(stuList);
                    break;
                case "4"://查看学生
                    queryStudent(stuList);
                    break;
                case "5":
                    System.out.println("感谢您的使用!");
                    break out;
                default:
                    System.out.println("您的输入有误!");
                    break;
            }s
        }
    }

    public static void addStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入学号:");
        while (true){
            String stuId = sc.next();
            int index = getIndex(list, stuId);
            if (index == -1) {
                System.out.print("请输入姓名:");
                String name = sc.next();
                System.out.print("请输入年龄:");
                int age = sc.nextInt();
                System.out.print("请输入生日:");
                String birth = sc.next();
                Student stu = new Student(stuId, name, age, birth);
                list.add(stu);
                System.out.println("添加成功!");
                break;
            } else {
                System.out.println("您输入的学号已被占用,请重新输入!");
            }
        }

    }

    public static void deleteStudent(ArrayList<Student> list) {
        if (list.size() > 0) {
            System.out.println("请输入所要删除的学生Id:");
            Scanner sc = new Scanner(System.in);
            String s = sc.next();
            int index = getIndex(list, s);
            if (index == -1) {
                System.out.println("该信息不存在,请重新输入!");
            } else {
                list.remove(index);
                System.out.println("删除成功!");
            }
        }else{
            System.out.println("无信息,请添加信息后再进行操作!");
        }

    }

    public static void updateStudent(ArrayList<Student> list) {
        if (list.size() > 0) {
            System.out.println("请输入所要修改的学生Id:");
            Scanner sc = new Scanner(System.in);
            String s = sc.next();
            int index = getIndex(list, s);
            if (index == -1) {
                System.out.println("该信息不存在,请重新输入!");
            } else {
                Student stu = list.get(index);
                System.out.print("请输入新的姓名:");
                String newName = sc.next();
                stu.setName(newName);
                System.out.print("请输入新的年龄:");
                int newAge = sc.nextInt();
                stu.setAge(newAge);
                System.out.print("请输入新的生日:");
                String newBirth = sc.next();
                stu.setBirthday(newBirth);
                System.out.println("修改成功!");
            }
        }else{
            System.out.println("无信息,请添加信息后再进行操作!");
        }


    }

    public static void queryStudent(ArrayList<Student> list) {
        if (list.size() > 0) {
            System.out.println("学号\t\t\t姓名\t\t\t年龄\t\t\t生日");
            for (int i = 0; i < list.size(); i++) {
                Student stu = list.get(i);
                String stuID = stu.getStuId();
                String name = stu.getName();
                int age = stu.getAge();
                String birth = stu.getBirthday();
                System.out.println(stuID + "\t\t" + name + "\t\t" + age + "\t\t\t" + birth);
            }
        } else {
            System.out.println("无信息,请添加信息后再进行操作!");
        }

    }

    public static int getIndex(ArrayList<Student> list, String sId) {
        int index = -1;
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            if (sId.equals(stu.getStuId())) {
                index = i;
                break;
            }
        }
        return index;
    }
}


Student.java

package com.project.domain;

public class Student {
    private String stuId;
    private String name;
    private int age;
    private String birthday;

    public Student() {
    }

    public Student(String stuId, String name, int age, String birthday) {
        this.stuId = stuId;
        this.name = name;
        this.age = age;
        this.birthday = birthday;
    }

    public String getStuId() {
        return stuId;
    }

    public void setStuId(String stuId) {
        this.stuId = stuId;
    }

    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 getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WuwuwuH_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值