用集合创建一个学生管理系统,能进行增删查改的Java代码

import java.util.*;
import java.util.Random;

public class test11 {

    public static void main(String[] args) {
        ArrayList<Student1> studentsList = new ArrayList<>();
        Student1 s1 = new Student1("0001", "wangwu", 17, "xianggang");
        studentsList.add(s1);
        Student1 s2 = new Student1("0002", "xiaogan", 18, "hunan");
        studentsList.add(s2);
        Student1 s3 = new Student1("0003", "zhangsan", 20, "hubei");
        studentsList.add(s3);
        Student1 s4 = new Student1("0004", "lisi", 21, "shanghai");
        studentsList.add(s4);
        xuanzhe(studentsList);
    }

    public static void xuanzhe(ArrayList<Student1> studentsList) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("输入1,查找学生");
            System.out.println("输入2,插入学生");
            System.out.println("输入3,删除学生");
            System.out.println("输入4,修改学生信息");
            System.out.println("输入5,结束运行");
            System.out.println("请输入数字,选择进行的操作");

            int number = sc.nextInt();
            if (number == 1) {
                getStudent(studentsList);
            } else if (number == 2) {
                insert(studentsList);
            } else if (number == 3) {
                delete(studentsList);
            } else if (number == 4) {
                xiugai(studentsList);
            } else if (number == 5) {
                System.exit(0); // 当选择5时,退出程序
            }
        }
    }

    public static void getStudent(ArrayList<Student1> studentsList) {
        System.out.println("输入1,用学生姓名查找学生信息");
        System.out.println("输入2,用学生学号查找学生信息");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字");
        int choice = sc.nextInt();

        if (choice == 1) {
            String name = sc.next();
            int index = check1(name, studentsList);
            if (index != -1) {
                Student1 std1 = studentsList.get(index);
                System.out.println("学号为:" + std1.getID());
                System.out.println("姓名为:" + std1.getName());
                System.out.println("年龄为:" + std1.getAge());
                System.out.println("家庭地址为:" + std1.getAddress());
                xuanzhe(studentsList);
            } else {
                System.out.println("没有找到该学生,该学生不存在或者查找的信息错误");
                System.out.println("请再一次操作");
                getStudent(studentsList);
            }
        } else if (choice == 2) {
            String ID = sc.next();
            int index = check(ID, studentsList);
            if (index != -1) {
                Student1 std1 = studentsList.get(index);
                System.out.println("学号为:" + std1.getID());
                System.out.println("姓名为:" + std1.getName());
                System.out.println("年龄为:" + std1.getAge());
                System.out.println("家庭地址为:" + std1.getAddress());
                xuanzhe(studentsList);
            } else {
                System.out.println("没有找到该学生,该学生不存在或者查找的信息错误");
                System.out.println("请再一次操作");
                getStudent(studentsList);
            }
        }
    }

    public static int check(String ID, ArrayList<Student1> studentsList) {  // 比对系统中是否存在该学生
        for (int i = 0; i < studentsList.size(); i++) {
            Student1 std = studentsList.get(i);
            if (std.getID().equals(ID)) {
                return i;
            }
        }
        return -1;
    }

    public static int check1(String name, ArrayList<Student1> studentsList) {   // 比对系统中是否存在该学生
        for (int i = 0; i < studentsList.size(); i++) {
            Student1 std = studentsList.get(i);
            if (std.getName().equals(name)) {
                return i;
            }
        }
        return -1;
    }

    public static void insert(ArrayList<Student1> studentsList) {
        Scanner sc = new Scanner(System.in);
        Student1 std = new Student1();
        System.out.println("请输入学生姓名");
        String name = sc.next();
        std.setName(name);
        System.out.println("请输入学年龄");
        int age = sc.nextInt();
        std.setAge(age);
        System.out.println("请输入学生家庭住址");
        String address = sc.next();
        std.setAddress(address);
        String ID = xuehao(studentsList); // 调用函数,自动生成学生学号;
        std.setID(ID);
        studentsList.add(std);
        xuanzhe(studentsList);
    }

    public static String xuehao(ArrayList<Student1> studentsList) {
        int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        String result = "";
        Random r = new Random();
        while (true) {
            result = "";
            for (int i = 0; i < 4; i++) {
                int index = r.nextInt(10);
                result += arr[index]; // 直接将整数添加到字符串中
            }
            int t = check(result, studentsList);
            if (t == -1) {
                return result;
            } else {
                xuehao(studentsList);
            }
        }
    }

    public static void delete(ArrayList<Student1> studentsList) { // 删除学生的方法
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除学生的姓名");
        String name = sc.next();
        System.out.println("请输入要删除学生的学号");
        String ID = sc.next();
        int index1 = check(ID, studentsList);
        int index2 = check1(name, studentsList);
        if (index1 == index2) { // 验证要删除的学生信息是否正确,比对姓名与学号信息是否一致;
            studentsList.remove(index1);
        } else {
            System.out.println("请重新输入要删除的学生信息");
            delete(studentsList);
        }
        xuanzhe(studentsList);
    }

    public static void xiugai(ArrayList<Student1> studentsList) { // 修改学生信息的方法;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改的学生的学号");
        String ID = sc.next();
        int index = check(ID, studentsList);
        if (index != -1) {
            Student1 std = studentsList.get(index);
            System.out.println("请输入要修改学生的年龄");
            int age = sc.nextInt();
            std.setAge(age);
            System.out.println("请输入要修改学生的家庭地址");
            String address = sc.next();
            std.setAddress(address);
            xuanzhe(studentsList);
        } else {
            System.out.println("要修改的学生不存在,请重新输入要修改的学生的学号");
            xiugai(studentsList);
        }
    }
}

import java.util.Objects;

public class Student1 {//创建学生信息的类;
    private String ID;//学生的学号;
    private String name;//学生姓名;
    private int age;//学生年龄;
    private String address;//学生的家庭住址;

    public Student1() {
    }

    public Student1(String ID, String name, int age, String address) {
        this.ID = ID;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    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 getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student1 student1 = (Student1) o;
        return age == student1.age && Objects.equals(ID, student1.ID) && Objects.equals(name, student1.name) && Objects.equals(address, student1.address);
    }

    @Override
    public int hashCode() {
        return Objects.hash(ID, name, age, address);
    }
}

1.通过这些小的程序,让我了解了Java的基本语法;

2.了解了一些Java类创建和封装

3.了解了一些编程的思想,对复杂问题进行拆分,让问题由复杂化变成简单的小问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值