教务管理系统(面向对象设计)开发博客
目录
- 一、选题与前期调查
- 二、系统功能设计
一、选题与前期调查
想要做什么
本次开发的教务管理系统将采用面向对象设计思想,核心聚焦于「学生-班级-课程-教师-成绩」的关联管理。系统需支持管理员对多班级、多学生的层级管理(一个班级包含多个学生,一个学生仅属于一个班级),同时实现学生信息的增删改查;并扩展课程、成绩、教师模块,通过类的封装与关联构建完整的教务数据体系。
别人是怎么做的
Java实现教务管理系统:https://blog.csdn.net/m0_73984497/article/details/134368628
Java实现带界面的教务管理系统(结合数据库):https://blog.csdn.net/Mu_yongheng/article/details/107224452
准备实现哪几部分
- 核心实体类模块:设计
Student(学生)、Class(班级)、Teacher(教师)、Course(课程)、Score(成绩)类,封装属性与行为。 - 管理功能模块:通过
Admin类实现班级、学生的增删改查,通过Teacher类实现成绩录入与课程管理。 - 交互模块:独立的
Menu类负责控制台输入输出,提供菜单导航与用户交互。
二、系统功能设计
系统所要实现的功能
-
功能1:班级与学生管理
- 管理员可创建、删除、修改班级信息(如班级编号、班级名称)。
- 管理员可向指定班级添加学生、从班级中移除学生、修改学生信息(学号、姓名等)、查询学生所属班级。
-
功能2:课程与教师管理
- 管理员可创建课程(关联授课教师),教师可查看所授课程及选课学生。
- 支持学生选择课程(一个学生可选多门课,一门课可被多名学生选择)。
-
功能3:成绩管理
- 教师可录入或修改学生的课程成绩(成绩与学生、课程绑定)。
- 管理员可查询班级整体成绩分布,学生可查询个人成绩(需权限控制)。
核心类设计(面向对象)
| 类名 | 属性(示例) | 方法(示例) |
|---|---|---|
Student |
学号、姓名、所属班级(Class对象) |
获取/修改信息、选课、查询成绩 |
Class |
班级编号、班级名称、学生列表(List<Student>) |
添加学生、删除学生、查询学生列表 |
Teacher |
教师编号、姓名、所授课程列表(List<Course>) |
录入成绩、查看授课学生 |
Course |
课程编号、课程名称、授课教师(Teacher对象)、选课学生列表(List<Student>) |
添加选课学生、移除选课学生 |
Score |
关联学生(Student)、关联课程(Course)、分数 |
设置分数、获取分数 |
Menu |
无(纯交互) | 显示主菜单、输入选择、输出结果 |
Admin |
管理员账号 | 管理班级(增删改查)、管理学生(增删改查) |
数据如何存储
采用数据库存储所有实体数据,通过外键关联体现类之间的关系:
- 班级表(
classes)与学生表(students)通过「班级编号」外键关联(一对多)。 - 课程表(
courses)与教师表(teachers)通过「教师编号」外键关联。 - 成绩表(
scores)通过「学号」和「课程编号」双外键关联学生与课程(多对多)。
界面
采用控制台界面,通过Menu类实现模块化交互:
- 主菜单:选择「班级管理」「学生管理」「课程管理」「成绩管理」。
- 子菜单:每个模块下的具体操作(如学生管理包含「添加」「删除」「修改」「查询」)。
开发工具
- 主开发IDE:IntelliJ IDEA(支持类图生成、重构工具,提升面向对象设计效率)
- 测试工具:JUnit(用于测试类的方法逻辑,如学生添加到班级的正确性)
- 版本控制:git(管理代码版本,记录类设计迭代)
- 代码规范:阿里巴巴代码规约IDE插件(确保类命名、方法命名符合面向对象规范)