Java,用ArrayList实现学生成绩的查询和删除

img


Java,用ArrayList实现学生成绩的查询和删除,用索引值去查找

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/384518
  • 你也可以参考下这篇文章:Java学习_集合练习ArrayList_使用ArrayList实现循环取出Student中的多条学生信息
  • 除此之外, 这篇博客: Java使用数组实现ArrayList的动态扩容中的 Java使用数组实现ArrayList的动态扩容 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 提到数组大家肯定不会陌生,但我们也知道数组有个缺点就是在创建时就确定了长度,之后就不能更改长度。所以Java官方向我们提供了ArrayList这个可变长的容器。其实ArrayList底层也是用数组进行实现的,今天我们就自己使用数组实现ArrayList的功能。

  • 您还可以看一下 多编程老师的看动画,学Java集合课程中的 ArrayList 特点及优缺点小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    使用ArrayList实现学生成绩的查询和删除功能可以按照以下步骤进行:

    1. 定义学生类及其成员变量,如参考资料中的段落3所示。

    2. 创建一个ArrayList对象,用来存放学生信息。

    ArrayList<Student> students = new ArrayList<>();
    
    1. 添加学生信息,可以将输入等操作封装成一个方法。
    public static void addStudent(ArrayList<Student> students) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入学号:");
        String sid = scanner.nextLine();
        System.out.print("请输入姓名:");
        String name = scanner.nextLine();
        System.out.print("请输入年龄:");
        String age = scanner.nextLine();
        System.out.print("请输入地址:");
        String address = scanner.nextLine();
        Student student = new Student(sid, name, age, address);
        students.add(student);
        System.out.println("添加成功!");
    }
    
    1. 删除学生信息,封装成一个方法,使用remove方法去删除对应的学生信息。
    public static void removeStudent(ArrayList<Student> students, int index) {
        if (index < 0 || index >= students.size()) {
            System.out.println("删除失败:查无此人!");
            return;
        }
        Student student = students.remove(index);
        System.out.println("删除成功:" + student.toString());
    }
    
    1. 查询学生信息,封装成一个方法,使用get方法获取对应的学生信息。
    public static void getStudent(ArrayList<Student> students, int index) {
        if (index < 0 || index >= students.size()) {
            System.out.println("查询失败:查无此人!");
            return;
        }
        Student student = students.get(index);
        System.out.println(student.toString());
    }
    
    1. 循环显示主菜单,并根据用户输入执行相应的操作。
    while (true) {
        System.out.println("------欢迎使用学生成绩管理系统------");
        System.out.println("1.添加学生\t2.删除学生\t3.查询学生\t4.退出系统");
        System.out.print("请选择操作:");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt();
        switch (choice) {
            case 1:
                addStudent(students);
                break;
            case 2:
                System.out.print("请输入要删除学生的索引:");
                int removeIndex = scanner.nextInt();
                removeStudent(students, removeIndex);
                break;
            case 3:
                System.out.print("请输入要查询学生的索引:");
                int getIndex = scanner.nextInt();
                getStudent(students, getIndex);
                break;
            case 4:
                System.out.println("已退出!");
                System.exit(0);
            default:
                System.out.println("输入有误,请重新输入!");
        }
    }
    

    最终的完整代码如下:

    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class StudentManagementSystem {
        public static void main(String[] args) {
            ArrayList<Student> students = new ArrayList<>();
            while (true) {
                System.out.println("------欢迎使用学生成绩管理系统------");
                System.out.println("1.添加学生\t2.删除学生\t3.查询学生\t4.退出系统");
                System.out.print("请选择操作:");
                Scanner scanner = new Scanner(System.in);
                int choice = scanner.nextInt();
                switch (choice) {
                    case 1:
                        addStudent(students);
                        break;
                    case 2:
                        System.out.print("请输入要删除学生的索引:");
                        int removeIndex = scanner.nextInt();
                        removeStudent(students, removeIndex);
                        break;
                    case 3:
                        System.out.print("请输入要查询学生的索引:");
                        int getIndex = scanner.nextInt();
                        getStudent(students, getIndex);
                        break;
                    case 4:
                        System.out.println("已退出!");
                        System.exit(0);
                    default:
                        System.out.println("输入有误,请重新输入!");
                }
            }
        }
    
        public static void addStudent(ArrayList<Student> students) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入学号:");
            String sid = scanner.nextLine();
            System.out.print("请输入姓名:");
            String name = scanner.nextLine();
            System.out.print("请输入年龄:");
            String age = scanner.nextLine();
            System.out.print("请输入地址:");
            String address = scanner.nextLine();
            Student student = new Student(sid, name, age, address);
            students.add(student);
            System.out.println("添加成功!");
        }
    
        public static void removeStudent(ArrayList<Student> students, int index) {
            if (index < 0 || index >= students.size()) {
                System.out.println("删除失败:查无此人!");
                return;
            }
            Student student = students.remove(index);
            System.out.println("删除成功:" + student.toString());
        }
    
        public static void getStudent(ArrayList<Student> students, int index) {
            if (index < 0 || index >= students.size()) {
                System.out.println("查询失败:查无此人!");
                return;
            }
            Student student = students.get(index);
            System.out.println(student.toString());
        }
    }
    
    class Student {
        private String sid;
        private String name;
        private String age;
        private String address;
    
        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;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "sid='" + sid + '\'' +
                    ", name='" + name + '\'' +
                    ", age='" + age + '\'' +
                    ", address='" + address + '\'' +
                    '}';
        }
    }