学生选课系统信息系统分析与设计课程设计Word格式.docx
- 文档编号:22295324
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:26
- 大小:341.06KB
学生选课系统信息系统分析与设计课程设计Word格式.docx
《学生选课系统信息系统分析与设计课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《学生选课系统信息系统分析与设计课程设计Word格式.docx(26页珍藏版)》请在冰豆网上搜索。
描述:
管理员维护整个系统,包括课程设置,选课时段设置,选课前学生不可登录;
选课结束,学生只可查询,管理员对选课结果进行统计;
查询选课情况,对学生的选课申请进行处理,进行用户管理;
限制最大选课人数;
排课、发布选课信息;
数据备份和恢复等。
(2)教师
教师撰写教师反馈,反馈选课信息,对排课者提出反馈意见,供排课者在排课时参考使用。
查询课程基本情况、学生情况。
(3)学生
描述:
在选课系统中查询课程、教室信息,查看教师反馈,提交选课申请,撤销申请,查询选课情况,登录系统,进行个人信息修改等与选课有关的活动。
根据上面所述,我们对该选课系统进行了划分,分为三个主要功能,即登录控制、排课和选课,分别对应三个子系统,即登录子系统、排课子系统和选课子系统。
其中,登录子系统是前提,排课子系统是基础,选课子系统是关键。
登录子系统区分排课者(即系统管理员),教师和学生这三者的不同身份,给出不同的权限,在页面中根据身份判断其相应具有的权限,进行不同的操作。
排课子系统主要供排课者使用,其中设定选课时间段,进行排课并检测排课冲突,发布选课信息都是选课的前提和基础。
选课子系统是本系统要实现的最终目的。
选课子系统主要供学生选课使用,在这里可以进行与选课有关的活动,包括课程浏览查询、选课、退选课程。
4.系统设计
4.1系统功能模块设计
4.2数据库设计
4.2.1数据字典
根据数据流程分析,对系统数据进行分析和汇总,建立系统数据字典。
下面列出部分数据字典内容。
(1)排课
数据流编号:
A01
系统名:
网上选课系统
条目名:
排课
输入:
课程信息表,教学楼信息表,教师信息表,院系信息表
输出:
排课表,选课通知表
排课者按年级排课。
排课表内容包括课程代号,课程名称,受课院系,专业代码,专业名称,教师代号,考察方式,学分,开课时间,上课时间,地点,开课院系,最大上课人数和课程选则限制(必修或选修)等。
在排课过程中,排课者可以查询教室使用情况和院系课程设置。
在排课者提交排课表以后,系统应当确保该排课方案中没有时间冲突和教室冲突。
如果有冲突,系统应该提示排课者具体冲突产生的原因。
(2)选课
A02
条目名:
选课
输入:
排课表,选课通知表,教师反馈表
输出:
学生选课表
学生可以在规定的时间段内选课。
该规定时间段由排课者通过发布消息通知教师和学生。
选课过程如下:
学生在选课表上单击课程号,则该信息被提交到服务器,并显示学生的选课结果。
选课表的内容包括排课表的全部内容。
如果一门课程已经达到最大选课人数,则不能再选择这门课程。
如果有学生退课,则该门课程的已选人数减1。
(3)设定选课时间段
A03
系统名:
设定选课时间段
选课时间段表输出:
选课时间段表
排课者应该设定选课时间段。
学生只能在此设定的时间段内选课和退课。
4.2.2数据表
数据库中的相关表结构如表所示:
学生信息表(stu_inform)表4-1
字段名
数据类型
长度范围
是否为空
字段说明
学号
Char
8
否
姓名
Nvarchar
是
性别
2
班级
出生年月日
datetime
是否已选课
char
教师表表4-2
字段名称
字段含义
数据类型及长度
约束
默认值
Tno
教师号
varchar(15)
主键
Tname
非空
Tsex
varchar
(2)
男
Tage
年龄
int
>
0或<
100
Tpass
密码
课程表表4-3
Cno
课程号
Cname
课程名
Credit
学分
Ctime
Cbegintime
选课表表4-4
Sno
主键,外键
Grade
成绩
Int
=0或<
=100
登录信息表(stu_login)表4-5
用户名
权限代号
3
教师课程关系表表4-6
外键
4.3代码设计
4.3.1学号的代码设计
管理信息系统的代码有七种门类,按照人员代码的设计要求,考虑到学校有大一到大四共四个年级,且每个年级人数不超过四位数,年级用入学年份表示,因此使用组合码,并用10位字符表示。
设计方案如图所示。
AABBBCCDEE
入学顺序号
班级号
专业
院系
入学年份
4.3.2班级代码设计
班级代码采用两位字符表示,采用方案如图所示。
X Y
年级号
4.3.3课程号代码设计
S c
课程代码
课程编号
表4-6
课程代码
课程名称
授课老师
上课地点
上课时间
节次
Sc00001
社交礼仪
*****
Sc00002
石油工程概论
******
Sc00003
证券学概论
……
4.4结构设计
4.4.1概念结构设计
E-R模型如图4-1、4-2所示。
图4-1学生课程联系E-R图
学生
课程
选修
M
N
成绩
系部
结束时间
开始时间
图4-2排课过程E-R图
(二)选课子系统
1.系统涉及到的实体
E-R模型如图4-3、4-4所示。
图2-3选课过程实体及其属性
图4-3选课过程E-R图
图4-4选课过程E-R图
(三)合并上述E-R图,得到系统的总E-R图,如图4-5所示。
图4-5系统的总E-R图
4.4.2逻辑结构设计
根据以上的分析,将E-R模型转换成逻辑模型,如下所示:
(1)将实体转化为关系模型:
管理员(编号,用户名,密码,用户类型)
课程(课程编号,面向专业编号,学分,限选性质,教师编号,考察方式,最大选课人数,课程名称,开课院系编号,面向的年级)
选课通知(通知编号,通知标题,通知内容,通知时间,是否为“热点”)
选课时间段(开始选课时间,终止选课时间)
学生(学号,用户名,密码,用户类型,用户编号)
(2)将各关系转化为实体模型:
排课(时间,地点)
选课(成绩)
(3)将合并后的概念模型转化为关系模型:
发布(通知编号,编号)
设置(编号,用户名,密码,用户类型,开始选课时间,终止选课时间)
4.4.3物理结构以及存储文件:
将以上的逻辑模型转化为物理模型,如下所示:
图4-6选课过程E-R图
4.5具体设计
4.5.1界面设计
创建登录窗口
登录窗口主要是用来登录主界面的一个关卡,根据用户的不同设有不同的权限,其主界面如图4-8所示。
图4-7登录窗口界面
其登录事件代码如下:
//定义两个变量
stringpassword,username
//Profilestu_select
SQLCA.DBMS="
ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="
ConnectString='
DSN=stu_select;
UID=;
PWD='
"
//连接数据库
connect;
//检索用户名和密码记录
SELECTstu_login.学号,
stu_login.用户名,
stu_login.密码,
stu_login.权限代号
INTO:
stu_no,
:
username,
password,
gl_no
FROMstu_login
WHEREstu_login.用户名=:
sle_1.text;
//判断用户输入的用户名是否正确
ifsle_1.text="
orsle_2.text="
then
messagebox("
错误!
用户名或密码不能为空!
exclamation!
ok!
2)
else
ifusername=sle_1.textandpassword=sle_2.textthen
open(w_main)
close(w_login)
messagebox("
用户名或密码错误,请重新输入!
endif
创建个人信息窗口
单击主窗口的“查看学生个人信息”选项后,进入此窗口界面,在本窗口主要实现对登录学生信息的查看,以验证学生信息是否正确,下图为个人信息窗口界面,如图4-8所示。
图4-8学生个人详细信息窗口
其中open事件代码如下:
//定义全局变量
stringstu_no
stringlogin_name
stringgl_no
dw_1.settransobject(sqlca)
stringuser_name,student_no
//检索用户的学号
stu_login.用户名
student_no,
user_name
login_name;
//根据学号查询用户的详细信息
dw_1.setfilter("
)
stu_inform_学号='
+student_no+"
'
dw_1.retrieve()
图4-9选课过程E-R图
其中一些主要程序代码如下:
(1)open事件代码
(2)“查找”按钮的click事件代码
ifsle_1.text="
orsle_1.text="
请在此输入查询内容"
"
请输入查询内容!
sle_1.eventgetfocus()
ifrb_1.checked=truethen
//精确查找
choosecaseddlb_1.text
case"
课程代号"
dw_1.setfilter("
课程代号='
+sle_1.text+"
课程名称"
课程名称='
授课教师"
授课教师='
上课时间"
上课时间='
endchoose
//模糊查询
课程代号like"
+"
%"
%'
课程名称like"
授课教师like"
上课时间like"
endchoose
endif
//检索数据
(3)“选课”按钮click事件代码
open(w_course_add)
(4)“查看课表”按钮click事件代码
open(w_course_table)
图4-10选课过程E-R图
4.5.2系统模块设计
模块设计的主要方法是结构化方法,主导思想是以系统的逻辑功能设计和数据流关系为基础,将本系统分解为功能明确,易于修改,大小适中的模块结构。
本系统主要分为三大模块:
登录模块、排课模块、选课模块。
系统各模块功能如下图所示:
图4-11选课过程E-R图
系统各模块功能说明:
1登录模块
(1)选择不同身份登录系统
本系统有三种类型的用户:
当不同的用户登录系统选择不同的用户类型时,他们就会分别拥有不同的权限。
管理员的权限最大,主要是拥有排课权限、设置选课时段权限和发布选课信息权限。
教师的主要权限是反馈排课信息。
学生的主要权限是进行选课,退课。
(2)修改密码
每个用户登录后,都可更改初始密码,以增强系统的安全性。
(3)退出
每个用户登录系统后单击退出,就可退出系统。
这样,他们遗留在Session对象中的信息就会被清除,同样增强了系统的安全性。
2排课模块
本模块是选课系统的基础。
(1)已排排课表
管理员在排课过程中,可以点击已排排课表来显示已经排好的选课信息,并可对此信息进行增、删、改、查。
在排课者提交排课表后,系统应当确保该排课方案中没有时间冲突和教室冲突。
(2)备份排课表
管理员对排课信息进行修改后,可以点击备份排课表,对新的排课信息进行备份。
(3)导入排课表
管理员可以把以前的排课信息导入到排课表,这样可以增加排课的灵活性和方便性。
此外,管理员还可以把以前的排课信息删除。
(4)对未排的课程排课
排课者可以对课程信息表,院系信息表,教师表中的信息进行联合查询后,在教学楼信息表中选择相应的教室,并选则相应的时间。
(5)设定选课时间段
排课者应该设定选课时间段。
学生只能在此设定的时间段内选课。
如果学生不在选课时间段内选课,系统应该显示提示信息。
(6)发布选课信息
排课完成以后,排课者可以在选课系统中发布关于选课的各种消息。
(7)查看教师反馈
排课和选课模块都可查看教师反馈。
3选课模块
(1)查看可选择的课程信息
学生在选课时可以查询所有课程的详细信息,如课程简介、课时、学分、考察方式等内容。
学生也可以按课程代号查询选课信息,或者按教师代号查询选课信息。
(2)提交选课申请
学生若想选择某门课程,只要点击相应的课程号,就可选课。
如果该选课操作引起选课冲突(如超过最大选课人数或重复选择同一门课程),系统就会提示出错信息。
(3)退课
学生在选课时间段内可以删除某门已选的课程。
该信息被提交到服务器,服务器返回该删除信息为弹出式窗口。
(4)显示学生选课表
学生选完某门课程后,在选课页面的左侧,就可以显示该学生相应的选课信息。
(5)查看教师反馈
5.总结
本系统界面简洁,操作方便。
本系统可以实现“教师反馈“,“选课查询“,”课程查询“,”课程设置“,”教室安排“,”课表查询“,”排课系统“,”进入选课“等功能,达到了选课系统的基本要求,具有实用价值。
通过这次毕业设计,我对数据库方面的知识有了进一步的认识,尤其是存储过程的使用。
使用SQL存储过程有很多优点,如下所示:
(1)SQL存储过程执行起来比SQL命令文本快得多。
当一个SQL语句包含在存储过程中时,服务器不必每次执行它时都要分析和编译它。
(2)可以在多个网页中调用同一个存储过程,这使得站点易于维护。
如果一个SQL语句需要做某些改动,只要做一次即可。
(3)可以在存储过程中利用Transact-SQL的强大功能。
一个SQL存储过程可以包含多个SQL语句。
可以使用变量和条件,这意味着可以用存储过程建立非常复杂的查询,以非常复杂的方式更新数据库。
(4)最后,这也许是最重要的,在存储过程中可以使用参数,可以传送和返回参数,还可以从SQLRETURN语句得到一个返回值。
由于设计MIS经验不足,我们小组虽然顺利的完成了系统的分析、设计和调试工作,但是本系统仍需进一步扩充和完善,使之更符合实际的应用。
如在选课的功能基础上,增加选修课成绩的登记和管理功能等。
通过这次毕业设计,我充分体会到理论知识的重要性,但更加体会到实践的重要性。
只有通过实践,我们才能发现并解决问题,才能真正掌握一项技术。
我会在将来的软件设计、开发过程中进一步学习,不断提高自己的专业技能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 信息 系统分析 设计 课程设计