首页 > 其他分享 >一个简单的学生管理系统的实现代码

一个简单的学生管理系统的实现代码

时间:2023-11-12 23:32:24浏览次数:33  
标签:管理系统 代码 list System 学生 println id out


 2.1学生管理系统实现步骤

  • 案例需求
    针对目前我们的所学内容,完成一个综合案例:学生管理系统。该系统主要功能如下:
    添加学生:通过键盘录入学生信息,添加到集合中
    删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
    修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
    查看学生:将集合中的学生对象信息进行展示
    退出系统:结束程序
  • 实现步骤
  1. 定义学生类,包含以下成员变量
    private String sid // 学生id
    private String name // 学生姓名
    private String age // 学生年龄
    private String address // 学生所在地
  2. 学生管理系统主界面的搭建步骤
     2.1 用输出语句完成主界面的编写                                                                           2.2 用Scanner实现键盘输入                                                                                     2.3 用switch语句完成选择的功能                                                                               2.4 用循环完成功能结束后再次回到主界面
  3. 学生管理系统的添加学生功能实现步骤
    3.1 定义一个方法,接收ArrayList<Student>集合                                                        3.2 方法内完成添加学生的功能                                                                                          ①键盘录入学生信息                                                                                                    ②根据录入的信息创建学生对象                                                                                  ③将学生对象添加到集合中                                                                                        ④提示添加成功信息                                                                                             3.3 在添加学生的选项里调用添加学生的方法
  4. 学生管理系统的查看学生功能实现步骤
    4.1 定义一个方法,接收ArrayList<Student>集合                                                      4.2 方法内遍历集合,将学生信息进行输出                                                                4.3 在查看所有学生选项里调用查看学生方法
  5. 学生管理系统的删除学生功能实现步骤
    5.1 定义一个方法,接收ArrayList<Student>集合                                                    5.2 方法中接收要删除学生的学号                                                                                5.3 遍历集合,获取每个学生对象                                                                           5.4 使用学生对象的学号和录入的要删除的学号进行比较,如果相同,则将当前学生   对象从集合中删除                                                                                                      5.5 在删除学生选项里调用删除学生的方法
  6. 学生管理系统的修改学生功能实现步骤
    6.1 定义一个方法,接收ArrayList<Student>集合                                                    6.2 方法中接收要修改学生的学号                                                                                6.3 通过键盘录入学生对象所需的信息,并创建对象                                              6.4 遍历集合,获取每一个学生对象。并和录入的修改学生学号进行比较.如果相同,则使用新学生对象替换当前学生对象                                                                  6.5 在修改学生选项里调用修改学生的方法
  7. 退出系统
    使用System.exit(0);退出JVM

2.2学生类的定义

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

    //下面是空参,有参,get和set方法
}

一个简单的学生管理系统的实现代码_System

2.3测试类的定义

public class StudentSystem {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        loop:
        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" -> addStudent(list);
                case "2" -> deleteStudent(list);
                case "3" -> updateStudent(list);
                case "4" -> queryStudent(list);
                case "5" -> {
                    System.out.println("退出");
                    //break loop;
                    System.exit(0);//停止虚拟机运行
                }
                default -> System.out.println("没有这个选项");
            }
        }
    }

    //添加学生
    public static void addStudent(ArrayList<Student> list) {
        //利用空参构造先创建学生对象
        Student s = new Student();

        Scanner sc = new Scanner(System.in);
        String id = null;
        while (true) {
            System.out.println("请输入学生的id");
            id = sc.next();
            boolean flag = contains(list, id);
            if(flag){
                //表示id已经存在,需要重新录入
                System.out.println("id已经存在,请重新录入");
            }else{
                //表示id不存在,表示可以使用
                s.setId(id);
                break;
            }
        }

        System.out.println("请输入学生的姓名");
        String name = sc.next();
        s.setName(name);

        System.out.println("请输入学生的年龄");
        int age = sc.nextInt();
        s.setAge(age);

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


        //把学生对象添加到集合当中
        list.add(s);

        //提示一下用户
        System.out.println("学生信息添加成功");
    }

    //删除学生
    public static void deleteStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的id");
        String id = sc.next();
        //查询id在集合中的索引
        int index = getIndex(list, id);
        //对index进行判断
        //如果-1,就表示不存在,结束方法,回到初始菜单
        if(index >= 0){
            //如果大于等于0的,表示存在,直接删除
            list.remove(index);
            System.out.println("id为:" + id + "的学生删除成功");
        }else{
            System.out.println("id不存在,删除失败");
        }
    }

    //修改学生
    public static void updateStudent(ArrayList<Student> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要修改学生的id");
        String id = sc.next();

        int index = getIndex(list, id);

        if(index == -1){
            System.out.println("要修改的id" + id + "不存在,请重新输入");
            return;
        }

        //当代码执行到这里,表示什么?表示当前id是存在的。
        //获取要修改的学生对象
        Student stu = list.get(index);

        //输入其他的信息并修改
        System.out.println("请输入要修改的学生姓名");
        String newName = sc.next();
        stu.setName(newName);

        System.out.println("请输入要修改的学生年龄");
        int newAge = sc.nextInt();
        stu.setAge(newAge);

        System.out.println("请输入要修改的学生家庭住址");
        String newAddress = sc.next();
        stu.setAddress(newAddress);

        System.out.println("学生信息修改成功");


    }


    //查询学生
    public static void queryStudent(ArrayList<Student> list) {
        if (list.size() == 0) {
            System.out.println("当前无学生信息,请添加后再查询");
            //结束方法
            return;
        }

        //打印表头信息
        System.out.println("id\t\t姓名\t年龄\t家庭住址");
        //当代码执行到这里,表示集合中是有数据的
        for (int i = 0; i < list.size(); i++) {
            Student stu = list.get(i);
            System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());
        }
    }


    //判断id在集合中是否存在
    public static boolean contains(ArrayList<Student> list, String id) {
        //循环遍历集合得到里面的每一个学生对象
        /*for (int i = 0; i < list.size(); i++) {
            //拿到学生对象后,获取id并进行判断
            Student stu = list.get(i);
            String sid = stu.getId();
            if(sid.equals(id)){
                //存在,true
                return true;
            }
        }
        // 不存在false
        return false;*/
       return getIndex(list,id) >= 0;
    }

    //通过id获取索引的方法
    public static int getIndex(ArrayList<Student> list, String id){
        //遍历集合
        for (int i = 0; i < list.size(); i++) {
            //得到每一个学生对象
            Student stu = list.get(i);
            //得到每一个学生对象的id
            String sid = stu.getId();
            //拿着集合中的学生id跟要查询的id进行比较
            if(sid.equals(id)){
                //如果一样,那么就返回索引
                return i;
            }
        }
        //当循环结束之后还没有找到,就表示不存在,返回-1.
        return -1;
    }
}

一个简单的学生管理系统的实现代码_System_02



标签:管理系统,代码,list,System,学生,println,id,out
From: https://blog.51cto.com/u_16265376/8331850

相关文章

  • 质量管理系统(QMS)
    本期带来QMS系统,该系统工作中不是非常常见,通过本文友友们可以对这个系统有整体了解,闲言少叙,开始。一、定义质量管理系统(QMS)是一种管理方法论,旨在确保产品或服务能够满足客户需求和期望,同时也是确保组织持续改进其业务和流程的方法。QMS包括一系列的组织策略、流程、程序、资源......
  • 怎样用代码处理大数据量数据不会让服务器oom
    处理大数据量时,可以采取一些策略来避免服务器因内存不足而发生OOM(内存溢出)错误。以下是一些常见的处理大数据量的代码技巧和策略:分批处理数据:将大数据集分成小批次进行处理,避免一次性加载全部数据到内存中。可以使用循环迭代数据集的部分,逐步处理每个批次,并在处理完每个批次后及时......
  • 房屋租赁管理系统源码 (课设) 房屋管理系统 租房管理系统
    项目源码获取方式放在文章末尾处项目技术数据库:Mysql5.7(或Mysql8.0)数据表:6张开发语言:Java(jdk1.8)开发工具:idea前端技术:Vue后端技术:Springboot 功能简介该项目是一个房屋租赁系统,分为房东端,租客端。 房东端        房屋信息操作        租金操作       ......
  • 基于SSM框架的仓库管理系统源码 (课设) 仓储管理系统
    项目源码获取方式放在文章末尾处项目技术数据库:Mysql5.7(或8.0)数据表:15张开发语言:Java(jdk1.8)开发工具:idea前端技术:Jsp+Bootstrap后端技术:SMM 功能简介该项目是一个仓库管理系统,分为管理员端和仓管员端。 管理员端:       库存管理            库存查询 ......
  • SharePoint 页面中插入自定义代码
    我们都知道SharePoint是对页面进行编辑的。对于一些有编程基础的人来说,可能需要对页面中插入代码,这样才能更好的对页面进行配置。但是在新版本的SharePointmodern页面来说,虽然我们可以插入Embed组件。但是Embed组件中是不允许提供Script和Html脚本的。只能插入iFrame......
  • SharePoint 页面中插入自定义代码
    我们都知道SharePoint是对页面进行编辑的。对于一些有编程基础的人来说,可能需要对页面中插入代码,这样才能更好的对页面进行配置。但是在新版本的SharePointmodern页面来说,虽然我们可以插入Embed组件。但是Embed组件中是不允许提供Script和Html脚本的。只能插入iF......
  • 解锁清晰代码-每位开发者的20个架构技巧
       清晰架构原则对于任何希望创建健壮、可维护和可扩展软件的软件开发者来说都至关重要。理解并实施这些概念可以显著提升你的编程技能。以下是对20个基本架构洞见的深入探讨:依赖规则:清晰架构的核心是依赖规则。它规定源代码的依赖关系应始终指向内部。这种内向的方向确保了......
  • 面试官:听说你很了解Java8特性,给我优化一下这段代码吧?
    @[toc]前言在之前的一次面试过程中,我被问到了一道代码优化题:对于下面的代码,你有什么优化的思路呢?booleanhandleStrList(StringstrList){ for(Strings:strList){ if(s.length()%2==0){ returntrue; } }booleanhandleStrList(StringstrList){for(Strings:s......
  • python随机抽取数字的方法和代码
    在Python中,我们可以使用内置的random模块来随机抽取数字。下面是一些示例。从一个列表中随机抽取数字如果你有一个数字列表,并且你想从中随机选择一个数字,你可以使用random.choice函数。pythonimportrandomnumbers=[1,2,3,4,5,6,7,8,9,10]chosen_number=rando......
  • fork后更新仓库代码
    目录fork后更新仓库代码场景:模型操作方法如下:方法一、从github上进行操作然后更新如何在Github网页端同步更新?方法二、通过命令行fetch拉取原仓库更新fork后更新仓库代码场景:github上fork原项目,如何将本地仓库代码更新到最新版本?在github上fork原项目,项目组成员发起pullreq......