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

面向对象初步接触-学生信息管理系统

1. 功能讲解

1.1 数据处理

  1. 该程序主要处理学生数据,包含学生的name、age、gender、id、major、gpa这些基本信息。
  2. 学生数据存储在StudentManagementSystem类的students成员变量中,每个学生的具体信息封装在Student类的对象中,这些对象被添加到List集合中统一管理。
  3. 不同之处:
    • a. Java利用Student类将学生的属性封装为对象并private,对外提供getter/setter方法访问和修改,而在C语言中则是依靠结构体来存储数据,并且成员是共有的。
    • b. Java使用ArrayList存储学生对象,简化代码和操作,C语言一般会利用链表来实现这一功能,操作稍微复杂繁琐。
    • c. Java中当学生对象不再被引用时,由JVM自动释放内存,无需手动释放,C语言中需手动通过malloc分配内存、free释放内存,较为麻烦,若操作不当容易导致内存泄漏或指针出现问题。

1.2 功能说明

屏幕截图 2025-09-18 194703

图1.菜单
(图1为菜单,展示该系统所拥有的功能,方便用户使用。)

屏幕截图 2025-09-19 105235

图2.功能1展示
(图2为该系统的第一个功能添加学生,并为学生自动生成6位的id。)

屏幕截图 2025-09-19 105455

图3.功能2展示
(图3为该系统的第二个功能删除学生,利用id的唯一性精准删除学生,避免删除同名学生。)

屏幕截图 2025-09-19 105300

图4.功能3展示
(图4为该系统的第三个功能按学生名字查找并展示该学生的基本信息。)

屏幕截图 2025-09-19 105325

图5.功能4展示
(图5为该系统的第四个功能按学生专业查找并展示该学生的基本信息。)

屏幕截图 2025-09-19 105341

图6.功能5展示
(图6为该系统的第五个功能按学生gpa查找并展示该学生的基本信息。)

屏幕截图 2025-09-19 105356

图7.功能6展示
(图7为该系统的第六个功能列出系统内已存入的学生及其对应信息。)

屏幕截图 2025-09-19 105509

图8.功能7展示
(图8为该系统的第七个功能退出系统,结束操作。)

2. 类功能讲解

2.1 简述每个类的功能概述、属性的用途、所包含的方法

2.1.1 Student

  1. 功能概述:封装学生的基本信息,包括name、age、gender、id、major和gpa等属性,并提供属性的访问和修改方法。
  2. 属性用途
    • name:存储学生姓名
    • age:存储学生年龄
    • gender:存储学生性别
    • id:存储自动生成的学生学号
    • major:存储学生专业
    • gpa:存储学生GPA成绩
  3. 包含的方法
    • Student(String name, int age, String gender, String major, double gpa):构造方法,初始化学生的姓名、年龄、性别、专业和GPA属性
    • setId(String id):设置学生学号
    • getName()/setName(String name):获得/设置学生姓名
    • getAge()/setAge(int age):获得/设置学生年龄
    • getGender()/setGender(String gender):获得/设置学生性别
    • getId():获得学生学号
    • getMajor()/setMajor(String major):获得/设置学生专业
    • getGpa()/setGpa(double gpa):获得/设置学生GPA
    • toString():返回学生信息的字符串表示

2.1.2 StudentManagementSystem

  1. 功能概述:管理学生,提供添加、删除学生以及按姓名、专业、GPA搜索学生的功能。
  2. 属性用途
    • students:存储所有学生对象的列表
    • nextId:生成下一个学生学号的计数器
  3. 包含的方法
    • StudentManagementSystem():构造方法,初始化学生列表
    • generateId():生成6位数字的学生学号
    • addStudent(Student student):为学生设置学号并添加到列表中
    • removeStudent(Student student):从列表中移除指定学生
    • getStudents():返回所有学生的列表
    • searchByName(String name):根据姓名搜索学生并返回结果列表
    • searchByMajor(String major):根据专业搜索学生并返回结果列表
    • searchByGpa(double gpa):根据GPA搜索学生并返回结果列表

2.1.3 Main

  1. 功能概述:提供交互菜单,允许用户通过菜单选择添加、删除学生、搜索学生、显示所有学生及退出系统等操作。
  2. 属性用途:无。
  3. 包含的方法
    • main(String[] args):程序入口。

2.1.4 StudentManagementSystemTest

  1. 功能概述:用于测试StudentManagementSystem类的功能。
  2. 属性用途:无。
  3. 包含的方法
    • main(String[] args):测试入口。

2.2 简述哪个类与所有其它类都不太一样

StudentManagementSystemTest类与所有其它类都不太一样,它是用于测试的类,验证StudentManagementSystem类功能的正确性,不参与实际运行时的数据封装、用户交互,也不被其他类依赖。

3. 基本语法讲解

  1. 类与访问修饰符:使用class定义类,publicprivate等访问修饰符控制类成员的可见性。
  2. 封装与getter/setter:通过private与公共访问方法如getName()实现数据封装。
  3. ArrayList集合:使用ArrayList<Student> students,指定存储元素类型为Student
  4. 入口与静态方法public static void main(String[] args)作为程序入口,static关键字使方法无需实例化即可调用。
  5. 异常处理:可能通过try-catch处理用户输入错误。
  6. this:在构造方法或成员方法中用于指代当前对象,区分成员变量与局部变量。
http://www.hskmm.com/?act=detail&tid=9541

相关文章:

  • Numpy高维数组的索引()
  • 详细介绍:jQuery 操作指南:从 DOM 操作到 AJAX
  • 一个 Blazor/WinForm 开发者的 WPF 学习记:通往 Avalonia 的那条路
  • VulkanAPI细节梳理2
  • React 状态丢失:组件 key 用错引发的渲染异常 - 指南
  • 快速实现 Excel 表格转 SVG:Java 教程 - E
  • 绕过文件上传限制实现客户端路径遍历漏洞利用的技术解析
  • 事件总线之初步学习
  • Markdown Day04
  • C++中类的内存存储
  • PyTorch 优化器(Optimizer)
  • 实用指南:域名市场中,如何确认域名的价值
  • 初步了解Neo4j
  • 多模态和语音 AI 年度收官大会,把握 2026 技术风向标!
  • 做题
  • 解码C语言函数
  • SchemaStore
  • XSS攻击防御
  • imes开发部署
  • 思维题做题记录-1
  • 如何在极短时间内通透一个大型开源项目
  • 求 Ray Ping - Gon
  • LCT学习笔记
  • Visual Studio 2026 Insiders 重磅发布:AI 深度集成、性能飞跃、全新设计
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-29- 操作单选和多选按钮 - 下篇(详细教程) - 北京
  • 自定义注解实现服务分处理-策略模式
  • iOS26正式版全新风格!一文汇总实用新功能!
  • 远程控制应用的中的全球节点功能如何开启?插件类型、并发数量怎么选?
  • 借助Aspose.HTML控件,使用 Python 将 HTML 转换为 DOCX
  • openEuler 24.03 (LTS-SP2)安装mysql 8.0.41