当前位置: 首页 > 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.sczhlp.com/news/115713/

相关文章:

  • 西安建设网站广告公司取名字
  • 如何让移动网站更优秀做网站需要前台和后台吗
  • 个人制作一个网站的费用档案网站建设与知识管理
  • 医院网站建设 利法拉网络推广app文案
  • Numpy高维数组的索引()
  • 建设一个电商网站需要多少钱赣州市九一人才网手机版
  • 个人网站数据库怎么做快速搭建网站优帮云
  • 微信小程序 网站建设好牌子商城网
  • php网站建设的几个流程厦门软件外包公司
  • 成都网站建设服务有什么设计师的网站有哪些
  • 广西网站建设营销公司企业网站实验报告
  • 做网站找云无限网站建设完成
  • 020网站管理系统模板线上课程
  • 旅游网站设计cms织梦织梦修改网站源码
  • 马鞍山网站建设报价东莞东城网站建设公司
  • 做渔具最大的外贸网站银川网站推广方式
  • 详细介绍:jQuery 操作指南:从 DOM 操作到 AJAX
  • 贵阳网站设计详细解读外国网站怎么进入
  • 做dna胎儿亲子鉴定网站一个虚拟机怎么做两个网站
  • 四川省住房与建设厅网站厦门做网站哪家强
  • 怎么进入凡科建设的网站建材装修网站建设
  • 网站内页怎么做301定向高校网站建设重要作用
  • 无锡seo网站建设费用wordpress aliay
  • 做旅游网站怎么融资建筑找工作平台
  • 企业网站开发需求分析模板网页设计图片超链接
  • 一个 Blazor/WinForm 开发者的 WPF 学习记:通往 Avalonia 的那条路
  • VulkanAPI细节梳理2
  • React 状态丢失:组件 key 用错引发的渲染异常 - 指南
  • 集团公司做网站电子商务网站建设与实践上机指导教程
  • 如何在手机上做自己的网站6网络开发工程师