Java中的集合2——学生管理系统(1)

简介: 当录入的学号已经存在时,我们就要提示用户重新输入,直至不重复为止,这时候我们就需要重新定义一个方法来判断学号是否重复

一、前言


本文主要是实现登录学生管理系统后的功能一部分,包括实现学生类和主界面、添加学生、查看所有学生,其主界面如图


e70d5c7db744445eb8f0daa8acc806e3.png


二、学生类实现


在本管理系统中,需要录入的是学生的学号、姓名和性别,所以首先要定义三个成员变量


  • private String id
  • private String name
  • private String gender


然后生成一个标准的JavaBean类,快捷方法参考文章:IDEA2018 中有关编写JavaBean类的小技巧(保姆级教程)

生成后将最后两行删除,代码如下:


public class student {
        private String id;
        private String name;
        private String gender;
    public student() {
    }
    public student(String id, String name, String gender) {
        this.id = id;
        this.name = name;
        this.gender = gender;
    }
    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }
    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }
    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }
    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 获取
     * @return gender
     */
    public String getGender() {
        return gender;
    }
    /**
     * 设置
     * @param gender
     */
    public void setGender(String gender) {
        this.gender = gender;
    }
}


三、主界面实现


1.解题思路


由于这里要选择的选项很多,所以我们用 switch语句 来实现


1.创建一个集合,用来存放学生数据

2.打印输出 “-----欢迎来到学生管理系统-----”

3.打印输出“----------------------------” 和 “请选择需要执行的操作”

4.键盘输入一个数

5.运用switch语句来进行选择,并调用方法实现每个选择

6.调用无限循环语句使得每次执行操作完回到主界面


2.代码实现


public static void main(String[] args) {
        ArrayList<student> list = new ArrayList<>();
        Scanner in = new Scanner(System.in);
        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("----------------------------");
            System.out.println("请选择需要执行的操作");
            int i = in.nextInt();
            switch (i) {
                case 1:
                    System.out.println("添加学生");
                    addStudent(list);
                    break;
                case 2:
                    System.out.println("删除学生");
                    removeStudent(list);
                    break;
                case 3:
                    System.out.println("修改学生");
                    modifyStudent(list);
                    break;
                case 4:
                    System.out.println("查找学生");
                    searchStudent(list);
                    break;
                case 5:
                    System.out.println("查看学生");
                    lookStudent(list);
                    break;
                default:
                    System.out.println("输入有误,请重新输入");
                    break;
            }
        }


四、添加学生功能


1.解题思路


1.定义一个带参数的方法,需要添加学生时调用方法即可

2.参数为一个集合,用来存放数据

3.分别从键盘录入要添加学生的学号、姓名和性别

4.将键盘输入的信息添加到集合中

5.返回提示信息 “添加成功”


2.学号重复情况


当录入的学号已经存在时,我们就要提示用户重新输入,直至不重复为止,这时候我们就需要重新定义一个方法来判断学号是否重复


🟡思路


1.定义一个带参数的方法来判断输入的学号是否已经存在与集合内

2.参数为集合和输入的学号

3.定义一个 flag,使其值为 false,表示新增元素与集合中存在元素不相同

4.遍历集合,判断输入的学号是否与集合中的元素相同

5.如果相同,修改flag的值为 true 并退出循环

6.返回flag的值

7.定义一个boolean型的变量接收返回值

8.参数为增加学生方法内定义的集合名以及输入的学号

9.判断变量值;如果为true,则输出提升语句:“学号重复,请重新输入”,如果为false则退出循环

10.由于添加循环,所以学号的类型要在循环体外定义,不影响后续使用


🟡判断是否重复功能的代码


public static boolean isUsed(ArrayList<student> Array,String id){
  boolean flag = false;
    for (int i = 0; i < Array.size(); i++) {
      student s = Array.get(i);
        if(s.getId().equals(id)){
          flag = true;
            break;
        }
    }
        return flag;
}


🟡在实现添加学生功能内代码


while (true) {
  System.out.println("请输入学号");
    id = in.next();
    boolean flag = isUsed(Array, id);
    if (flag) {
      System.out.println("学号重复,请重新输入");
    }
    else {
        break;
    }


3.代码实现


 public static void addStudent(ArrayList<student> Array){
        student s = new student();
        Scanner in = new Scanner(System.in);
        String id;
        while (true) {
            System.out.println("请输入学号");
            id = in.next();
            boolean flag = isUsed(Array, id);
            if (flag) {
                System.out.println("学号重复,请重新输入");
            }
            else {
                break;
            }
        }
        System.out.println("请输入姓名");
        String name = in.next();
        System.out.println("请输入性别");
        String gender = in.next();
        s.setName(name);
        s.setId(id);
        s.setGender(gender);
        Array.add(s);
        System.out.println("添加成功");
    }
public static boolean isUsed(ArrayList<student> Array,String id){
  boolean flag = false;
    for (int i = 0; i < Array.size(); i++) {
      student s = Array.get(i);
        if(s.getId().equals(id)){
          flag = true;
            break;
        }
    }
        return flag;
}


五、查看所有学生功能


1.解题思路


1.运用判断语句来判断集合内是否有元素存在

2.当集合内为空时,返回提示语句:“无信息,请添加后再查询”

3.当集合内有元素时,遍历集合并输出集合内元素

4.为了整齐,使用制表符 \t 来缩进


2.代码实现


public static void lookStudent(ArrayList<student> Array){
        if(Array.size() == 0){
            System.out.println("无信息,请添加后再查询");
        }
        for (int i = 0; i < Array.size(); i++) {
            student s = Array.get(i);
            System.out.println("学号"+"\t"+"姓名"+"\t"+"性别"+"\t");
            System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getGender()+"\t");
        }
    }


六、结语


本文实现了一部分功能,下一篇文章中会实现剩余功能

相关文章
|
11月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
754 8
|
11月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
827 24
|
11月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
361 11
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
502 10
|
11月前
|
存储 算法 安全
Java集合框架:理解类型多样性与限制
总之,在 Java 题材中正确地应对多样化与约束条件要求开发人员深入理解面向对象原则、范式编程思想以及JVM工作机理等核心知识点。通过精心设计与周密规划能够有效地利用 Java 高级特征打造出既健壮又灵活易维护系统软件产品。
274 7
|
11月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1192 4
|
11月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
853 0
|
12月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
12月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
467 100
|
12月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
446 101