数据库课程设计报告范例1.docx
《数据库课程设计报告范例1.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告范例1.docx(18页珍藏版)》请在冰豆网上搜索。
数据库课程设计报告范例1
目 录
1引言1
1.1课程设计选题1
1.2课程设计的目的1
1.3本选题的设计背景1
2系统分析与设计1
2.1功能及性能分析1
2.1.1功能需求1
2.1.2性能需求2
2.1.3数据流图2
2.2系统的开发运行环境3
2.3系统总体设计3
3数据库设计4
3.1数据库概念结构4
3.2数据库逻辑结构5
3.2.1关系模型及优化5
3.2.2视图的设计5
3.3数据库的实现6
3.3.1表6
3.3.2安全性设计7
3.3.3一致性设计7
3.3.4触发器的设计7
4详细设计与实现8
4.1登录模块8
4.2考生注册模块9
4.3在线考试模块9
4.4后台功能模块12
4.4.1试题管理模块12
4.4.2考生管理模块13
4.4.3成绩管理模块14
结 论14
参考文献14
1引言
1.1课程设计选题
《在线考试系统》
1.2课程设计的目的
通过数据库系统课程设计,熟悉了SQLSERVER数据库管理系统的结构与组成;掌握了SQLSERVER数据库管理系统的应用技术和的使用;应用ASP开发工具实践了《在线考试系统》的数据库应用系统的设计方法、开发过程和SQLSERVER数据库的管理与维护。
最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。
1.3本选题的设计背景
随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,亦或是数字化时代。
在数字化的网络环境下,学生希望得到个性化的满足,根据自己的情况进行学习,同时希望能够得到科学的评价;教育机构也希望给网上的学生提供更灵活的服务。
在线考试系统正是迎合这一需求而开发的,它旨在探索一种以互联网为基础的考试模式。
通过这种新的模式,为考生创造一种新的考试环境,提高考试工作效率和标准化水平。
2系统分析与设计
2.1功能及性能分析
2.1.1功能需求
从总体上考虑,系统应该实现下列功能:
对管理员来说,包括考生管理、题库管理、成绩管理。
1)、考生管理:
管理员可以查看数据库中已经注册的考生信息和添加新考生。
2)、题库管理:
管理员可以对题库中的试题进行三种基本操作:
添加新的考题、删除旧有考题、修改原有考题,其中试题类型只有单选题,对于试题,管理员可以设置题干、答案、选项等属性。
3)、成绩管理:
管理员可以查看考生的考试成绩。
对普通用户来说,包括在线考试、查询以往考试成绩。
1)、在线考试:
学生可以任选时间进行在线测试,考试结束后,系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩。
也可以返回选择试卷界面再次参加考试,但此次不能选择与前次考试相同的试卷。
2)、查询以往考试成绩:
学生可以在线查询所有参加过的每套试卷的考试相关信息,包括成绩和考试当天的具体时间和日期。
2.1.2性能需求
为了保证考试正常进行,系统性能设计应满足如下要求:
þ保证系统数据安全性:
由于系统通过INTERNET提供服务,开放的环境中系统在权限控制、数据安全、防范内外部攻击破坏等安全措施方面具有良好的应变能力,如在每个登录界面设置了用户信息验证,通过查询登陆界面输入信息是否为数据库中合法用户来实现相应操作;
保证系统数据一致性:
数据库中的所有信息在任何操作下都能够保持一致,如一旦管理员添加了试题,在试题输出页面就可以立即看到,或者一旦有考生考完试,数据库中的成绩表中要有其此次考试的相关信息;
2.1.3工作流程图
在线考试流程图如下所示:
2.2系统的开发运行环境
本系统开发平台:
ASP+SQLServer2000
本系统运行环境:
WindowsXP(安装IIS5.1)
2.3系统总体设计
根据在线考试系统的特点,可以将其分为前台和后台两个部分进行设计:
前台主要用于考生在线考试和查询个人成绩;
后台主要用于管理员对试题信息、考生信息、成绩信息等进行管理。
在每个登陆界面,设置了用户身份验证模式,一旦用户输入与数据库中不符的信息,系统将给出提示信息,以保证该系统的安全性。
1)在线考试系统的前台功能结构如下图:
2)在线考试系统后台功能结构图如下图:
3数据库设计
3.1数据库概念结构
3.1.1数据库中各表的数据描述如下:
根据前面所作的需求分析本系统的实体及其属性如下:
管理员(自动编号,姓名,密码)
考生(考号,密码,姓名,手机号码,QQ号)
试卷(试卷遍号,题数,分值,测试需要的时间)
题库(自动编号,题干,选项A,选项B,选项C,选项D,正确答案,试卷
编号)
成绩(考号,试卷编号,成绩,测试时间)注:
此表的测试时间为考生交卷时的实时时间。
3.1.2整体E-R图
全局E-R图如下:
3.2数据库逻辑结构
3.2.1关系模型及优化
管理员表(自动编号,姓名,密码),其主码为自动编号,属于3NF
考生表(考号,密码,姓名,手机号码,QQ号),其主码为考号,属于3NF
试卷表(试卷遍号,题数,分值,测试需要的时间),其主码为试卷编号,属于3NF
题库表(自动编号,题干,选项A,选项B,选项C,选项D,正确答案,试卷
编号),其主码为自动编号,属于3NF
成绩表(考号,试卷编号,成绩,测试时间),其主码由考号和试卷编号共同构成,属于3NF
3.2.2视图的设计
本系统用到的视图其实只有一种,即:
试卷号分别为数据库中试卷号的所有试题的视图,以试卷号为1的视图为例:
其实系统也可以用到下面这个视图:
成绩表中考试及格的所有信息
3.3数据库的实现
3.3.1表
在线考试系统的数据库中共包含了5个数据表。
管理员信息表(admin)用来保存管理员信息,该表的结构如下:
考生信息表(student)用来保存考生的注册信息,该表的结构如下:
试卷信息表(shijuan)用来保存试卷的相关信息,该表的结构如下:
题库信息表(tiku)用来存储试题的相关信息,该表的结构如下:
成绩信息表(score)用来存储考生考试的相关信息,该表的结构如下:
3.3.2安全性设计
该系统的用户只有两种,一种是管理员,另一种是考生,管理员具有对数据库操作的所有权限,考生只有对自己的成绩查询的权限,对数据库中其他对象的操作权限将受限。
3.3.3一致性设计
主要是对数据库表的三种完整性进行设计:
实体完整性:
通过设置主键都已实现。
参照完整性:
题库表中的试卷号在本表中不做主码,但在试卷表中做主码,所以为题库表的外码,对Insert和Update强制级联更新和级联删除相关记录;成绩表中的考号对应考生表的考号,试卷号对应试卷表中的试卷号。
用户自定义完整性:
在该系统中,设置了成绩表中的成绩字段必须在0到100分之间的Check约束。
3.3.4触发器的设计
在该系统的数据库中,建立了三个触发器:
CreateTriggerT1
Onstudent
forinsert
as
print'欢迎新同学的到来!
'
CREATETRIGGERT2
ONscore
FORUpdate
AS
IFUpdate(score)
BEGIN
PRINT'成绩不允许修改!
'
ROLLBACK
END
createTriggerT3
onshijuan
forinsert
as
if((selecttishufrominserted)!
='10')
begin
print'插入失败,题数必须为10'
rollback
end
4详细设计与实现
4.1登录模块
该模块包括index.asp、admin_log.asp、admin_check.asp三个文件。
如果用户要使用为注册用户提供的功能,那么在使用之前必须登录。
用户只要输入用户名、密码就可以了。
若用户输入的以上两项与数据库中保存的相符,则表明用户登录成功,可以开放全部前台子系统;如果不符,系统会提示错误。
首页界面即考生登录界面,通过下列代码验证考生身份的合法性:
点击管理员按钮可进入管理员登录界面:
4.2考生注册模块
进入系统后,若不是已有用户系统会提示先注册。
进入用户注册模块如下:
若输入为空或已注册的用户名系统会提示重新输入。
4.3在线考试模块
此模块中可以查询考试成绩、进行考试和在线判卷。
点击成绩查询可以查询你以往考试的成绩:
查询个人成绩的代码:
<%
setrs=server.createobject("adodb.recordset")
sql="select*fromscorewherekaohao='"&Application("kaohao")&"'"
rs.opensql,conn,3,3
%>
考号 | 试卷号 | 成绩 | 考试时间 | <%
dowhilenotrs.eof
%>
<%=rs("kaohao")%> | <%=rs("shijuanhao")%> | <%=rs("score")%> | <%=rs("endtime")%> | <%
rs.MoveNext
Loop
%>
点击返回考场可退出,选择试卷号可以开始考试:
交卷后即进入在线判卷:
然后可以点击“返回学生界面”继续考试,也可以点击“退出”退出系统。
考试自动判卷代码如下:
<%
dimscore,kaohao,shijuanhao,endtime
kaohao=Application("kaohao")
shijuanhao=session("shijuanhao")
endtime=now()
sql="selectanswerfromtikuwhereshijuanhao='"&session("shijuanhao")&"'orderbyidasc"
Setrs=conn.Execute(sql)
'给出正确答案并评分
score=0
Response.Write"正确答案:
"
i=0
Dowhilenotrs.eof
Response.Writers("answer")
ifRequest.Form("ans"&i)=rs("answer")then
score=score+10
endif
i=i+1
rs.movenext
loop
Response.Write"
你的答案:
"
fori=0to9
Response.WriteRequest.Form("ans"&i)
next
Response.Write"
"
Response.Write"你的成绩:
"&score
sql="insertintoscorevalues('"&kaohao&"','"&shijuanhao&"','"&score&"','"&endtime&"')"
conn.Execute(sql)
%>
4.4后台功能模块
管理员正确登录后,进入后台管理界面:
4.4.1试题管理模块
管理员添加考题:
管理员编辑考题:
点击每道题目后面的“删除”可以删除该题目。
4.4.2考生管理模块
点击“学生管理”进入学生管理界面:
查看学生信息:
点击“返回学生管理界面”回到学生管理界面。
添加考生:
点击“添加成功点击返回”返回学生管理界面,然后可以退出学生管理界面回到后台管理主界面。
4.4.3成绩管理模块
点击“成绩管理”可以查看考生的成绩:
点击“返回管理界面”回到后台管理主界面,然后可以退出系统。
结 论
本系统经过测试,能完成在线考试系统的基本功能,如前台可以考试,在线判卷评分,查询成绩;后台可以管理考题、考生、成绩等信息。
但还有很多不足之处,如对考生和成绩的查询可以设置成按一定的条件查询,在考前选试卷时也可以添加选择课程,题目类型也可以添加多选或填空等其他题型,由于时间的限制,不能在本次课程设计中实现,不过我会在后期对该系统做进一步的完善,争取能够使该系统能够在网络上正常运行。
参考文献
[1]戎*******.ASP与SQLServer动态网站开发自学导航.*******出版社,20**.02
[2]周**,孙****.SQLServer2005中文版经典案例设计与实现.****工业出版社,20**.10