控制台的主界面可以自己设计

在主界面代码里修改即可

添加模块展示

Java学生信息管理系统多个表 用java写学生信息管理系统_java

 查询模块展示

全部查询

Java学生信息管理系统多个表 用java写学生信息管理系统_Java学生信息管理系统多个表_02

学号查询

Java学生信息管理系统多个表 用java写学生信息管理系统_java_03

删除模块展示

Java学生信息管理系统多个表 用java写学生信息管理系统_arraylist_04

 

Java学生信息管理系统多个表 用java写学生信息管理系统_Java学生信息管理系统多个表_05

修改模块展示

Java学生信息管理系统多个表 用java写学生信息管理系统_arraylist_04

Java学生信息管理系统多个表 用java写学生信息管理系统_System_07

 退出系统

Java学生信息管理系统多个表 用java写学生信息管理系统_Java学生信息管理系统多个表_08

主界面:

public class MyTest {
    public static void main(String[] args) {
        ArrayList<Person> arrayList = new ArrayList<Person>();
        AppService appService = new AppServiceImpl();
        boolean isFOR=true;

        while(isFOR){
            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 imports=sc.nextLine();
            switch (imports){
                case "1":
                    appService.add(arrayList);
                    break;
                case "2":
                    appService.del(arrayList);
                    break;
                case "3":
                    appService.mod(arrayList);
                    break;
                case "4":
                    appService.inquire(arrayList);
                    break;
                case"5":
                    isFOR = appService.tuichu();
                    break;
//                default:

//                    System.out.println("谢谢你的使用");



            }
        }
        System.exit(0);
    }



}

功能接口:

public interface AppService {
    public void add(ArrayList<Person> arrayList);

    public void del(ArrayList<Person> arrayList);

    public void mod(ArrayList<Person> arrayList);

    public void inquire(ArrayList<Person> arrayList);

    public boolean tuichu();
}

接口实现类:

public class AppServiceImpl implements AppService {

    Scanner scan = new Scanner(System.in);

    @Override
    public void add(ArrayList arrayList) {
        //每次增加都new一个新的Person对象
        Person person = new Person();
        try{
            System.out.println("请输入学生学号:");

            person.setId(scan.nextInt());

            System.out.println("请输入学生姓名:");
            person.setName(scan.next());

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

            System.out.println("请输入学生性别:");
            person.setGender(scan.next());
        }catch (Exception e){
            String message = e.getMessage();
            System.out.println("添加完成");
        }

        arrayList.add(person);
    }



    @Override
    public void del(ArrayList arrayList) {
        System.out.println("请输入要删除的id");
        Integer delid = scan.nextInt();

        for (int x = 0; x < arrayList.size(); x++) {
            Person o = (Person) arrayList.get(x);
            if (delid == o.getId()) {
                arrayList.remove(x);
            }
        }
        System.out.println("删除完成!");


    }




    @Override
    public void mod(ArrayList arrayList) {
        //在操作台上显示让用户输入要修改的对象的学号
        System.out.println("请输入要修改的对象的学号:");
        //定义一个int类型接受数据
        int modId = scan.nextInt();
        //定义一个int类型用来判断输入的学号是否存在
        int index = -123;
        //用for循环遍历list的集合对象
        for (int x = 0; x < arrayList.size(); x++) {
            //把即合理遍历出来的对象取出来给一个Person类
            Person o = (Person) arrayList.get(x);
            //判断每一个遍历出来的person类里的getId返回有没有和用户输入的值一样的
            if (o.getId() == modId) {
                //如果有一样的话就把这个对象在离合里的角码赋给index,用来标识用户输入的学号在集合存在可以进行下一步操作
                index = x;
                //当判断到存在的话终止循环
                break;
            }
        }
        //根据index的值是否变化来判断用户输入的id是否在集合中存在
        if (index == -123) {
            //不存在的话输出到控制台“输入错我,请从新输入”
            System.out.println("输入错误,请重新输入!");
        } else {
            //存在的话请用户在控制台上按操作提示输入信息
            System.out.println("请输入学生新姓名:");
            String modname = scan.next();
            System.out.println("请输入学生新年龄:");
            Integer modage = scan.nextInt();
            System.out.println("请输入学生新性别:");
            String modgender = scan.next();

            //new 一个新的对象p
            Person p = new Person();
            //分别把id、name、age、gender都赋给p的set'方法
            p.setId(modId);
            p.setName(modname);
            p.setAge(modage);
            p.setGender(modgender);
            //把新的对象放置到集合中原学号为index的对象的位置上去
            arrayList.set(index, p);
            //返回给控制台操作完成
            System.out.println("学生信息修改成功");

        }


    }




    @Override
    public void inquire(ArrayList arrayList) {

        System.out.println("全部查询/学号查询(1/2)");
        //用来接收用户在控制台输入的全部查询还是单例查询的语句
        int i1 = scan.nextInt();
        //判断用户输入的语句,如果输入为1的话那么为全例查询
        if (i1 == 1) {
            //控制台显示的语句
            System.out.println("全部学生信息");
//            System.out.println("学生信息如下:");
            System.out.println("学号----姓名----年龄----性别");
            //遍历集合中的元素,根据集合的大小和来遍历
            for (int i = 0; i < arrayList.size(); i++) {
                //把集合里的每一个元素付给一个person类型的对象
                Person o = (Person) arrayList.get(i);
                //输出这个person类型对象里的全部数据到控制台
                System.out.println(o.getId() + "----" + o.getName() + "----" + o.getAge() + "----" + o.getGender());
            }
        //判断用户输入的语句,如果输入为2的话,那么为单例查询
        } else if (i1 == 2) {
            //定义一个boolean类型变量用来控制循环
            boolean YesNO = true;
            //开始while循环
            while(YesNO){

                System.out.println("请输入要查询的学生学号:");
                //根据上述提示接受用户在控制台输入的数据
                int i2 = scan.nextInt();

                //定义一个变量用来确定用户输入的数据Id在集合中的元素中是否包含
                int index = -121;
                //根据for循环来遍历集合
                for (int x = 0;x< arrayList.size();x++){
                    //用Person对象来接受集合里的元素
                    Person p = (Person) arrayList.get(x);
                    //判断集合里是否包含id为用户输入的元素存在
                    if (p.getId() == i2){
                        //如果存在的话把表示变为该元素的下角标
                        index =x;
                        break;
                    }
                }


                if (index == -121){
                    System.out.println("输入错误,请重新输入!");
                    System.out.println("退出输入请按-1");
                    if (i2 == -1){
                        YesNO = false;
                    }
                }else {
                    System.out.println("学号" + i2 + "的学生信息");
                    System.out.println("学号----姓名----年龄----性别");
                    Person o = (Person) arrayList.get(index);
                    System.out.println(o.getId() + "----" + o.getName() + "----" + o.getAge() + "----" + o.getGender());
                    System.out.println("\n\n");
                    YesNO = false;


                        }

                    }

            }


            }







    @Override
    public boolean  tuichu() {
        //定义一个boolean类型变量返回给主页面,判断是否终止循环
        boolean x = true;
        System.out.println("确认退出系统?(y/n)");
        //让用户在控制台上输入
        String next = scan.next();
        //判断用户输入的数据
        if (next.equals("y")){
            //如果用户输入确定退出那么在控制台输出该语句
            System.out.println("欢迎再次使用本系统");
//            System.exit(0);
            //赋给x的值修改为false
            x = false;
            //如果用户输入否那么在控制台输出返回主页面当前的x为true返回值也为true,继续循环
        }else if (next.equals("n")){
            System.out.println("返回主页面");
        }
        //经过上述把用户输入值判断之后返回给主函数的值,用来判断是否继续进行循环
        return x;
    }
}