java控制台实现学生信息管理系统(集合版)

下面就给大家详细讲解一下如何实现Java控制台学生信息管理系统。

系统需求

  • 学生的基本信息包括学号、姓名、性别和年龄;
  • 使用集合对学生信息进行管理;
  • 实现基本的增、删、改、查功能;
  • 可以按照学号或者姓名进行查找和排序;
  • 友好的用户交互界面。

实现步骤

步骤一:创建学生类

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

    // 省略get和set方法
}

步骤二:创建控制台界面

public class ConsoleUI {
    private Scanner scanner;
    private List<Student> studentList;

    /**
     * 构造方法,用于初始化学生列表和Scanner对象
     */
    public ConsoleUI() {
        scanner = new Scanner(System.in);
        studentList = new ArrayList<>();
    }

    /**
     * 显示学生信息管理界面
     */
    public void show() {
        while (true) {
            System.out.println("======================");
            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("6.按姓名排序");
            System.out.println("0.退出系统");
            System.out.println("======================");
            System.out.print("请选择操作: ");

            int choice = scanner.nextInt();

            switch (choice) {
                case 1:
                    addStudent();
                    break;
                case 2:
                    deleteStudent();
                    break;
                case 3:
                    modifyStudent();
                    break;
                case 4:
                    queryStudent();
                    break;
                case 5:
                    sortById();
                    break;
                case 6:
                    sortByName();
                    break;
                case 0:
                    System.exit(0);
                    break;
                default:
                    System.out.println("请输入正确的选项!");
                    break;
            }
        }
    }

    /**
     * 添加学生方法
     */
    private void addStudent() {
        System.out.println("请输入学生信息");

        System.out.print("学号: ");
        int id = scanner.nextInt();

        System.out.print("姓名: ");
        String name = scanner.next();

        System.out.print("性别: ");
        String sex = scanner.next();

        System.out.print("年龄: ");
        int age = scanner.nextInt();

        Student student = new Student();
        student.setId(id);
        student.setName(name);
        student.setSex(sex);
        student.setAge(age);

        studentList.add(student);

        System.out.println("添加成功!");
    }

    /**
     * 删除学生方法
     */
    private void deleteStudent() {
        System.out.print("请输入要删除学生的学号: ");
        int id = scanner.nextInt();

        boolean flag = false;
        for (Student student : studentList) {
            if (student.getId() == id) {
                studentList.remove(student);
                flag = true;
                break;
            }
        }

        if (flag) {
            System.out.println("删除成功!");
        } else {
            System.out.println("未找到该学生,删除失败!");
        }
    }

    /**
     * 修改学生方法
     */
    private void modifyStudent() {
        System.out.print("请输入要修改学生的学号: ");
        int id = scanner.nextInt();

        boolean flag = false;
        for (Student student : studentList) {
            if (student.getId() == id) {
                System.out.println("请输入修改后的学生信息");

                System.out.print("姓名: ");
                String name = scanner.next();

                System.out.print("性别: ");
                String sex = scanner.next();

                System.out.print("年龄: ");
                int age = scanner.nextInt();

                student.setName(name);
                student.setSex(sex);
                student.setAge(age);

                flag = true;
                break;
            }
        }

        if (flag) {
            System.out.println("修改成功!");
        } else {
            System.out.println("未找到该学生,修改失败!");
        }
    }

    /**
     * 查询学生方法
     */
    private void queryStudent() {
        System.out.print("请输入要查询学生的学号或姓名: ");
        String keyword = scanner.next();

        List<Student> resultList = new ArrayList<>();
        for (Student student : studentList) {
            if (student.getName().contains(keyword) || String.valueOf(student.getId()).contains(keyword)) {
                resultList.add(student);
            }
        }

        if (resultList.size() > 0) {
            System.out.println("查询结果:");
            for (Student student : resultList) {
                System.out.println(student);
            }
        } else {
            System.out.println("未找到相关学生信息!");
        }
    }

    /**
     * 按学号排序方法
     */
    private void sortById() {
        Collections.sort(studentList, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getId() - o2.getId();
            }
        });
        System.out.println("已按学号排序!");
    }

    /**
     * 按姓名排序方法
     */
    private void sortByName() {
        Collections.sort(studentList, new Comparator<Student>() {
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getName().compareTo(o2.getName());
            }
        });
        System.out.println("已按姓名排序!");
    }
}

步骤三:实现运行入口

public class Main {
    public static void main(String[] args) {
        ConsoleUI consoleUI = new ConsoleUI();
        consoleUI.show();
    }
}

示例说明

假设我们需要添加三个学生信息:张三、李四、王五

======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 1
请输入学生信息
学号: 001
姓名: 张三
性别: 男
年龄: 20
添加成功!
======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 1
请输入学生信息
学号: 002
姓名: 李四
性别: 女
年龄: 21
添加成功!
======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 1
请输入学生信息
学号: 003
姓名: 王五
性别: 男
年龄: 22
添加成功!

然后我们可以按照学号排序,查看排序结果:

======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 5
已按学号排序!

这时运行结果如下:

======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 4
请输入要查询学生的学号或姓名: 
3
查询结果:
Student{id=3, name='王五', sex='男', age=22}
======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 4
请输入要查询学生的学号或姓名: 
李
查询结果:
Student{id=2, name='李四', sex='女', age=21}
======================
学生信息管理系统
1.添加学生信息
2.删除学生信息
3.修改学生信息
4.查询学生信息
5.按学号排序
6.按姓名排序
0.退出系统
======================
请选择操作: 0

通过以上示例,我们可以看出控制台学生信息管理系统的基本使用和操作方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java控制台实现学生信息管理系统(集合版) - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java读取json数据并存入数据库的操作代码

    下面是Java读取Json数据并存入数据库的操作代码的攻略,包含以下四个步骤: 构建Json数据对象 读取Json数据 解析Json数据 将数据存入数据库 下面进行详细讲解。 步骤一:构建Json数据对象 使用Java构建Json对象可以使用json库的JSONObject类来构建。首先需要导入相应的依赖: <dependency> <gr…

    Java 2023年5月20日
    00
  • Java日期时间字符串和毫秒相互转换的方法

    下面是详细讲解Java日期时间字符串和毫秒相互转换的方法的攻略。 一、Java日期时间字符串转毫秒 1.1 SimpleDateFormat类 在Java中,可以使用SimpleDateFormat类来完成日期时间字符串的转换。SimpleDateFormat是Java中日期时间格式化类的一个子类,它继承了DateFormat类,提供了非常方便的日期时间格式…

    Java 2023年5月20日
    00
  • 序列化版本号serialVersionUID的作用_动力节点Java学院整理

    序列化是Java中非常重要且常用的一个功能。它在实现网络通信、分布式存储等方面都有广泛的应用。而序列化版本号serialVersionUID则是保证序列化的兼容性和稳定性的重要手段,它用于判断序列化对象的版本是否一致,如果不一致则不能反序列化。 在Java中,每个class都有一个serialVersionUID属性,它是一个长整型数字。如果不显式指定,Ja…

    Java 2023年5月20日
    00
  • Java实现Excel导入导出数据库的方法示例

    下面是Java实现Excel导入导出数据库的方法示例的完整攻略: 一、Excel导入数据库: 首先,需要添加相关的依赖包,如以下示例代码所示: <!– poi组件 –> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi&…

    Java 2023年5月20日
    00
  • SpringBoot后端数据校验实战操作指南

    下面我为您详细讲解“SpringBoot后端数据校验实战操作指南”的完整攻略。 介绍 Springboot是一款非常流行的轻量级Java Web框架,它提供了很多方便的工具和组件,能够帮助我们快速、高效地开发应用程序。在使用Springboot开发Web应用的过程中,数据校验是一个非常重要的环节。数据校验可以帮助我们减少数据入库前的错误,从而提高程序的可靠性…

    Java 2023年5月20日
    00
  • java如何把逗号分隔的String字符串转int集合

    要把逗号分隔的字符串转换为整数集合,可以使用Java中的split()方法将字符串分割,然后使用Integer.parseInt()方法将分割后的字符串转换为整数,最后将整数添加到集合中。以下是完整的攻略: 步骤一:将逗号分隔的字符串转为字符串数组 使用String类的split()方法可以将逗号分隔的字符串转化为字符串数组。 String str = &q…

    Java 2023年5月20日
    00
  • Web服务器识别技术揭秘

    Web服务器识别技术揭秘 什么是Web服务器识别技术? Web服务器识别技术是指通过检测HTTP请求中的特定标识,以确定正在运行的Web服务器软件类型和版本的过程。Web服务器指向内部资源并与客户端通信,因此了解服务器是非常重要的。许多黑客使用Web服务器识别来收集有关特定网站的有用信息,这些信息可以用于攻击。 Web服务器识别的原理 Web服务器识别的方法…

    Java 2023年6月16日
    00
  • java用户名密码验证示例代码分享

    下面我将为您详细讲解“java用户名密码验证示例代码分享”的完整攻略。 一、前置条件 在进行用户名密码验证时,需要满足以下前置条件: 已经创建了用于存储用户名和密码的数据库或其他数据源; 已经学习了Java JDBC编程,掌握了连接数据库和执行SQL语句的基础知识。 二、编写示例代码 下面是一个简单的Java示例代码,用于实现基于数据库的用户名密码验证: i…

    Java 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部