某高校选课系统分析与设计.docx
《某高校选课系统分析与设计.docx》由会员分享,可在线阅读,更多相关《某高校选课系统分析与设计.docx(65页珍藏版)》请在冰豆网上搜索。
![某高校选课系统分析与设计.docx](https://file1.bdocx.com/fileroot1/2023-2/21/2209f975-383b-4e98-8fec-fa94e9f1080a/2209f975-383b-4e98-8fec-fa94e9f1080a1.gif)
某高校选课系统分析与设计
1.系统介绍
选课是高校行政管理工作中的重要一项,而且是每个学期必须面对的。
选课工作做不好,学生不知道自己将要学习的课程,老师也不知道自己将要讲授的课程,教务处的排课计划、教室安排等其他调度工作也无从做起。
因此,如何解决高校教务管理中的选课工作便成为了各大高校面临的很实际的问题。
2.系统分析
2.1可行性分析
2.1.1经济上的可行性
系统界面友好,操作简单,系统的配置要求不高,实现可行,因此经济可行。
该系统可以容易实现学生、老师与学校之间的联系,在Internet上实现完成部分教务工作,提高办事效率。
2.1.2技术上的可行性
随着网络的蓬勃发展,越来越多的机构将教务管理与网络融合到一起,以方便管理。
在这样一个社会背景下,基于Windows和SQLServer2005,运用先进的ASP.NET技术、先进的C#语言,采用B/S模式开发的学生网上选课系统,将学生、老师、管理员有机地结合在一起,有效地提高管理水平和效率。
随着科学技术的不断提高,计算机科学日渐成熟,基于以上的技术在现今比较容易实现。
2.1.3社会可行性
随着近几年高校的持续扩招,学生人数逐年增加。
为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。
这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。
而传统的手工操作,即费时又费力,而且容易出错,工作效率较低。
因此,拥有一套实用、高效、完善的在线选课系统就显得尤为重要,它可以提升高校的教育质量和教学管理质量,提高工作效率,降低行政成本。
2.2详细调查
2.2.1组织结构图
选课管理系统组织结构图
2.2.2业务流程图
学生选课工作的一般过程是:
教务处发通知,通知教师将申报课程名单给教务处,教务处审批,审批合格后将课程及上课时间和每门课程的名额限制公布给学生,不合格的退还给教师,学生在规定的时间内选课,正确的选课结果交给教务处错误的返回给学生。
选课管理系统业务流程图
2.2.3数据流程图
根据系统功能要求,画出学生选修课管理系统的分层DFD图。
首先画出顶层的DFD图。
顶层确定了系统的范围,其外部实体为教师、学生。
在顶层DFD图的基础上再进行分解,做进一步分解:
(1)用户登录
获取用户输入的用户名及密码;
若出现用户名、密码错误或不匹配现象,反馈错误提示;
在用户名及密码都正确的前提下,支持密码修改。
(2)选课
首先发布选课通知,即先对教师发出通知(教师得到通知后才可申请教课),然后对学生发出通知(此时已安排完有关选修课的所有信息)
创建课程指定任课教师
设定课程的人数和开课时间安排
分配账号及密码(由于是管理员操作此部分)。
(3)教师开课
获取教师申请教课的信息,包括教师信息及其所要教的课程信息;
提供教师浏览课程的功能,即课程时间、教室等的安排;并提供查询学生选课情况的功能,即选此门课程的名单等;
处理和统计教师对学生成绩的评定。
(4)学生选课
提供学生修改个人信息的功能;
提供学生浏览全部选修课信息的功能,然后接受学生的选课操作;
获取学生及其所选课程的信息后,提供学生浏览自己所选课程的安排情况;
得到选课系统的指令,在相应时间内可以让学生修改自己的选课;
将选课系统统计好的成绩信息反馈给学生供其浏览。
通过以上分析,建立第一层DFD图
课程信息添加:
管理员用户登录后,进入课程信息管理功能单元,输入课程号,课序号,课程名称,教师姓名,这些数据后提交数据,完成课程信息地添加操作,此时在选课表中将出现刚才添加的课程的有关信息。
课程信息修改:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名称,教师姓名,提交后就得到该门课程修改后的信息。
课程信息删除:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录,选择要删除的课程的课序号,提交后,就将选定课程删除了。
已选课程信息的维护:
管理员用户登录后,进入选课程功能单元,就可以看到学生已选的课程,可以通过选择相应的课程号来将相应学生的选课记录删除。
用户信息添加:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入,输入用户名,用户密码,但是此时的用户必须与学生信息管理系统中的学生相对应,即用户必须是存在的。
提交后就将新用户添加到了用户组里面,即这个用户可以使用该系统了。
用户信息修改:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入,选择要修改的用户的用户名,点击后就可以修改该用户的密码。
点击提交后就完成了该用户信息的修改,就得到了该用户修改后的信息。
用户信息删除:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入,选择要删除的用户的用户名,提交之后就将该用户删除了。
用户组里面将不存在改用户。
在第一层分解的基础上,对四个加工进一步分解,建立第二层DFD图
教师开课:
教师将课程及个人信息交由教务处审批,如果教务处审批合格,将课程表公布给学生,如果不合格,则反馈给教师修改。
教师开课数据流程图
学生选课:
学生用户登录后,进入选课管理功能页面,浏览选课信息,学生可以选择要选修的课程,如果限定的课程开设人数已满,或是不足规定人数取消该课程安排的信息,个人在规定日期前就可以修改选课。
学生选课业务流程图
用户登录:
学生用户输入用户名及密码,如果是有效信息,即可以登录选课及成绩查询,如果是无效的信息,则反馈给学生;教师用户输入用户名及密码,如果是有效信息,即可以登录,录入成绩和查询选课信息,如果无效反馈给教师。
教师用户登录数据流程图
学生用户登录数据流程图
2.2.4.数据字典
数据流
编号:
D1
名称:
选课单
描述:
学生根据可选课程提交的选课记录信息
来源:
学生
去向:
报名
数据流组成:
选课单编号+学生(选课时)基本信息+所选课程信息+选课单状态
单位时间流量:
10KB/S
编号:
D2
名称:
课程表
描述:
教务处发给学生的课程表
来源:
教务处
去向:
学生
数据流组成:
课程表编号+课程(选课时)基本信息+上课时间+上课地点
单位时间流量:
10KB/S
编号:
D3
名称:
所申请的课程表
描述:
教师提出申请的课表
来源:
教师
去向:
教务处
数据流组成:
所申请的课程表编号+课程(选课时)基本信息+上课时间+所申请的课程表状态
单位时间流量:
10KB/S
编号:
D4
名称:
课程安排
描述:
教务处安排的课程
来源:
教务处
去向:
教师开课模块,学生选课模块
数据流组成:
课程安排编号+课程(选课时)基本信息+上课时间+上课地点
单位时间流量:
10KB/S
编号:
D5
名称:
学生信息
描述:
学生的个人信息
来源:
用户登录模块
去向:
学生选课模块
数据流组成:
学生信息表编号+学生姓名+学生学号+学生专业
单位时间流量:
10KB/S
编号:
D6
名称:
教师信息
描述:
教师的个人信息
来源:
用户登录模块
去向:
教师开课模块
数据流组成:
教师信息表编号+教师姓名+教师所在系名
单位时间流量:
10KB/S
编号:
D7
名称:
学生名单
描述:
学生选课名单
来源:
管理员
去向:
教师
数据流组成:
学生名单编号+学生姓名+学生学号+学生专业
单位时间流量:
10KB/S
编号:
D8
名称:
学生用户名密码
描述:
学生登录的凭证
来源:
学生
去向:
用户登录模块
数据流组成:
学生用户名密码编号+学生用户名+用户名密码
单位时间流量:
10KB/S
编号:
D9
名称:
教师用户名密码
描述:
教师登录的凭证
来源:
教师
去向:
用户登录模块
数据流组成:
教师用户名密码编号+教师用户名+用户名密码
单位时间流量:
10KB/S
编号:
D10
名称:
信息录入
描述:
管理员向系统录入的信息
来源:
管理员
去向:
选课
数据流组成:
信息录入编号+教师姓名+教师所教课程+课程序号+课程表
单位时间流量:
10KB/S
编号:
D11
名称:
课程统计
描述:
课程的详细信息
来源:
选课
去向:
管理员
数据流组成:
课程统计编号+课程人数+学生选课程信息+选课单状态
单位时间流量:
10KB/S
编号:
D12
名称:
不审批的课程
描述:
教师申请不符合的课程
来源:
申请开课模块
去向:
教师
数据流组成:
不审批的课程编号+课程名称+课程序号+选课单状态
单位时间流量:
10KB/S
编号:
D13
名称:
成绩信息
描述:
教师录入的成绩
来源:
教师登录模块
去向:
学生成绩文档
数据流组成:
成绩信息编号+课程名称+课程序号+学生姓名+学生学号+学生得分情况
单位时间流量:
10KB/S
编号:
D14
名称:
添加
描述:
将学生信息添加到报名表
来源:
报名模块
去向:
学生报名表文档
数据流组成:
添加编号+课程名称+课程序号+学生姓名+学生学号
单位时间流量:
10KB/S
编号:
D15
名称:
修改
描述:
修改选课
来源:
修改模块
去向:
学生报名表文档
数据流组成:
修改编号+课程名称+课程序号+学生姓名+学生学号
单位时间流量:
10KB/S
编号:
D16
名称:
查询
描述:
成绩查询
来源:
学生登录模块
去向:
学生成绩文档
数据流组成:
查询编号+学期+课程序号+学生得分情况
单位时间流量:
开放期间10KB/S
编号:
D17
名称:
选课
描述:
登录系统选课
来源:
登录模块
去向:
选课文档
数据流组成:
成绩信息编号+课程名称+课程序号+学生姓名+学生学号+学生得分情况
单位时间流量:
开放期间10KB/S
编号:
D18
名称:
教师用户有效信息
描述:
正确的用户名密码
来源:
审核模块
去向:
登录模块
数据流组成:
教师用户有效信息编号+用户名+密码+
单位时间流量:
开放期间10KB/S
编号:
D19
名称:
教师用户无效信息
描述:
错误的用户名密码
来源:
审核模块
去向:
登录模块
数据流组成:
教师用户无效信息编号+用户名+密码+
单位时间流量:
开放期间10KB/S
编号:
D20
名称:
学生用户有效信息
描述:
正确的用户名密码
来源:
审核模块
去向:
登录模块
数据流组成:
学生用户有效信息编号+用户名+密码+
单位时间流量:
开放期间10KB/S
编号:
D21
名称:
学生用户无效信息
描述:
错误的用户名密码
来源:
审核模块
去向:
登录模块
数据流组成:
学生用户无效信息编号+用户名+密码+
单位时间流量:
开放期间10KB/S
处理逻辑
处理逻辑编号:
P2.1
处理逻辑名称:
申请开课
简述:
课程审核
输入的数据流:
课程及个人信息
处理:
审核
输出的数据流:
课程表,不审批的课程
处理的频率:
每学期一次
处理逻辑编号:
P3.1
处理逻辑名称:
在线报名
简述:
学生报名选课
输入的数据流:
学生信息
处理:
浏览课程,选课添加
输出的数据流:
选课单
处理的频率:
每学期一次
处理逻辑编号:
P3.2
处理逻辑名称:
报名
简述:
学生报名选课
输入的数据流:
选课单
处理:
选定课程,选定教师,选定上课时间,选定上课地点
输出的数据流:
添加
处理的频率:
每学期一次
处理逻辑编号:
P3.3
处理逻辑名称:
修改
简述:
退课修改
输入的数据流:
修改的课程信息
处理:
浏览课程,修改课程,修改教师,修改上课时间,修改上课地点
输出的数据流:
修改
处理的频率:
每学期一次
处理逻辑编号:
P4.1
处理逻辑名称:
审核
简述:
用户身份审核
输入的数据流:
用户名密码
处理:
教师身份认证,学生身份认证
输出的数据流:
有效的用户信息,无效的用户信息
处理的频率:
每学期一次
处理逻辑编号:
P4.2
处理逻辑名称:
登录
简述:
用户登录
输入的数据流:
有效的信息
处理:
用户进入到系统
输出的数据流:
查询,选课,成绩信息
处理的频率:
每学期一次
数据存储
编号:
F1
名称:
学生成绩
描述:
存放成绩信息
数据结构:
学生学号+课程号+分数
主键:
学生学号,课程号
相关联的处理:
登录
编号:
F2
名称:
选课信息
描述:
存放课程信息
数据结构:
学生学号+课程号+教师编号
主键:
课程号
相关联的处理:
登录
编号:
F3
名称:
学生报名表
描述:
存放学生信息
数据结构:
学生学号+课程号
主键:
学生学号
相关联的处理:
报名,修改
编号:
F4
名称:
课程报名表
描述:
存放教师申请的课程信息
数据结构:
教师编号+课程号
主键:
教师编号,课程号
相关联的处理:
登录
实体
外部实体编号:
S1
外部实体名称:
学生
简述:
选课的主体
输入的数据流:
不合格的选课单,课程表
输出地数据流:
选课单
外部实体编号:
S2
外部实体名称:
教师
简述:
教课的主体
输入的数据流:
不审批的课程单,课程表
输出地数据流:
所申请的课程
外部实体编号:
S3
外部实体名称:
教务处
简述:
管理选课的主体
输入的数据流:
课程统计
输出地数据流:
信息录入
3.系统设计
3.1功能结构图
3.2.数据库概念模型设计(E-R图)
E-R图
实体教师-属性图
实体学生-属性图
实体课程-属性图
实体联系图
3.3数据库设计
3.3.1表的设计
表1:
学生信息表
名称
数据类型
长度
是否允许为空
自动编号
int
10
No
学生学号
nvarchar(50)
50
No
姓名
nchar
8
Yes
性别
char
2
Yes
民族
nchar
10
Yes
政治面貌
char
10
Yes
联系方式
nchar
11
Yes
家庭住址
nchar
50
Yes
邮政编码
nchar
10
Yes
备注
nchar
50
Yes
表2:
教师信息表
名称
数据类型
长度
是否允许为空
教师编号
nchar
10
Yes
教师姓名
nchar
10
Yes
性别
nchar
10
Yes
民族
nchar
10
Yes
家庭住址
nvarchar
50
Yes
联系方式
nvarchar
50
Yes
表3:
课程信息表
名称
数据类型
长度
是否允许为空
课程编号
nvarchar(50)
50
No
课程名称
nchar(30)
30
Yes
学期
nchar(20)
20
Yes
表4:
成绩信息表
名称
数据类型
长度
是否允许为空
成绩编号
int
10
No
学期
nchar(20)
20
Yes
学生学号
nvarchar(50)
50
No
课程编号
nvarchar(50)
50
No
课程名称
nvarchar(50)
50
Yes
分数
Int
10
Yes
表5:
申请课表
名称
数据类型
长度
是否允许为空
教师编号
nchar
10
No
教师姓名
nchar
10
Yes
课程编号
nchar
10
Yes
课程名称
nchar
10
Yes
表6:
选课信息表
名称
数据类型
长度
是否允许为空
学生学号
nchar
10
Yes
课程编号
nvarchar
50
Yes
课程名称
nchar
10
Yes
表7:
教师分配表
名称
数据类型
长度
是否允许为空
教师姓名
nchar
10
Yes
教师编号
nchar
10
Yes
课程编号
nvarchar
50
Yes
课程名称
nvarchar
50
Yes
表8:
通知信息表
名称
数据类型
长度
是否允许为空
通知编号
int
10
No
通知内容
varchar
50
No
表9:
角色信息表
名称
数据类型
是否允许为空
Rolename
bit
Yes
浏览课程
bit
Yes
学生之在线选课
bit
Yes
学生之修改选课
bit
Yes
学生之成绩查询
bit
Yes
教师之申请教课
bit
Yes
教师之查询学生选课情况
bit
Yes
教师之成绩评定
bit
Yes
管理员之录入选课信息
bit
Yes
教师之浏览通知表
bit
Yes
用户信息修改
bit
Yes
管理员之用户管理
bit
Yes
管理员之统计学生选课信息
bit
Yes
管理员之发放通知
bit
Yes
管理员之课程管理
bit
Yes
表10:
用户信息表
名称
数据类型
是否允许为空
Roles
bit
Yes
UserID
bit
Yes
Password
bit
Yes
3.3.2创建数据表的代码
成绩信息表
CREATETABLE[dbo].[成绩信息表](
[成绩编号][int]IDENTITY(1,1)NOTNULL,
[学期][nchar](20)COLLATEChinese_PRC_CI_ASNULL,
[学生学号][nvarchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
[课程编号][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[课程名称][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[分数][int]NULL,
CONSTRAINT[PK__成绩信息表__0DAF0CB0]PRIMARYKEYCLUSTERED
(
[学生学号]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
角色信息表
CREATETABLE[dbo].[角色信息表](
[Rolename][varchar](15)COLLATEChinese_PRC_CI_ASNULL,
[浏览课程][bit]NOTNULL,
[学生之在线选课][bit]NULL,
[学生之修改选课][bit]NULL,
[学生之成绩查询][bit]NULL,
[教师之申请教课][bit]NULL,
[教师之查询学生选课情况][bit]NULL,
[教师之成绩评定][bit]NULL,
[管理员之录入选课信息][bit]NULL,
[管理员之课程管理][bit]NULL,
[管理员之发放通知][bit]NULL,
[管理员之统计学生选课信息][bit]NULL,
[管理员之用户管理][bit]NULL,
[用户信息修改][bit]NULL,
[教师之浏览通知表][bit]NULL
)ON[PRIMARY]
教师分配表
CREATETABLE[dbo].[教师分配表](
[教师姓名][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[教师编号][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[课程编号][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[课程名称][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
教师信息表
CREATETABLE[dbo].[教师信息表](
[教师编号][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[教师姓名][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[性别][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[民族][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[联系方式][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[家庭住址][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
课程信息表
CREATETABLE[dbo].[课程信息表](
[课程编号][nvarchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
[课程名称][nchar](30)COLLATEChinese_PRC_CI_ASNULL,
[学期][nchar](20)COLLATEChinese_PRC_CI_ASNULL,
CONSTRAINT[PK__课程信息表__7E6CC920]PRIMARYKEYCLUSTERED
(
[课程编号]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
申请课表
CREATETABLE[dbo].[申请课表](
[教师编号][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[教师姓名][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[课程编号][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[课程名称][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
CONSTRAINT[PK_申请课表]PRIMARYKEYCLUSTERED
(
[教师编号]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
通知信息表
CREATETABLE[dbo].[通知信息表](
[通知编号][int]IDENTITY(1,1)NOTNULL,
[通知内容][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT[PK_通知信