学生选课系统课程设计说明书.docx
- 文档编号:7879336
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:53
- 大小:515.69KB
学生选课系统课程设计说明书.docx
《学生选课系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《学生选课系统课程设计说明书.docx(53页珍藏版)》请在冰豆网上搜索。
学生选课系统课程设计说明书
中北大学
课程设计
说明书
学生姓名:
学号:
学院:
软件学院
专业:
软件工程
题目:
学生选课系统
指导教师
2013年12月9日
1.设计任务概述(包括系统总体框图及功能描述)
1.1组织结构图
选课管理系统组织结构图
1.1业务流程图
学生选课工作的一般过程是:
教务处发通知,通知教师将申报课程名单给教务处,教务处审批,审批合格后将课程及上课时间和每门课程的名额限制公布给学生,不合格的退还给教师,学生在规定的时间内选课,正确的选课结果交给教务处错误的返回给学生。
选课管理系统业务流程图
1.1数据流程图
根据系统功能要求,画出学生选修课管理系统的分层DFD图。
首先画出顶层的DFD图。
顶层确定了系统的范围,其外部实体为教师、学生。
在顶层DFD图的基础上再进行分解,做进一步分解:
(1)用户登录
获取用户输入的用户名及密码;
若出现用户名、密码错误或不匹配现象,反馈错误提示;
在用户名及密码都正确的前提下,支持密码修改。
(2)选课
首先发布选课通知,即先对教师发出通知(教师得到通知后才可申请教课),然后对学生发出通知(此时已安排完有关选修课的所有信息)
创建课程指定任课教师
设定课程的人数和开课时间安排
分配账号及密码(由于是管理员操作此部分)。
(3)教师开课
获取教师申请教课的信息,包括教师信息及其所要教的课程信息;
提供教师浏览课程的功能,即课程时间、教室等的安排;并提供查询学生选课情况的功能,即选此门课程的名单等;
处理和统计教师对学生成绩的评定。
(4)学生选课
提供学生修改个人信息的功能;
提供学生浏览全部选修课信息的功能,然后接受学生的选课操作;
获取学生及其所选课程的信息后,提供学生浏览自己所选课程的安排情况;
得到选课系统的指令,在相应时间内可以让学生修改自己的选课;
将选课系统统计好的成绩信息反馈给学生供其浏览。
通过以上分析,建立第一层DFD图
课程信息添加:
管理员用户登录后,进入课程信息管理功能单元,输入课程号,课序号,课程名称,教师姓名,这些数据后提交数据,完成课程信息地添加操作,此时在选课表中将出现刚才添加的课程的有关信息。
课程信息修改:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名称,教师姓名,提交后就得到该门课程修改后的信息。
课程信息删除:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录,选择要删除的课程的课序号,提交后,就将选定课程删除了。
已选课程信息的维护:
管理员用户登录后,进入选课程功能单元,就可以看到学生已选的课程,可以通过选择相应的课程号来将相应学生的选课记录删除。
用户信息添加:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入,输入用户名,用户密码,但是此时的用户必须与学生信息管理系统中的学生相对应,即用户必须是存在的。
提交后就将新用户添加到了用户组里面,即这个用户可以使用该系统了。
用户信息修改:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入,选择要修改的用户的用户名,点击后就可以修改该用户的密码。
点击提交后就完成了该用户信息的修改,就得到了该用户修改后的信息。
用户信息删除:
管理员用户登录后,进入用户信息管理功能单元,如果是已经登录进入,选择要删除的用户的用户名,提交之后就将该用户删除了。
用户组里面将不存在改用户。
在第一层分解的基础上,对四个加工进一步分解,建立第二层DFD图
教师开课:
教师将课程及个人信息交由教务处审批,如果教务处审批合格,将课程表公布给学生,如果不合格,则反馈给教师修改。
教师开课数据流程图
学生选课:
学生用户登录后,进入选课管理功能页面,浏览选课信息,学生可以选择要选修的课程,如果限定的课程开设人数已满,或是不足规定人数取消该课程安排的信息,个人在规定日期前就可以修改选课。
学生选课业务流程图
用户登录:
学生用户输入用户名及密码,如果是有效信息,即可以登录选课及成绩查询,如果是无效的信息,则反馈给学生;教师用户输入用户名及密码,如果是有效信息,即可以登录,录入成绩和查询选课信息,如果无效反馈给教师。
教师用户登录数据流程图
学生用户登录数据流程图
(正文宋体小四号字,1.5倍行距)
2.本设计所采用的数据结构(如:
链表、栈、树、图等)
数据流
编号:
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
编号:
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创建数据表的代码
成绩信息表
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_通知信息表]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,
[课程编号][nvarchar](50)COLLATEChinese_PRC_CI_ASNOTNULL
)ON[PRIMARY]
学生信息表
CREATETABLE[dbo].[学生信息表](
[自动编号][int]IDENTITY(1,1)NOTNULL,
[学生学号][nvarchar](50)COLLATEChinese_PRC_CI_ASNOTNULL,
[姓名][nchar](8)COLLATEChinese_PRC_CI_ASNULL,
[性别][char]
(2)COLLATEChinese_PRC_CI_ASNULL,
[民族][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[政治面貌][char](10)COLLATEChinese_PRC_CI_ASNULL,
[联系方式][nchar](11)COLLATEChinese_PRC_CI_ASNULL,
[家庭住址][nchar](50)COLLATEChinese_PRC_CI_ASNULL,
[邮政编码][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[备注][nchar](50)COLLATEChinese_PRC_CI_ASNULL,
CONSTRAINT[PK__学生信息表__0425A276]PRIMARYKEYCLUSTERED
(
[学生学号]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
用户信息表
CREATETABLE[dbo].[用户信息表](
[Roles][char](15)COLLATEChinese_PRC_CI_ASNULL,
[UserID][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,
[Password][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
3.3.2存储过程代码
createproc[dbo].[liulan]
@cidnvarchar(50)
as
select*
from课程信息表
where课程编号=@cid
3.3.3视图代码
视图名:
学生选课信息表
CREATEVIEW[dbo].[学生选课信息表]
AS
SELECTdbo.选课信息表.学生学号,dbo.选课信息表.课程名称,dbo.教师分配表.教师姓名
FROMdbo.选课信息表INNERJOIN
dbo.教师分配表ONdbo.选课信息表.课程编号=dbo.教师分配表.课程编号
4程序运行结果(拷屏)
4.1登陆界面
登录窗体代码:
privatevoid登录button1_Click(objectsender,EventArgse)
{
try
{
stringstrdt="select*from用户信息表whereUserID='"+用户名textBox1.Text.Trim()+"'andPassword='"+密码textBox2.Text.Trim()+"'andRoles='"+用户类型comboBox1.Text.Trim()+"'";
DataTabledt=newDataTable();
SqlDataAdapterda=newSqlDataAdapter(strdt,MyConnection);
da.Fill(dt);
role=用户类型comboBox1.Text;
if(dt.Rows.Count!
=0)
{
MessageBox.Show("登录成功!
","提示!
",MessageBoxButtons.OK,MessageBoxIcon.Information);
this.Hide();
MainFormf1=newMainForm();
stringsql="select*from角色信息表whereRolename='"+用户类型comboBox1.Text.Trim()+"'";
MyConnection.Open();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 课程设计 说明书