教学事务管理系统
某学院教务处教学事务现由手工管理,效率低、易出错、耗费人力。教务处希望设计一个实用的教学事务管理系统,完成学生的学籍管理、报到注册、课程的选择、成绩登入、各种通知单的打印和报表的输出等。
估计开发该系统需购买硬件、外部设备(高性能计算机一台、打印机一台),花费1。2万元左右,开发工作量约需3个人月工作量,每人月工资约为2000元,开发完成后维护费用每年约600元,开发完成后,原有的三名管理人员可以减少为二名,每人月工资是600元.
- 总体设计要求
- 系统结构图
1.2数据库结构
学生表(Students):
字段名 | 数据类型 | 字段含义 |
student_id | INT (主键, 自增) | 学号 |
name | VARCHAR(50) | 姓名 |
gender | ENUM | 性别(男/女) |
birth_date | date | 出生日期 |
class | VARCHAR(50) | 班级 |
registration_status | BOOLEAN | 注册状态(Y/N) |
教师表(Teachers):
字段名 | 数据类型 | 字段含义 |
teacher_id | INT (主键, 自增) | 教师ID |
name | VARCHAR(50) | 姓名 |
gender | ENUM | 性别 |
title | VARCHAR(50) | 职称 |
course_id | INT(外键) | 课程号 |
课程表(Courses):
字段名 | 数据类型 | 字段含义 |
course_id | INT (主键, 自增) | 课程号 |
course_name | VARCHAR(50) | 课程名 |
credits | INT | 学分 |
teacher_id | INT | 授课教师 |
学生成绩表(StudentGrades):
字段名 | 数据类型 | 字段含义 |
grade_id | INT(主键, 自增) | 成绩ID |
student_id | INT(外键) | 学号 |
course_id | INT(外键) | 课程号 |
score | INT | 成绩 |
exam_date | date | 考试时间 |
学生选课表(StudentCourseSelections):
字段名 | 数据类型 | 字段含义 |
selection_id | INT(主键, 自增) | 选课ID |
student_id | INT(外键) | 学号 |
course_id | INT(外键) | 课程号 |
selection_status | ENUM | 选课状态(已选、待选、退选等) |
学生学籍表(StudentEnrollments):
字段名 | 数据类型 | 字段含义 |
enrollment_id | INT(主键, 自增) | 学籍ID |
stusent_id | INT(外键) | 学号 |
entry_date | DATE | 入学时间 |
graduate_date | DATE | 毕业时间 |
enrollment_status | ENUM | 学籍状态(在籍、休学、退学等) |
2、详细设计要求
2.1 某模块的流程图描述
2.2 某模块的N-S图描述
2.3 某模块的PAD图描述
2.4 某模块的PDL描述
class StudentRegistration:
def register(self, student_id, identity_card):
# 验证学生信息(这里只是简单示例)
if not student_id or not identity_card:
print("学生信息验证失败")
return
# 假设验证成功,展示学生信息并等待确认(这里省略用户交互)
print("学生信息验证成功,准备确认...")
# 假设用户已确认(这里省略用户确认逻辑)
print("学生/管理员已确认信息")
# 处理报到信息(这里只是简单打印)
print("处理报到信息...")
# 更新学生报到状态和相关信息(这里只是简单打印)
print("更新学生报到状态和相关信息...")
# 发送报到成功通知(这里只是简单打印)
print("发送报到成功通知...")
# 使用示例
registration = StudentRegistration()
registration.register("123456", "123456789012345678")