java实现简单的学生管理系统

Java实现简单的学生管理系统

系统概述

本系统主要用于实现学生的增删查改功能,通过控制台输入进行操作,界面简单,操作方便。

系统架构

代码采用Java语言实现,采用MVC模式进行设计。其中,Model层主要负责数据存储与业务逻辑;View层主要负责展示数据和接受用户输入;Controller层主要负责控制Model和View的交互,实现对Model层数据的访问和UI层的控制。

数据模型

本系统中,学生类(Student)为核心的数据模型,包括学生的姓名、年龄、性别、学号等基本信息和其对应的课程成绩。

示例代码:

public class Student {
    private String name; // 学生姓名
    private int age; // 学生年龄
    private String gender; // 学生性别
    private String id; // 学号
    private Map<Course, Double> scores; // 课程成绩

    // 构造函数
    public Student(String name, int age, String gender, String id) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.id = id;
        this.scores = new HashMap<>();
    }

    // getter和setter方法
    ...
}

系统功能

添加学生信息

用户可以通过控制台输入学生的基本信息和对应的课程成绩,然后将学生信息保存在数据模型中。

示例代码:

public class StudentController {
    private StudentModel model;

    public StudentController(StudentModel model) {
        this.model = model;
    }

    // 添加学生信息
    public void addStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入学生姓名:");
        String name = scanner.nextLine();
        System.out.print("请输入学生年龄:");
        int age = scanner.nextInt();
        scanner.nextLine();
        System.out.print("请输入学生性别:");
        String gender = scanner.nextLine();
        System.out.print("请输入学生学号:");
        String id = scanner.nextLine();

        Student student = new Student(name, age, gender, id);

        // 输入学生的课程成绩
        System.out.print("请输入课程名:");
        String courseName = scanner.nextLine();
        while (!courseName.equals("exit")) {
            System.out.print("请输入" + courseName + "的成绩:");
            double score = scanner.nextDouble();
            scanner.nextLine();
            student.setScore(courseName, score);
            System.out.print("请输入课程名(输入exit停止录入):");
            courseName = scanner.nextLine();
        }

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

删除学生信息

用户可以通过学号来删除相应的学生信息。

示例代码:

public class StudentController {
    private StudentModel model;

    public StudentController(StudentModel model) {
        this.model = model;
    }

    // 删除学生信息
    public void deleteStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要删除的学生学号:");
        String id = scanner.nextLine();
        boolean result = model.deleteStudent(id);
        if (result) {
            System.out.println("删除成功!");
        } else {
            System.out.println("该学生不存在!");
        }
    }
}

查找学生信息

用户可以通过学号来查找相应的学生信息。

示例代码:

public class StudentController {
    private StudentModel model;

    public StudentController(StudentModel model) {
        this.model = model;
    }

    // 查找学生信息
    public void findStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要查找的学生学号:");
        String id = scanner.nextLine();
        Student student = model.findStudent(id);
        if (student != null) {
            System.out.println(student);
        } else {
            System.out.println("该学生不存在!");
        }
    }
}

修改学生信息

用户可以通过学号来修改相应的学生信息,包括基本信息和课程成绩。

示例代码:

public class StudentController {
    private StudentModel model;

    public StudentController(StudentModel model) {
        this.model = model;
    }

    // 修改学生信息
    public void updateStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要修改的学生学号:");
        String id = scanner.nextLine();
        Student student = model.findStudent(id);
        if (student == null) {
            System.out.println("该学生不存在!");
            return;
        }

        System.out.print("请输入学生姓名:");
        String name = scanner.nextLine();
        student.setName(name);
        System.out.print("请输入学生年龄:");
        int age = scanner.nextInt();
        scanner.nextLine();
        student.setAge(age);
        System.out.print("请输入学生性别:");
        String gender = scanner.nextLine();
        student.setGender(gender);

        // 修改学生的课程成绩
        System.out.print("请输入课程名:");
        String courseName = scanner.nextLine();
        while (!courseName.equals("exit")) {
            System.out.print("请输入" + courseName + "的成绩:");
            double score = scanner.nextDouble();
            scanner.nextLine();
            student.setScore(courseName, score);
            System.out.print("请输入课程名(输入exit停止修改):");
            courseName = scanner.nextLine();
        }

        model.updateStudent(student);
        System.out.println("修改成功!");
    }
}

总结

本系统实现了基本的学生管理功能,便于学生信息的录入、查询、修改和删除。其中,数据模型设计合理,利于扩展新的业务需求。控制器层的代码结构清晰,易于维护和修改。但是,界面简陋且灵活性不高,无法满足高级用户对于界面的个性化需求,需要进一步完善。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现简单的学生管理系统 - Python技术站

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

相关文章

  • Java实现多个数组间的排列组合

    Java实现多个数组间的排列组合,可以通过使用递归实现。具体步骤如下: 1.定义递归方法,其中参数包括原始数组列表、临时结果列表、深度(代表当前已经处理完的数组层数)、结果列表(存储最终结果) 2.当深度达到原始数组列表的大小时,将临时结果列表添加到结果列表中 3.遍历当前原始数组,逐个取出数组中的元素,添加到临时结果列表中 4.每取出一个数组元素,深度加1…

    Java 2023年5月26日
    00
  • Java Development Kit (JDK) 安装及环境配置方法

    下面给出完整的Java Development Kit (JDK)安装及环境配置方法攻略,包含以下具体内容: JDK的安装方法 访问Oracle官网下载JDK安装文件,下载地址为:https://www.oracle.com/java/technologies/javase-downloads.html 根据自己操作系统版本选择相应的JDK安装文件并下载,建…

    Java 2023年5月26日
    00
  • C#基于JsonConvert解析Json数据的方法实例

    下面是“C#基于JsonConvert解析Json数据的方法实例”完整攻略,包括了Json的基本概念、JsonConvert工具的使用、示例代码等。 什么是Json Json(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于Web应用程序之间的数据交互。它基于JavaScript语法,但与JavaScript语言无…

    Java 2023年5月19日
    00
  • 在CentOS系统中检测Java安装及运行jar应用的方法

    在CentOS系统中检测Java安装及运行jar应用的方法: 1. 检测Java是否安装 可以通过以下命令检查Java是否安装在系统中: java -version 如果Java已经安装在系统中,会输出类似以下内容的信息: java version "1.8.0_191" Java(TM) SE Runtime Environment (…

    Java 2023年5月23日
    00
  • MyBatis中association的基本使用方法

    当我们需要处理关联对象时,MyBatis提供了association这一标签来解决该问题。该标签可以将一个对象作为另一个对象的属性进行查询,用于处理一对一或多对一的关联关系。 以下是使用association标签的基本用法: 1. 定义映射文件 首先要在映射文件中定义好需要返回的关联对象的属性以及查询语句以及需要查询的参数信息。以查询订单详情及所属用户为例,…

    Java 2023年5月20日
    00
  • struts2中一个表单中提交多个请求的例子(多个提交按钮)

    在struts2中实现一个表单中提交多个请求的例子,常见的方法是使用多个提交按钮,每个按钮对应一个请求。以下是详细的步骤: 1. 编写表单 首先在jsp页面中编写表单,并使用<s:submit>标签来生成提交按钮。每个不同的提交按钮会绑定不同的请求。例如: <s:form action="processForm">…

    Java 2023年5月20日
    00
  • 魔剑之刃斩魂技能全面介绍及点评

    魔剑之刃斩魂技能全面介绍及点评 什么是斩魂技能? 斩魂技能是魔剑之刃游戏中的一种特殊技能,通过学习和研究斩魂技能,角色可以提升自身战斗力和生存能力。 斩魂技能的分类 魔剑之刃游戏中,斩魂技能分为三大类,分别是: 攻击技能 攻击技能主要用于提高角色的攻击力和输出能力,可以有效地进行单体或群体伤害。举例如下: 感知之刃:消耗30点能量,对单个目标造成大量伤害,并…

    Java 2023年6月16日
    00
  • Java8新特性时间日期库DateTime API及示例详解

    Java8新特性时间日期库DateTime API及示例详解 什么是DateTime API? DateTime API是Java 8引入的一个新功能,它提供了一组全新的日期和时间API,使得开发人员能够更轻松地操作日期和时间。同时,它还提供了处理时区、日历、持续时间等功能。 如何使用DateTime API? DateTime API包含在Java 8的j…

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