java基础实训:利用ArrayList制作一个学生管理系统

利用ArrayList制作一个学生管理系统

学生实体类代码:

package train.base.studentManagerSystem;

// Student实体类
public class Student {
    private int uid;
    private String name;
    private int age;

    // 无参构造
    public Student() {
    }

    // 有参构造
    public Student(int uid, String name, int age) {
        this.uid = uid;
        this.name = name;
        this.age = age;
    }

    // setter和getter
    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

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

主程序代码:

package train.base.studentManagerSystem;

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

public class Application {
    public static void main(String[] args) {
        // 实例化一个数组列表
        ArrayList<Student> arrayList = new ArrayList<>();

        // 利用死循环持续应用
        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("请选择您需要的功能:");

            // 实例化一个扫描器接收选择
            Scanner scanner = new Scanner(System.in);
            int input = scanner.nextInt();
            switch (input) {
                case 1:
                    addStudent(arrayList);
                    break;
                case 2:
                    deleteStudent(arrayList);
                    break;
                case 3:
                    updateStudent(arrayList);
                    break;
                case 4:
                    lookOver(arrayList);
                    break;
                case 5:
                    // 关闭JVM
                    System.exit(0);
            }
        }
    }

    // 添加学生方法
    public static void addStudent(ArrayList<Student> arrayList) {
        // 利用自定义的工具方法input()获取输入的对象
        Student student = input();
        arrayList.add(student);
    }

    // 删除学生方法
    public static void deleteStudent(ArrayList<Student> arrayList) {
        // 利用自定义的工具方法findIndex()找到输入学号对应的索引
        int index = findIndex(arrayList);
        // 如果找到就删
        if (index != -1) {
            // 删除学生
            arrayList.remove(index);
            System.out.println("删除成功");
        }else {
            System.out.println("没找到该学号,可以查看后在使用该功能");
        }
    }

    // 修改学生方法
    public static void updateStudent(ArrayList<Student> arrayList) {
        // 利用findIndex()找到输入学号对应的索引
        int index = findIndex(arrayList);
        // 如果找到就修改
        if (index != -1) {
            // 提示
            System.out.println("输入修改后的数据:");
            // 利用自定义的工具方法input()获取输入的对象
            Student student = input();
            // 修改
            arrayList.set(index,student);
            System.out.println("修改成功");
        }else {
            System.out.println("没找到该学号,可以查看后在使用该功能");
        }

    }

    // 查看所有学生
    public static void lookOver(ArrayList<Student> arrayList) {
        System.out.println("学号\t\t姓名\t\t年龄");
        // 通过遍历打印所有元素
        for (int i = 0; i < arrayList.size(); i++) {
            Student student = arrayList.get(i);
            int uid = student.getUid();
            String name = student.getName();
            int age = student.getAge();
            System.out.println(uid + "\t\t" + name + "\t\t" + age);
        }
    }

    /*
     * 下面为工具方法,解耦
     * */

    // 接收输入方法
    public static Student input() {
        // 实例化一个扫描器
        Scanner scanner = new Scanner(System.in);
        // 接收输入
        System.out.println("请输入学号");
        int uid = scanner.nextInt();
        System.out.println("请输入姓名");
        String name = scanner.next();
        System.out.println("请输入年龄");
        int age = scanner.nextInt();

        // 利用有参构造器实例化student
        Student student = new Student(uid, name, age);

        return student;
    }

    // 通过学号查找索引
    public static int findIndex(ArrayList<Student> arrayList) {
        System.out.println("请输入学号:");
        // 实例化扫描器接收输入
        int inputUid = new Scanner(System.in).nextInt();

        // 定义一个index用于返回,默认为-1
        int index = -1;

        for (int i = 0; i < arrayList.size(); i++) {
            int uid = arrayList.get(i).getUid();
            if (uid == inputUid) {
                index = i;
            }
        }

        // 未找到index为-1
        return index;
    }
}
posted @ 2022-02-05 22:38  CoderCatIce  阅读(111)  评论(0编辑  收藏  举报