入门级-学生管理系统

学生管理系统

该系统主要功能如下:

  1. 定义一个 集合 容器用于存储全部学生 对象 的信息操作。
  2. 添加学生:通过键盘录入学生信息,添加到集合中。
  3. 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除。
  4. 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改。
  5. 查看学生:将集合中的学生对象信息进行展示。
  6. 退出系统:结束程序。

首先创建实体类Student表

package com.yk.sanuan;

/**
 * @author txg
 * @date 2022/7/15 20:27
 * 学生表
 */

public class Student {
    private String sid;
    private String name;
    private String age;
    private String address;
    public Student() {
    }
    public Student(String sid, String name, String age, String address) {
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }
    public String getSid() {
        return sid;
    }
    public void setSid(String sid) {
        this.sid = sid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

然后创建一个功能实现TestStudent.java

package com.yk.sanuan;

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

/**
 * @author txg
 * @date 2022/7/15 20:39
 * 学生管理系统
 * 该系统主要功能如下:
 * 定义一个 集合 容器用于存储全部学生 对象 的信息操作。
 * 添加学生:通过键盘录入学生信息,添加到集合中。
 * 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除。
 * 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改。
 * 查看学生:将集合中的学生对象信息进行展示。
 * 退出系统:结束程序。
 */

public class TestStudent {
    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>();
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.println("------------欢迎进入学生管理系统--------------");
            System.out.println("以下为操作步骤命令");
            System.out.println("1.添加学生信息:add");
            System.out.println("2.删除学生信息:delete");
            System.out.println("3.修改学生信息:update");
            System.out.println("4.查询学生信息:select");
            System.out.println("5.退出信息:exit");
            System.out.println("请输入您需要的操作命令:");
            String command = sc.nextLine();
            switch (command) {
                case "1":
                    addStudent(students);
                    System.out.println("添加信息成功");
                    break;
                case "2":
                    deleteStudent(students);
//                    System.out.println("删除信息成功");
                    break;
                case "3":
                    updateStudent(students);
//                    System.out.println("更新学生信息成功");
                    break;
                case "4":
                    selectStudent(students);
//                    System.out.println("查询学生信息成功");
                    break;
                case "5":
                    System.out.println("退出系统");
                    System.exit(0);
                    break;
                default:
                    System.out.println("输入有误,请重新输入命令!");

            }
            System.out.println("");
        }
    }

    /**
     * 添加学生信息
     *
     * @param students
     */
    public static void addStudent(ArrayList<Student> students) {
        System.out.println("=================添加学生信息============");
        // 直接定义扫描器,录入学生信息
        Scanner sc = new Scanner(System.in);
        String sid;
        // 接收学生信息
        while (true) {
            System.out.println("请您输入学号:");
            sid = sc.nextLine();
            // 判断学号是否重复
            boolean bool = isSIdRepeat(sid, students);
            if (bool) {
                System.out.println("您输入的学号重复!");
            } else {
                break;
            }
        }
        System.out.println("请您输入姓名:");
        String name = sc.nextLine();
        System.out.println("请您输入年龄:");
        String age = sc.nextLine();
        System.out.println("请您输入地址:");
        String address = sc.nextLine();
        // 封装学生信息
        Student student = new Student(sid, name, age, address);
        // 添加学生对象到集合容器
        students.add(student);
    }

    /**
     * 删除某个学生的信息
     *
     * @param students
     */
    public static void deleteStudent(ArrayList<Student> students) {
        System.out.println("=================删除学生信息============");
        if (students.size() > 0) {
            while (true) {
                System.out.println("请您删除要删除的学号:");
                Scanner sc = new Scanner(System.in);
                String sid = sc.nextLine();
                // 判断学号是否存在
                Boolean bool = isSIdRepeat(sid, students);
                if (bool) {
                    int i = getIndex(sid, students);
                    students.remove(i);
                    break;
                } else {
                    System.out.println("您删除的学生不存在");
                    System.out.println("请问您要继续吗? Y/N");
                    String rs = sc.nextLine();
                    if ("N".equals(rs)) {
                        break;
                    }
                }
            }
        } else {
            System.out.println("学生信息为空,请先添加学生信息!");
        }
    }

    /**
     * 修改某个学生的信息
     *
     * @param students
     */
    public static void updateStudent(ArrayList<Student> students) {
        System.out.println("=================修改学生信息============");
        Scanner sc = new Scanner(System.in);
        if (students.size() > 0) {
            while (true) {
                System.out.println("请输入要修改的学生的学号:");
                String sid = sc.nextLine();
                // 判断学号是否存在
                Boolean bool = isSIdRepeat(sid, students);
                if (bool) {
                    // 获取到对象集合中的角标
                    int index = getIndex(sid, students);
                    // 用户输入新的学生信息
                    System.out.println("请您输入姓名:");
                    String name = sc.nextLine();
                    System.out.println("请您输入年龄:");
                    String age = sc.nextLine();
                    System.out.println("请您输入地址:");
                    String address = sc.nextLine();
                    Student newStu = new Student(sid, name, age, address);
                    students.set(index, newStu);
                    System.out.println("修改学生信息成功");
                    break;
                } else {
                    System.out.println("您需要修改的学生不存在!");
                    System.out.println("请问您要继续吗? Y/N");
                    String rs = sc.nextLine();
                    if ("N".equals(rs)) {
                        break;
                    }
                }
            }
        } else {
            System.out.println("学生信息为空,请先添加学生信息!");
        }
    }

    /**
     * 查询全部学生信息
     *
     * @param students
     */
    private static void selectStudent(ArrayList<Student> students) {
        System.out.println("学生信息为:");
        if (students.size() > 0) {
            System.out.println("学号\t\t姓名\t\t年龄\t\t住址");
            for (int i = 0; i < students.size(); i++) {
                Student s = students.get(i);
                StringBuilder sb = new StringBuilder();
                System.out.println(sb.append(s.getSid()).append("\t\t").append(s.getName()).append("\t\t").append(s.getAge()).append("\t\t").append(s.getAddress()));
            }
        } else {
            System.out.println("学生信息为空,请先添加学生信息!");
        }
    }

    /**
     * 判断学生的学号是否重复
     *
     * @param sid
     * @param students
     * @return true 代表重复 false 代表没有重复
     */
    public static boolean isSIdRepeat(String sid, ArrayList<Student> students) {
        // 遍历集合获取到所有学生对象,并判断学号是否重复
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            if (sid.equals(s.getSid())) {
                return true;
            }
        }
        return false;
    }

    /**
     * 获取对象在集合中的索引
     *
     * @param sid
     * @param students
     * @return
     */
    public static int getIndex(String sid, ArrayList<Student> students) {
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            if (sid.equals(s.getSid())) {
                return i;
            }
        }
        return -1;
    }
}

运行结果:添加信息

运行结果:修改信息

运行结果:查询信息 

运行结果:删除信息 

运行结果:输入错误命令,退出系统

 如果您感觉这篇文章,对您有所收获,希望您积极评论转发,传送给合适的人,让我们一起学习进步。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值