目录
1.系统分析
1.1 项目背景
随着高校信息化建设的不断深入,管理学生信息的需求也越来越迫切。传统的手工管理方式已经无法满足现代高校的管理需求。因此,开发一个学生信息管理 系统,不仅可以提高管理效率,减少人力成本,还能确保数据的准确性和及时性,方便学生查询个人信息。本项目旨在为学生提供一个在线平台,使其可以随时查看个人相关信息,包括个人资料、课程安排、成绩查询等。
1.2 需求分析
1.2.1 用户角色
学生信息管理系统共包括三类用户,分别为管理员、学生和教师
1.2.2 需求描述
使用学生管理系统的学校有若干学院,每个学院又分为若干专业,每个专业有若干学生和教师。学生被分在若干班级中,一个学生只能属于一个班级,一个班级的学生都是一个专业的;学生要上若干课程,不同学生的课程安排不同;每个课程的教室不同,授课教师也不同;该系统通过输入正确的用户名和密码进行登录。
1.2.3 功能描述
· 用户登录与权限管理
登录验证:学生和管理员分别具有不同的登录入口,需提供用户名和密码进行登录验证。
权限分配:系统根据用户身份分配相应的权限,确保各类用户只能访问其具备权限的功能模块。
· 学生信息管理
信息查看:学生可以查看个人基本信息,如姓名、性别、学号、出生日期、民族、籍贯、联系方式等。
信息管理:管理员可对学生信息进行管理,包括添加、修改和删除学生信息。
· 课程信息管理
课程管理:管理员可以管理课程信息,包括课程名称、上课时间、上课地点、授课教师等的添加、修改和删除。
教师可以查看自己教授的课程信息。
· 选课管理
退课选课:学生可以在系统中选择和退选课程。
选课情况查询:管理员可以查看和管理学生的选课情况,并对成绩进行修改。
· 成绩查询统计与打印
成绩查询:学生可以查询个人的成绩信息。
成绩录入:教师可以录入和修改学生的成绩。
成绩统计与打印:管理员可以进行班级或专业的成绩统计,并提供打印功能。
· 教室管理
管理员可以管理教室信息,包括容量和所在建筑。
· 课程安排管理
管理员可以管理课程安排,包括添加删除。
教师可以查看自己课程的安排情况。
· 密码修改与重置
密码修改:学生可以修改自己的密码。
密码重置:管理员可以重置学生和教师的密码。
2.系统实现
2.1数据库概念结构设计
实体和属性:
1.学生:
学号
姓名
性别
出生日期
民族
籍贯
联系方式
密码
2.管理员:
管理员
密码
3.专业:
专业ID
专业名称
4.班级:
班级ID
班级名称
5.课程:
课程ID
课程名称
学分
6.教师:
教工号
姓名
性别
联系方式
密码
7.学院:
学院号
学院名
8.教室:
教室号
容量
所在建筑
9.课程安排:
课程安排号
上课时间
教工号
教室号
课程ID
实体间的关系:
学生与班级:多对一(一个班级可以有多个学生,一个学生属于一个班级)。
班级与专业:多对一(一个专业可以包含多个班级,一个班级属于一个专业)。
专业与学院:多对一(一个院系可以包含多个专业,一个专业属于一个院系)。
教师与学院:多对一(一个院系可以有多个教师,一个教师属于一个院系)。
学生与课程:多对多(一个学生可以选修多门课程,一门课程可以被多个学生选修)。
班级与课程:多对多(一个班级可以学习多门课程,一门课程可以被多个班级学习)。
班级与教室:多对多(一个班级可以在多个教室上课,一个教室可以用于多个班级上课)。
班级与教师:多对多(一个班级可以由多名教师教授,一名教师可以教授多个班级)。
课程与教室:多对多(一门课程可以在多个教室开设,一个教室可以开设多个课程)。
课程与教师:多对多(一门课程可以由多名教师教授,一名教师可以教授多门课程)。
教室与教师:多对多(一个教室可以让多个教师授课,一名教室可以在多个教室授课)。
E-R图:
2.2 数据库逻辑结构设计
学生
属性 | 类型 | 描述 |
学号 | int | 主键 |
姓名 | string | |
性别 | string | |
出生日期 | date | |
民族 | string | |
籍贯 | string | |
联系方式 | string | |
专业号 | int | 外键,引用专业表 |
班级号 | int | 外键,引用班级表 |
密码 | string |
管理员
属性 | 类型 | 描述 |
管理员ID | int | 主键 |
姓名 | string | |
密码 | string |
专业
属性 | 类型 | 描述 |
专业号 | int | 主键 |
专业名称 | string | |
学院号 | int | 外键,引用院系表 |
班级
属性 | 类型 | 描述 |
班级号 | int | 主键 |
班级名称 | string | |
专业号 | int | 外键,引用专业表 |
课程
属性 | 类型 | 描述 |
课程号 | int | 主键 |
课程名称 | string | |
学分 | int |
选课
属性 | 类型 | 描述 |
学号 | int | 外键,引用学生表 |
课程号 | int | 外键,引用课程表 |
成绩 | float |
教师
属性 | 类型 | 描述 |
教师号 | int | 主键 |
姓名 | string | |
学院号 | int | 外键,引用院系表 |
密码 | string |
学院
属性 | 类型 | 描述 |
学院号 | int | 主键 |
学院名称 | string |
教室
属性 | 类型 | 描述 |
教室号 | int | 主键 |
容量 | int | |
所在建筑 | string |
课程安排
属性 | 类型 | 描述 |
课程安排号 | int | 主键 |
上课时间 | varchar | |
教室号 | int | 外键,引用教室表 |
教工号 | int | 外键,引用教师表 |
课程ID | int | 外键,引用课程表 |
2.3 触发器设计
指导老师 王艳
小组成员 钱子卓 成书问 朱晓宇 张德金