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

Java项目案例作业1

学生管理系统案例初步分析报告

目录
  • 学生管理系统案例初步分析报告
    • 功能讲解
      • 数据处理
      • 功能说明
    • 类功能讲解
      • 1. Student
      • 2. StudentManagementSystem
      • 3. StudentManagementSystemTest
      • 4. Main
      • 特殊类说明
    • 基本语法讲解
      • 1. 类与对象
      • 2. 封装性
      • 3. 集合框架
      • 6. 输入输出

功能讲解

数据处理

  • 处理的数据:该程序主要处理学生的个人信息数据,包括姓名(name)、年龄(age)、性别(gender)、学号(id)、专业(major)和GPA。
  • 数据存储位置:通过StudentManagementSystem类中的List<Student>集合存储学生对象。
  • 与C语言的差异
    • Java通过类的属性和方法操作数据,将学生数据封装在Student类的对象中;
    • C语言通常使用结构体(struct)存储类似数据;

功能说明

  1. 主菜单界面

屏幕截图 2025-09-20 193434

说明:程序运行后显示功能菜单,包含添加、删除、查询等7项操作。

  1. 添加学生功能

屏幕截图 2025-09-20 193740

说明:选择功能1后,依次输入学生的姓名、年龄等信息,系统创建Student对象并添加到集合中,提示“Student added successfully!”。

  1. 查询学生功能

屏幕截图 2025-09-20 193811

说明:选择功能3(按姓名查询),输入姓名后,系统返回所有匹配的学生信息,通过toString()方法格式化输出。

4.显示所有学生功能

屏幕截图 2025-09-20 193926

说明:选择功能6,系统遍历List<Student>集合,打印所有学生的详细信息;若集合为空,提示“The System Data is empty Now!”。

  1. 删除学生功能

屏幕截图 2025-09-20 193842

说明:选择功能2,输入学号后,系统遍历集合找到对应学生并移除,提示删除成功或未找到。

类功能讲解

1. Student

  • 功能概述:封装学生的基本信息。
  • 属性用途
    • name:存储学生姓名
    • age:存储学生年龄
    • gender:存储学生性别
    • id:存储学生学号(唯一标识)
    • major:存储学生专业
    • gpa:存储学生GPA成绩
  • 包含的方法
    • 构造方法:初始化学生的所有属性
    • getter方法:获取各属性的值(如getName()getAge()
    • setter方法:修改各属性的值(如setName()setAge()
    • toString():重写该方法,返回学生信息的格式化字符串

2. StudentManagementSystem

  • 功能概述:实现学生信息的添加、删除、查询学生等核心操作。
  • 属性用途
    • studentsList<Student>类型集合,用于存储所有学生对象
  • 包含的方法
    • 构造方法:初始化students集合
    • addStudent():向集合中添加学生对象
    • removeStudent():从集合中移除指定学生对象
    • getStudents():返回所有学生对象的集合
    • 查询方法:searchByName()searchByMajor()searchByGpa(),分别按姓名、专业、GPA筛选学生

3. StudentManagementSystemTest

  • 功能概述:测试StudentManagementSystem类的功能,验证添加、删除、查询等操作的正确性。
  • 属性用途:无自定义属性,仅在main方法中创建局部对象。
  • 包含的方法
    • main():程序入口,创建系统对象和学生对象,调用管理方法并打印结果,验证功能是否正常。

4. Main

  • 功能概述:提供命令行交互界面,接收用户输入并调用StudentManagementSystem的方法执行相应操作。
  • 属性用途:无自定义属性,仅在main方法中创建ScannerStudentManagementSystem等局部对象。
  • 包含的方法
    • main():程序入口,通过循环显示菜单,使用switch语句处理用户选择,实现与用户的交互逻辑。

特殊类说明

Main类与其他类差异较大,它不涉及数据封装,主要负责用户交互,是程序的入口点,通过调用其他类的方法将用户操作与系统功能关联起来,是连接用户和系统的桥梁。

基本语法讲解

1. 类与对象

Java是纯面向对象语言,所有代码都必须定义在类中,通过new关键字创建对象。

// 定义类
public class Student { ... }// 创建对象
Student s1 = new Student("John", 20, "Male", "001", "Computer Science", 3.5);

2. 封装性

通过private修饰属性,提供public的getter和setter方法控制访问,实现数据封装。

private String name; public String getName() { //用于获取属性值return name;
}public void setName(String name) { //用于修改属性值this.name = name;
}

3. 集合框架

使用java.util.ListArrayList动态存储对象,无需手动管理容量,提供add()remove()等便捷方法。

private List<Student> students; // 声明List集合public StudentManagementSystem() {students = new ArrayList<>(); // 初始化ArrayList
}students.add(student); // 添加元素

6. 输入输出

使用java.util.Scanner处理控制台输入,System.out.println()输出信息。

Scanner scanner = new Scanner(System.in); // 创建Scanner对象
int choice = scanner.nextInt(); // 读取整数输入
System.out.println("Enter 1 to add a student"); // 输出提示信息
http://www.hskmm.com/?act=detail&tid=10981

相关文章:

  • 配置Spring框架以连接SQL Server数据库
  • 这一辈子大多数日子是无聊的
  • Go 实现验证码识别
  • 跳出 AI 编程的「兔子洞」,4 个实战策略帮你解决90%的死循环
  • 用 PHP 和 Tesseract OCR 识别英文数字验证码
  • 凝望深渊时,深渊也凝望着你(黑洞与摇钱树)
  • 详细介绍:《Vuejs设计与实现》第 16 章(解析器) 中
  • spring项目部署后为什么会生成 logback-spring.xml记录
  • 【解决】Matlab函数体突然不自动缩进了
  • 202509_NBWS_logbool
  • Kubernetes权威指南-深入理解Pod Service
  • 详细介绍:jeecg-boot3.7.0对接钉钉登录(OAuth2.0)
  • C++编程软件 Dev-C++ 安装及使用流程
  • DLL植入漏洞分类与微软安全响应指南
  • 4980:拯救行动
  • java03-wxj
  • 题解:P13969 [VKOSHP 2024] Exchange and Deletion
  • 市场交易反心理特征之二:忽视热点切换的苗头
  • Linux服务器上安装配置GitLab的步骤
  • 贪心算法应用:投资组合再平衡问题详解 - 实践
  • MCP:Trae中集成Playwright 实现网页自动化测试
  • C语言中的字符、字符串及内存操作函数详细讲解
  • 06、訊息收集
  • 在Linux中设定账户密码的安全性策略
  • 精选 4 款基于 .NET 开源、功能强大的 Windows 系统优化工具,助力轻松提升 Windows 系统性能与使用体验!
  • MySQL 32 为什么还有kill不掉的语句?
  • Axure RP 9 Mac 交互原型设计 - 实践
  • 深入解析:rook-ceph自定义添加osd流程
  • 1789:算24
  • 流行的 3D 文件格式及其用途指南