Java-学生管理系统[初阶]

让我们来探索如何使用Java语言构建一个基础的“学生信息管理系统”。这个系统将允许我们管理学生的基本信息,包括添加、删除、修改和查询学生数据。接下来,我们将分步骤实现这个系统,并在后续的文章中探讨如何为其添加模拟登录功能。

基础版学生管理系统

在深入代码之前,我们需要掌握以下Java编程基础:

  • Java的输入输出操作
  • Java的分支与循环结构
  • Java数组的使用
  • Java方法的定义与调用,包括重载
  • Java面向对象基础,包括类和对象的创建,以及构造方法的使用
  • Java集合的基本使用

一、学生管理系统基础版

首先,我们需要明确这个系统需要实现哪些功能:

  1. 添加学生信息
  2. 删除学生信息
  3. 修改学生信息
  4. 查询(打印)学生信息
  5. 退出学生管理系统

(注:学生信息包括“id”、“姓名”、“年龄”、“成绩”四个属性)

① 创建学生类

在开始构建系统之前,我们首先需要定义一个“学生”类来表示学生对象:

public class Student {
    private String id;
    private String name;
    private int age;
    private double score;

    public Student(String id, String name, int age, double score) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.score = score;
    }

    public Student() {}

    // Getter and Setter methods for each field
}

② 创建系统菜单

接下来,我们需要在主程序中创建一个系统菜单,并使用switch语句来处理用户的选择:

import java.util.Scanner;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList students = new ArrayList<>();

        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("请输入你的选择:");
            String choice = in.next();

            switch (choice) {
                case "1":
                    addStudent(students);
                    break;
                case "2":
                    deleteStudent(students);
                    break;
                case "3":
                    reviseStudent(students);
                    break;
                case "4":
                    printStudents(students);
                    break;
                case "5":
                    System.out.println("退出学生管理系统");
                    return;
                default:
                    System.out.println("输入错误,请重新选择");
            }
        }
    }

    // Method implementations for add, delete, revise, and print
}

③ 查询(打印)学生信息

为了查询学生信息,我们需要一个数据结构来存储学生数据。在这里,我们选择使用集合(如ArrayList),因为它提供了灵活的数据操作接口:

public static void printStudents(ArrayList students) {
    System.out.println("查询学生");
    if(students.isEmpty()) {
        System.out.println("目前系统中暂无学生!");
    } else {
        for (Student student : students) {
            System.out.println("id:" + String.format("%-8s", student.getId()) +
                    "姓名:" + String.format("%-8s", student.getName()) +
                    "年龄:" + String.format("%-8d", student.getAge()) +
                    "成绩:" + String.format("%-8.2f", student.getScore()));
        }
    }
}

④ 在系统中添加学生

添加学生信息时,我们需要确保每个学生的id是唯一的:

public static void addStudent(ArrayList students) {
    Scanner in = new Scanner(System.in);
    System.out.println("添加学生");
    while (true) {
        System.out.println("请输入学生id:");
        String id = in.next();
        if (findStudentById(students, id) != -1) {
            System.out.println("该学生已经存在,请重新输入");
            continue;
        }
        System.out.println("请输入学生姓名:");
        String name = in.next();
        System.out.println("请输入学生年龄:");
        int age = in.nextInt();
        System.out.println("请输入学生成绩:");
        double score = in.nextDouble();
        Student student = new Student(id, name, age, score);
        students.add(student);
        System.out.println("学生添加成功");
        break;
    }
}

⑤ 在系统中删除学生

删除学生信息时,

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/4515.html

(0)
LomuLomu
上一篇 2024 年 12 月 27 日 下午7:42
下一篇 2024 年 12 月 27 日 下午8:43

相关推荐

  • 华为OD机试E卷 –字符串变换最小字符串 –24年OD统一考试(Java & JS & Python & C & C++)

    文章目录 题目描述 输入描述 输出描述 用例 题目解析 JS算法源码 java算法源码 python算法源码 c算法源码 c++算法源码 题目描述 给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。 变换规则:交换字符串中任意两个不同位置的字符。 输入描述 一串小写字母组成的字符串s 输出描述 按照要求进行变换得到的…

    未分类 2025 年 1 月 12 日
    36500
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理

    目录 一、ThreadLocal基本知识回顾分析 (一)ThreadLocal原理 (二)既然ThreadLocalMap的key是弱引用,GC之后key是否为null? (三)ThreadLocal中的内存泄漏问题及JDK处理方法 (四)部分核心源码回顾 ThreadLocal.set()方法源码详解 ThreadLocalMap.get()方法详解 Th…

    2025 年 1 月 22 日
    54800
  • 架构-初识BFF

    引言 在最近的一次公司技术分享会上,我们深入探讨了公司的项目架构。核心议题是BFF架构,这是一种在微服务架构之上增加的额外层级。此外,我们还讨论了DDD(领域驱动设计)理念,它在订单、用户等业务中台中扮演着关键角色。 这是我对架构领域的初步探索,虽然理解尚浅,但我还是尝试着将所学内容进行了整理。 BFF 定义 BFF,即Backend For Fronten…

    2024 年 12 月 26 日
    43300
  • 多租户解析与Demo

    在做Saas应用时,多租户解析往往是很重要的组成部分,也是用户访问网站最先处理的逻辑。 文前介绍: 多租户的数据库实现方式主要有三种: 单一数据库实现,每条数据标识租户Id进行识别数据属于哪个租户 一租户一个数据库,能够做到完全的数据隔离 混合模式,部分数据在一张表上,主要是一些基础数据;其他业务数据分库存储。 无论是哪种方式都要知道租户是谁才能查询数据库。…

    2024 年 12 月 30 日
    25900
  • 《动态演进架构(第二版)》电子版获取指南

    书籍概要 这本专业著作系统阐述了架构适应性评估体系、智能化架构管理方案以及数据动态演进的前沿方法与实践经验。全书采用三模块结构:首模块着重解析动态架构的核心机制——详细说明开发团队如何运用技术手段构建适应性评估模型、自动化部署流程等现代化软件项目管理工具;次模块聚焦架构模式与设计准则,深入探讨组件耦合度、功能复用性等关键要素,为构建可持续优化的系统架构提供专…

    2025 年 5 月 14 日
    8200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信