当前位置: 首页 > article >正文

Java教程练习:学生信息管理系统

文章目录

  • 学生管理系统
    • 1、需求文档
      • 需求
      • 分析
    • 2、新建学生实体类
    • 3、实现基本菜单和退出功能
    • 4、查询和添加
      • 4.1 查询学生信息
      • 4.2 添加学生信息
    • 5、修改和删除
      • 5.1 删除功能实现
      • 5.2 修改功能实现
  • 完整代码下载

学生管理系统

1、需求文档

需求

采取控制台的方式书写学生管理系统。

分析

初始菜单:

学生类:

  • 属性:id、姓名、年龄、家庭住址

添加功能:

  • 键盘录入每一个学生信息并添加,需要满足以下要求:
    • id唯一

删除功能:

  • 键盘录入要删除的学生id,需要满足以下要求:
    • id存在删除。
    • id不存在,需要提示不存在,并返回初始菜单。

修改功能:

  • 键盘录入要修改的学生id,需要满足以下要求
    • id存在,继续录入其他信息
    • id不存在,需要提示不存在,并回到初始菜单

查询功能:

  • 打印所有的学生信息,需要满足以下要求:
    • 如果没有学生信息,提示:当前无学生信息,请添加后查询。
    • 如果有学生信息,需要按照格式化输出。

2、新建学生实体类

Student.java

package com.nobug.studentsystem;

/**
 * @Author: wang
 * @Create: 2025/1/28
 * @Description: 学生类
 **/
public class Student {
    // id name age address
    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;
    }
}

3、实现基本菜单和退出功能

package com.nobug.studentsystem;

import java.util.Scanner;

public class StudentSystem {
    public static void main(String[] args) {
        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("—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——");
            System.out.println("请输入您的选择:");
            Scanner scanner = new Scanner(System.in);
            String choice = scanner.next();
            switch (choice) {
                case "1":
                    addStudent();
                    break;
                case "2":
                    deleteStudent();
                    break;
                case "3":
                    updateStudent();
                    break;
                case "4":
                    queryStudent();
                    break;
                case "5":
                    System.out.println("退出");
                    break loop;
                default:
                    System.out.println("没有这个选项");
            }
        }
    }

    // 添加学生
    public static void addStudent(){
        System.out.println("添加学生");
    }
    // 删除学生
    public static void deleteStudent(){
        System.out.println("删除学生");
    }
    // 修改学生
    public static void updateStudent(){
        System.out.println("修改学生");
    }
    // 查询学生
    public static void queryStudent(){
        System.out.println("查询学生");
    }
}

运行效果:

在这里插入图片描述

4、查询和添加

4.1 查询学生信息

代码实现:

// 查询学生
public static void queryStudent(ArrayList<Student> students){
    // 没有学生信息
    if(students.isEmpty()){
        System.out.println("当前无学生信息,请添加后再查询。");
        return;
    }
    // 存在学生信息
    System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");
    for(Student student : students){
        System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t" + student.getAddress());
    }
}

4.2 添加学生信息

代码实现:

// 添加学生
public static void addStudent(ArrayList<Student> students){
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入学生的id:");
    String id = scanner.next();

    System.out.print("请输入学生的姓名:");
    String name = scanner.next();

    System.out.print("请输入学生的年龄:");
    int age = scanner.nextInt();

    System.out.print("请输入学生的家庭住址:");
    String address = scanner.next();

    Student student = new Student(id, name, age, address);
    students.add(student);
    System.out.println("学生信息添加成功!");
}

修改代码实现,id唯一,首先编写判断id是否唯一的方法:

// 判断id在集合中是否存在
public static boolean containsStudentId(ArrayList<Student> students, String id){
    // 循环遍历集合里面的每一个学生对象
    // 拿到学生对象后,获取id并进行判断
    for(Student student : students){
        if(student.getId().equals(id)){
            return true;
        }
    }
    return false;
}

修改添加学生信息代码:

public static void addStudent(ArrayList<Student> students){
    Student student = new Student();
    Scanner scanner = new Scanner(System.in);
    while(true){
        System.out.print("请输入学生的id:");
        String id = scanner.next();
        boolean isContainId = containsStudentId(students, id);
        if(isContainId){
            // id已经存在,重新录入id
            System.out.println("id已经存在,请重新录入:");
        }else {
            // id不存在,可以使用
            student.setId(id);
            break;
        }
    }

    System.out.print("请输入学生的姓名:");
    String name = scanner.next();
    student.setName(name);

    System.out.print("请输入学生的年龄:");
    int age = scanner.nextInt();
    student.setAge(age);

    System.out.print("请输入学生的家庭住址:");
    String address = scanner.next();
    student.setAddress(address);

    students.add(student);
    System.out.println("学生信息添加成功!");
}

实现效果:

在这里插入图片描述

5、修改和删除

5.1 删除功能实现

实现代码:

// 删除学生
    public static void deleteStudent(ArrayList<Student> students){
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要删除的学生id:");
        String id = scanner.next();
        int index = getIndex(students, id);
        if(index == -1){
            System.out.println("学生id不存在,删除失败。");
        }else {
            students.remove(index);
            System.out.println("学生【"+id+"】信息删除成功!");
        }
    }

实现效果:

在这里插入图片描述

5.2 修改功能实现

代码实现:

// 修改学生
public static void updateStudent(ArrayList<Student> students){
    Scanner scanner = new Scanner(System.in);
    System.out.print("请输入要修改的学生id:");
    String id = scanner.next();
    int index = getIndex(students, id);
    if(index == -1){
        System.out.println("学生id不存在,请重新输入:");
        return;
    }
    Student student = students.get(index);
    // 输入其他信息并修改
    System.out.print("请输入要修改的学生姓名:");
    String newName = scanner.next();
    student.setName(newName);
    System.out.print("请输入要修改的学生年龄:");
    int newAge = scanner.nextInt();
    student.setAge(newAge);
    System.out.print("请输入要修改的学生家庭住址:");
    String newAddress = scanner.next();
    student.setAddress(newAddress);

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

完整代码下载

分享文件:studentsystem.zip
链接:https://pan.xunlei.com/s/VOHm8TBUsOWhIalxfSEUYiZ-A1#
提取码:v87w
复制这段内容后打开迅雷,查看更方便
原文地址:https://blog.csdn.net/WwLK123/article/details/145395080
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/525059.html

相关文章:

  • [STM32 - 野火] - - - 固件库学习笔记 - - -十三.高级定时器
  • 【AutoSar】汽车诊断标准协议UDS详解
  • 常见的同态加密算法收集
  • 【最后203篇系列】007 使用APS搭建本地定时任务
  • 1.27补题 回训练营
  • ODP(OBProxy)路由初探
  • 【starrocks学习】之catalog
  • java面试题:10个线程如何按顺序分别输出1-100
  • Airflow:掌握Airflow调度器基本原理
  • LangChain的开发流程
  • HTB:Active[RE-WriteUP]
  • Go语言中的Select
  • 芯片AI深度实战:进阶篇之vim内verilog实时自定义检视
  • 03链表+栈+队列(D2_栈)
  • Windows 11 应用开发实战指南
  • 【Elasticsearch 】悬挂索引(Dangling Indices)
  • 指针的介绍3后
  • Kafka 日志存储 — 磁盘存储
  • LeetCode:40. 组合总和 II(回溯 + 剪枝 Java)
  • Python3 【高阶函数】水平考试:30道精选试题和答案