用ArrayList容器实现简易学生管理系统

创建学生类

package com.myStudent.domain;

public class Student {
    String sid; // 学生学号
    String name; // 学生姓名
    int age; // 学生年龄
    String birthday; // 学生生日

    public Student() {
    }

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

    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 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;
    }
}

主函数

package com.myStudent.test;

import com.myStudent.domain.Student;

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

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

        // 创建容器
        ArrayList<Student> stuList = new ArrayList<>();
        Scanner sc = new Scanner(System.in);

        lo:
        do {
            //1.搭建主界面菜单
            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("|                   6. 退  出                       |");
            System.out.println(" =================欢迎来到学生管理系统================= ");

            System.out.println("请输入选项进行操作······");

            int n = sc.nextInt();

            switch (n) {
                case 1: {
                    addStudent(stuList);
                    break;
                }
                case 2: {
                    removeStudent(stuList);
                    break;
                }
                case 3: {
                    updataStudent(stuList);
                    break;
                }
                case 4: {
                    selectStudent(stuList);
                    break;
                }
                case 5: {
                    Show(stuList);
                    break;
                }
                case 6: {
                    System.out.println("欢迎下次使用,再见!!!");
                    break lo;
                }
                default: {
                    System.out.println("没有该选项,请重新输入!");
                    break;
                }
            }
        } while (true);

    }

    // 打印容器中所有信息
    private static void Show(ArrayList<Student> stuList) {
        if(null == stuList || stuList.isEmpty()){
            System.out.println("无信息,请添加后重新查询!");
            return;
        }
        for (Student stu : stuList) {
            System.out.println(stu.getSid() + " " + stu.getName() + " " + stu.getAge() + " " + stu.getBirthday());
        }
    }

    // 返回学生索引,失败返回-1
    public static int getIndex(ArrayList<Student> stu, String sid){
        int index = -1;
        if(null != stu && !stu.isEmpty()){
            for(int i = 0; i < stu.size(); ++i){
                Student s = stu.get(i);
                if(sid.equals(s.getSid())) return i;
            }
        }
        return index;
    }

    // 修改学生
    private static void updataStudent(ArrayList<Student> stuList) {
        Scanner sc = new Scanner(System.in);
        int n = 0;
        // 1. 提示信息
        System.out.println("请输入需要修改的学生学号:");
        String sid = sc.next();
        // 2. 获取需要修改的学生对象
        int index = getIndex(stuList, sid);
        while (!sid.equals("0")) {
            if (index != -1) {
                System.out.println("当前学生信息为:");
                System.out.println(stuList.get(index).getSid() + " " + stuList.get(index).getName() + " "
                        + stuList.get(index).getAge() + " " + stuList.get(index).getBirthday());
                break;
            } else {
                System.out.println("没有该学生,请重新输入! 或 按 0 退出修改。");
                sid = sc.next();
                index = getIndex(stuList, sid);
            }
        }
        // 3. 修改
        if (sid.equals("0")) {
            System.out.println("修改失败!");
            return;
        }
        System.out.println("请输入更新的学生信息:");
        System.out.print("Sid:");
        stuList.get(index).setSid(sc.next());
        System.out.print("Name:");
        stuList.get(index).setName(sc.next());
        System.out.print("Age:");
        stuList.get(index).setAge(sc.nextInt());
        System.out.print("BirthDay:");
        stuList.get(index).setBirthday(sc.next());
        // 4. 打印修改后的学生信息
        // 5. 成功信息
        System.out.println("修改成功!");
        System.out.println(stuList.get(index).getSid() + " " + stuList.get(index).getName() + " "
                + stuList.get(index).getAge() + " " + stuList.get(index).getBirthday());
    }

    // 查询学生
    private static void selectStudent(ArrayList<Student> stuList) {
        Scanner sc = new Scanner(System.in);
        // 1.提示信息
        System.out.println("请输入学生学号进行查询:");
        String sid = sc.next();
        // 2.查询
        for (Student s : stuList) {
            if (s.getSid().equals(sid)) {
                System.out.println("查询成功!");
                System.out.println(s.getSid() + " " + s.getName() + " " + s.getAge() + " " + s.getBirthday());
                return;
            }
        }
        // 3.打印
        System.out.println("输入学号有误,查询失败!");
    }

    // 删除学生
    private static void removeStudent(ArrayList<Student> stuList) {
        Scanner sc = new Scanner(System.in);
        // 1. 给出录入提示信息
        // 2. 按条件删除
        System.out.println("请输入学号删除:");
        String sid = sc.next();
        for (int i = 0; i < stuList.size(); i++) {
            // 3. 删除容器中的对应信息
            if (stuList.get(i).getSid().equals(sid)) {
                System.out.println("删除成功!");
                System.out.println(stuList.get(i).getSid() + "  " + stuList.get(i).getName() + "  "
                        + stuList.get(i).getAge() + "  " + stuList.get(i).getBirthday());
                stuList.remove(i);
                return;
            }
        }
        // 4. 打印删除成功信息
        System.out.println("未找到您输入的学号,删除失败!");
    }

    // 添加学生
    public static void addStudent(ArrayList<Student> stuList) {
        Scanner sc = new Scanner(System.in);
        // 1.给出录入的提示信息
        int index = -1;
        String sid = null;
        do{
            if(index != -1){
                System.out.println("您输入的学号已存在,请勿重复添加!");
                System.out.println("请重新输入学号进行添加,按任意数继续添加,按 0 退出添加!");
                if(sc.nextInt() == 0) {
                    System.out.println("添加失败!");
                    return;
                }
            }
            System.out.println("请输入学号:");
            sid = sc.next();
            index = getIndex(stuList, sid);
        }while (index != -1);
        System.out.println("请输入姓名:");
        String name = sc.next();
        System.out.println("请输入年龄:");
        int age = sc.nextInt();
        System.out.println("请输入生日:");
        String brithday = sc.next();
        // 2.将键盘录入的信息封装为学生对象
        Student stu = new Student(sid, name, age, brithday);
        // 3.将封装好的学生对象,添加到集合容器当中
        stuList.add(stu);
        // 4.给出添加成功的提示信息
        stu = stuList.get(stuList.size() - 1);
        System.out.println(stu.getSid() + " " + stu.getName() + " " + stu.getAge() + " " + stu.getBirthday());
        System.out.println("添加成功!");
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值