天天看点

初学java,数组实现的简易学生管理系统

计科专业学生,大一遇上疫情在家没好好听课,java没学好,大四没有考研准备就从头开始学习,小小的记录一下。

package students;

public class student {
    private String id;
    private String name;
    private int age;
    private  String address;

    public student() {
    }

    public student(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;
    }
}
           
package students;

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

public class index {
    public static void main(String[] args) {
        ArrayList <student> stuList = 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 sc = new Scanner(System.in);
            String choose = sc.next();
            //判断输入数字进入对应功能
            switch (choose) {
                case "1": addstu(stuList);
                    break;
                case "2": delstu(stuList);
                    break;
                case "3": setstu(stuList);
                    break;
                case "4": {
                    boolean flag = true;
                    while (flag) {
                        System.out.println("单独查询请输入1,全部查询请输入2");
                        String choose1 = sc.next();
                        switch (choose1) {
                            case "1":
                                questu(stuList, 1);
                                flag = false;
                                break;
                            case "2":
                                questu(stuList, 2);
                                flag = false;
                                break;
                            default:
                                System.out.println("没有这个选项");
                        }
                    }
                    break;
                }
                case "5": System.exit(0);//退出系统
                default: System.out.println("没有这个选项");
                }
        }
    }
    //添加学生信息
    public static void addstu(ArrayList<student>  stuList){
        Scanner sc = new Scanner(System.in);
        //可以判断ID是否重复/判断是否需要继续添加 循环输入
        while (true) {
            student s = new student();
            boolean flag1 = true;
            boolean flag2 = false;
            System.out.println("请输入学生ID:");
            String ID = sc.next();
            //判断ID是否重复
            for (int i = 0; i < stuList.size(); i++) {
                student stu = stuList.get(i);
                if (ID.equals(stu.getId())){
                    flag1 = false;
                }
            }
            if (!flag1){
                System.out.println("该ID已存在");
            }
            //ID不重复则添加ID以及其他信息
            else {
                s.setId(ID);
                System.out.println("请输入学生姓名:");
                s.setName(sc.next());

                System.out.println("请输入学生年龄:");
                s.setAge(sc.nextInt());

                System.out.println("请输入学生家庭住址:");
                s.setAddress(sc.next());

                stuList.add(s);
                System.out.println("添加完成,是否继续添加?[Y/N]");
                //判断是否需要继续添加
                while (!flag2) {
                    String con=sc.next();
                    if (con.equals("y") || con.equals("Y")){
                        flag2 = true;
                    }
                    else if (con.equals("n") || con.equals("N")){
                        return;
                    }
                    else{
                        System.out.println("错误,请重新输入是否继续添加[Y/N]");
                    }
                }
            }
        }
    }

    public static void delstu(ArrayList<student> stuList){

        Scanner sc = new Scanner(System.in);
        int index = indexReturn(stuList);
        student stu = stuList.get(index);
        stuList.remove(index);
        System.out.println("已删除该学生信息");
    }
    //修改学生信息
    public static void setstu(ArrayList<student> stuList){
        Scanner sc = new Scanner(System.in);

            int index = indexReturn(stuList);
            student stu = stuList.get(index);
            while (true) {
                System.out.println("1.修改姓名:");
                System.out.println("2.修改年龄:");
                System.out.println("3.修改地址:");
                String choose = sc.next();
                switch (choose){
                    case "1":
                        System.out.println("请输入修改后的姓名:");
                        String name = sc.next();
                        stu.setName(name);
                        System.out.println("修改完成");
                        break;
                    case "2":
                        System.out.println("请输入修改后的年龄:");
                        int age = sc.nextInt();
                        stu.setAge(age);
                        System.out.println("修改完成");
                        break;
                    case "3":
                        System.out.println("请输入修改后的地址:");
                        String add = sc.next();
                        stu.setAddress(add);
                        System.out.println("修改完成");
                        break;
                    default:System.out.println("没有这个选项");
                    break;
                }
                System.out.println("是否继续修改[Y/N]");
                boolean flag2 = false;
                while (!flag2) {
                    String con=sc.next();
                    if (con.equals("y") || con.equals("Y")){
                        flag2 = true;
                    }
                    else if (con.equals("n") || con.equals("N")){
                        ;
                    }
                    else{
                        System.out.println("错误,请重新输入是否继续添加[Y/N]");
                    }
                }
            }


    }
    //查询学生信息
    public static void questu(ArrayList<student> stuList,int a){
        //判断是否有元素
        if (stuList.size() == 0){
            System.out.println("请先添加学生!");
            return;
        }
        //有则进行下一步输出
        System.out.println("id\t姓名\t年龄\t家庭住址");
        //单独学生查询
        if (a == 1) {
            int index = indexReturn(stuList);
            student stu = stuList.get(index);
            System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
        }

        //遍历全部元素
        if (a == 2) {
            for (int i = 0; i < stuList.size(); i++) {
                student stu = stuList.get(i);
                System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
            }
        }

    }
    //根据ID获取索引
    public static int indexReturn(ArrayList<student> stuList){
        int index;

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生ID");
        //未找到则循环
        while (true) {
            boolean flag = false;
            String ID = sc.next();
            for (int i = 0; i < stuList.size(); i++) {
                student stu = stuList.get(i);
                if (ID.equals(stu.getId())){
                    index = i;
                    return index;
                }
            }
            System.out.println("未找到当前ID学生,是否继续查找[Y/N]");
            while (!flag) {
                String con=sc.next();
                if (con.equals("y") || con.equals("Y")){
                    flag = true;
                }
                else if (con.equals("n") || con.equals("N")){
                    return 0;
                }
                else{
                    System.out.println("错误,请重新输入是否继续添加[Y/N]");
                }
            }
        }
    }
}