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

本文介绍了一个简单的Java学生管理系统的设计与实现过程。系统通过控制台交互,实现了添加、删除、修改和查询学生信息的功能。

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

今天学习java,想着写个学生管理系统练练手,随便记下自己写的代码步骤。

1.需求分析如下

学生管理系统

需求:

​ 采取控制台的方式去书写学生管理系统。

分析:

初始菜单:

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

学生类:

​ 属性:id、姓名、年龄、家庭住址

添加功能:

​ 键盘录入每一个学生信息并添加,需要满足以下要求:

  • id唯一

删除功能:

​ 键盘录入要删除的学生id,需要满足以下要求:

  • id存在删除

  • id不存在,需要提示不存在,并回到初始菜单

修改功能:

​ 键盘录入要修改的学生id,需要满足以下要求

  • id存在,继续录入其他信息

  • id不存在,需要提示不存在,并回到初始菜单

查询功能:

​ 打印所有的学生信息,需要满足以下要求

  • 如果没有学生信息,提示:当前无学生信息,请添加后再查询

  • 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)

id          姓名      年龄      家庭住址
ptu001      张三       18       厦门
ptu002      李四       19       福州
ptu003      王五       20       深圳
ptu004      麻六       21       杭州

2.根据需求分析画出草图

 3.开始写代码

先创建Student类和StudentTest类。

 在Student类中创建id、name、age、address属性,构造空参和带全部参数的public Student类,并定义各属性的set和get方法。

在StudentTest中书写增删改查的代码,

注意:增删改查的方法简单的先写,我是最先写查 ,再写增。

附完整代码:

Student

package StudentSystem;

public class Student {
    //1.创建属性
    private String id;
    private String name;
    private int age;
    private String address;

    //2.空参构造和带全部参数的构造
    public Student() {
    }

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

    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取
     * @return address
     */
    public String getAddress() {
        return address;
    }

    /**
     * 设置
     * @param address
     */
    public void setAddress(String address) {
        this.address = address;
    }

}

StudentTest

package StudentSystem;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentTest {
    public static void main(String[] args) {
        //创建一个集合存储学生的信息
        ArrayList<Student> list = new ArrayList<>();
        //1.创建欢迎页面
        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("请输入您的选择:");

            //2.输入选择
            Scanner sc = new Scanner(System.in);
            String choice = sc.next();
            switch (choice) {
                case "1":addStudent(list);break;
                case "2":removeStudent(list);break;
                case "3":modifyStudent(list);break;
                case "4":searchStudent(list);break;
                case "5":{
                    System.out.println("退出系统");
                    System.exit(0);
                };break;
                default:
                    System.out.println("没有这个选项");break;
            }
        }
    }

    //1.添加学生
    public static void addStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        //录入学生id
        System.out.print("请输入学生id:");
        String studentId = sc.next();
        //调用方法,如果集合中已经有该学生则flag != -1
        int flag = getIndex(list,studentId);
        if(flag != -1) {
            System.out.println("该学生在系统中已存在,请勿重复录入");
        } else {
            //创建学生对象,将id存入学生对象
            Student stu = new Student();
            stu.setId(studentId);
            //姓名
            System.out.print("请输入学生姓名:");
            String studentName = sc.next();
            stu.setName(studentName);
            //年龄
            System.out.print("请输入学生年龄:");
            int studentAge = sc.nextInt();
            stu.setAge(studentAge);
            //地址
            System.out.print("请输入学生地址:");
            String studentAddress = sc.next();
            stu.setAddress(studentAddress);
            //将学生对象存入集合
            list.add(stu);
        }
    }

    //2.删除学生
    public static void removeStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入你要删除的学生id:");
        String studentId = sc.next();
        int index = getIndex(list,studentId);
        if (index == -1){
            System.out.println("您要删除的学生不存在!");
        } else {
            list.remove(index);
            System.out.println("已删除id为" + studentId + "的学生");
        }
    }

    //3.修改学生
    public static void modifyStudent(ArrayList<Student> list) {
        //1.键盘录入要修改的学生id
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入你要修改的学生id:");
        String studentId = sc.next();
        int index = getIndex(list,studentId);
        if (index == -1){
            System.out.println("学号为" + studentId + "的学生不存在");
        } else {
            System.out.print("请维护该学生的姓名:");
            list.get(index).setName(sc.next());

            System.out.print("请维护该学生的年龄:");
            list.get(index).setAge(sc.nextInt());

            System.out.print("请维护该学生的地址:");
            list.get(index).setAddress(sc.next());
        }
    }

    //4.根据id查询学生(需要给出id和在哪查询)
    public static void searchStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入您要查询的学生id:");
        String id = sc.next();
        if (list.size() == 0){
            System.out.println("当前无学生信息,请添加后再查询");
        }
        for (int i = 0; i < list.size(); i++) {
            System.out.println("id" + "\t" + "姓名" + "\t" + "年龄" + "\t" + "家庭住址");
            if (list.get(i).getId().equals(id)){
                Student stu = list.get(i);
                System.out.println(stu.getId() +"\t"+ stu.getName() +"\t"+ stu.getAge() +"\t"+ stu.getAddress());
            }
        }
    }
    //5.根据id查是否有学生,有则返回学生在集合中的索引,无则返回-1
    public static int getIndex(ArrayList<Student> list,String id) {
        if (list.size() == 0){
            return -1;
        }
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getId().equals(id)){
                return i;
            }
        }
        return -1;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值