毕业设计论文基于asp.docx
《毕业设计论文基于asp.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于asp.docx(30页珍藏版)》请在冰豆网上搜索。
毕业设计论文基于asp
本科生毕业论文
题目:
基于ASP.NET的试卷管理系统
姓名:
何亚娟
学号:
200724101216
专业:
计算机科学与技术
年级:
2007级
学院:
信息科学技术
完成日期:
2011年5月
指导教师:
吴淑雷(教授)
基于ASP.NET的试卷管理系统
作者:
何亚娟指导教师:
吴淑雷教授
(海南师范大学信息科学技术学院,海口,571158)
摘要:
本系统选取MicrosoftSQLServer2005作为后台数据库,采用ASP.NET技术,设计并实现了一个试卷管理系统的基本功能,如试题管理、自动出卷和手动出卷等。
其构建的目的是减少教师的工作,降低了资源的浪费并且提高了保密性。
关键词:
试卷管理系统;自动出卷;ASP.NET;
ExaminationPaperManagementSystemBasedOnASP.NET
Author:
HeYaJuanTutor:
WuShuLeiprofessor
(DepartmentofComputerScienceandTechnology,SchoolofInformationScienceandTechnology,HainanNormalUniversity,HaiKou,571158)
Abstract:
ThesystemchooseMicrosoftSQLServer2005asaBackenddatabase.Usingtechnologydesignedandimplementedthebasicfunctionsoftheexaminationpapermanagementsystem,Suchasquestionsmanagementandcompletedtheexaminationpaperautomaticallyormanually.Theaimofconstructthepapermanagementsystemistoreducetheworkloadofteachersandcutdownthewasteofresourceandimprovingconfidentiality.
Keyphrase:
Papermanagementsystem;Completethevolumeautomatically;ASP.NET;
1绪论
伴随着当今世界知识经济的迅猛发展,计算机已经普遍应用于社会的各个领域,并且扮演着越来越重要的角色。
计算机的普及与应用在一定程度上已经作为衡量一个国家或地区的发达或发展程度的标志。
在这样的大环境下,我们当代的大学生就应该掌握并应用好计算机。
作为计算机专业的学生,就更应该熟练掌握计算机专业技术知识,成为计算机领域的先锋。
本系统选取MicrosoftSQLServer2005作为试题库,在ASP.NET环境下,用C#语言开发的试卷管理系统。
系统以填空题、判断题、选择题、简答题的形式集成一个试题库。
管理员可以手工添加试题到题库并能够按预定要求自动生成试卷。
让老师在传道授业的过程中可以更方便的得到帮助和支持并且减少教师的工作量。
本系统可随时补充新搜集的试题及题型,逐步完善形成试题库系统并提供随机出卷的功能。
1.1选题的背景
随着信息技术的发展和计算机的普及,计算机越来越深入到我们的生活领域中。
由于信息量逐渐增加,学校教务管理工作日益繁重,每学期考试,从组织出卷到试卷的印制及试卷的管理等工作非常繁琐且工作量很大,这种组织管理方式不仅工作任务繁重而且试卷的标准化程度、难易程度、题量大小等各方面难以控制,难以形成有效的试题库,据我所知人工进行试卷流程管理中。
当需要出卷对学生进行测试的时候,需要抽调各专业的相关老师人工出题。
老师出完题以后,会交给该课程的负责人审阅,不合格则需继续修改。
而且审阅又包括初审和复审。
其效率极低,而且易出错。
无法充分发挥历年来的优秀试题及试卷的作用,给试题和试卷的管理带来很多问题和困难。
另外随着计算机网络的持续发展,无论是工作、学习还是生活的节奏将会不断加快,这就要求我们有快捷的信息来源。
如果采用计算机对学生的课程各类信息进行管理,必将大大的提高工作效率、减少教师的工作量,对学生试卷的管理起到积极的作用,所以无论从目前的现状还是面向未来,一个完备的学生试卷管理系统的开发是非常必要的。
设计编写试题库管理系统,是基于二种目的:
一是充分利用现有的计算机系统减轻工作人员的劳动强度。
二是摒弃传统的手工整理、以纸质试卷的形式存放到档案室,浪费纸张等原材料,不利于保护环境。
使用计算机对学生试卷信息进行管理,有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生试卷管理的效率。
1.2研究现状
计算机用于考试管理的时间可以追溯到20世纪60年代,早在那个时候英国首先尝试了将计算机用于考试管理,并称这种计算机管理方式为计算机辅助测试简称CAT。
IBM公司在1968年和美国洛杉矶学区就共同开发了一个最初用于管理美国历史题库的系统CTSS(ClassroomTeacherSupportingSystem)。
后来,加利福尼亚州开发了一个专为加利福尼亚州19个州立大学1.6万名教师和29万学生服务的名为SOCRATEBCATC的系统。
国外的一些系统比较侧重于题库管理,自动组卷。
在线考试以及考后测评。
自1983年成立全国高等教育考试指导委员会以来,各种考试机构纷纷建立。
国内试卷管理方面比较成熟的系统有:
中国教育星网络智能题库系统,是基于WEB方式的智能题库系统,能够在学校现有主页或其他web方式的应用结合在一起,能够满足单机、网络教室、校园网、网校和城域教育网等各种应用环境的需要。
该系统的主要缺点是没有对考试后的试卷分析,没有对试卷的相关属性进行管理。
另外还有鹏博士在线考试系统及题库管理系统以及ExamManager考试管理系统等[1]。
网络上也有很多基于VB或者C++的试卷管理系统。
1.3发展方向
目前,试卷管理系统还存在很多弊端。
尤其是自动出卷部分问题更为明显,如很多时候需要根据学生的学习情况来决定出卷的难易程度。
常常出现自动出卷的题目偏难或者偏易等问题,而达不到预期检测学生学习情况的目的。
故而为了出一份难易适中的试卷,教师仍然需要投入大量的经历去查看已出好的试卷是否合格。
所以,未来的试卷管理系统必然是朝着这个方向发展。
而随着信息技术的发展,试卷管理系统也必将逐步完善,更加智能化、合理化。
方便各用户的使用。
届时,人们将可以完全摒弃手工操作,无需教师再付出大量的劳动,而全部在计算机技术的基础上实现自动的试卷管理。
2需求分析
2.1环境需求
为了保证试卷管理系统能够高效可靠的运行开发环境的软硬件要求。
软件要求操作系统:
WINDOWSXP
数据库:
MicrosoftSQLServer2005
开发工具:
VisualStudio2008
硬件要求硬盘:
250GB
内存:
1GB
显示器:
VGA
2.2功能需求
试卷管理管理系统是一个为试卷建立的系统,主要功能包括试卷科目管理、试卷管理、试题管理和权限管理四个模块。
教师角色功能要求为:
权限管理、添加考试科目、添加试题到题库,查看当前系统的试题、编辑当前的试题、删除当前的试题、查看编辑或者删除存在于题库中的试卷、设置自动出卷或者手工出卷等。
学生角色功能要求为:
查看当前存在于题库中的试卷。
3系统总体设计
3.1系统结构图
试卷管理系统的结构图,如图1所示。
图1试卷管理系统结构图
系统主要设四个主要的模块分别为系统管理模块、试卷科目管理模块、试卷管理模块、试题管理模块。
3.2系统流程图
进入系统后首先是用户登录页面用户登录以后判断是管理员用户还是普通用户,若是普通用户则只有浏览已经存在题库中的试卷,而如果是管理员用户则有操作系统的权限,包括权限操作、编辑试题和出卷等。
其中的权限操作包括管理员权限和普通权限,而试题操作包括添加试题、修改试题、编辑试题、删除试题等。
出卷又包括自动出卷和手工出卷。
系统的流程图如图2所示。
图2系统流程图
3.3功能描述
3.3.1系统管理模块
系统管理模块功能结构如图3所示。
图3系统管理功能结构图
系统管理包括登录系统、退出系统和权限管理三个模块;
登录系统:
允许用户输入用户账户及密码,提交后,系统查询数据库验证身份分配权限。
管理员可以对整个数据表进行管理。
登录流程如图4所示。
图4系统登录流程图
权限管理:
包括添加用户并赋予管理员或普通权限、修改用户、删除用户等。
3.3.2试卷科目管理模块
试卷科目管理功能结构如图5所示。
图5试卷科目管理功能图
试卷科目种类管理包括试卷科目管理页面和试卷科目添加页面,我们可以在试卷科目管理页面查看已经存在的考试科目。
当需要编辑某个科目的时候我们只需要单击进入详细页面进行编辑最后点击按钮保存即可完成编辑现有的考试科目。
并且当我们需要添加考试科目的时候,我们需要点击下面的添加考试科目链接,进行考试科目的添加。
3.3.3试卷管理模块
试卷管理模块功能结构如图6所示。
图6试卷管理模块功能结构图
试卷管理模块的功能就是对现有的试卷进行查看和编辑。
以及通过现有的试题库制作一份试卷出来。
它包括试卷查看、试卷制作两个模块。
试卷查看:
已保存的试卷能够在试卷详细页面进行查看浏览,在试卷的详细页面单击导出word按钮选择存储位置和设置试卷名称即可导出word文档保存。
试卷制作:
包括自动出卷和人工出卷,其中自动出卷需要设置题型的题量和分数并且选择所属科目即可随机的组成一份该科目的试卷。
人工出卷则是手动在试题库中选择试题并且设置试卷名称组成一份试卷。
3.3.4试题管理模块
试题管理模块功能结构如图7所示。
图7试题管理模块功能结构图
鉴于计算机专业课程的特点,系统中试卷管理的题型分设单项选择题、多项选择题、判断题、填空题和简答题。
其中对题目的操作又包括添加试题、删除试题、编辑试题、查询试题四个模块。
用户通过试题查看页面查看已经存在于题库中的试题,若发现错误可以在试题的管理页面直接单击进入详细页面编辑进行修改,修改以后点击保存即完成修改试题。
当用户想将新的试题添加到题库中的时候,只需要单击添加试题按钮即可跳转到试题添加页面。
在试题的添加页面完成添加的录入后单击保存按钮,就完成了试题的添加。
当发现不再需要某个试题的时候,我们只需要在试题的管理页面点击删除即可删除题库中试题。
而关于查询试题则是根据不同的科目和题型检索已经存在于题库中的试题,如选择ASP.NET这门课程的单选题那么在试题管理页面的列表中自动显示和ASP.NET有关的单选题。
4数据库设计
数据库的设计是一个网站构建的重要环节,如果数据库设计的不好将直接影响到以后系统的维护和系统功能的扩充,甚至为以后系统的开发带来很大的不便。
4.1数据库概念结构模型设计
试卷管理系统是采用SQL2005作为网站的后台数据库,根据试卷管理系统的功能需求在试卷管理系统中共建立了9张表[2],它们的实体图如图8——图16所示。
图8用户实体--属性图
图9单选题实体—属性图
图10多选题实体--属性图
图11填空题实体—属性图
图12判断题实体—属性图
图13问答题实体—属性图
图14试卷科目实体—属性图
图15试卷页面实体—属性图
图16试卷试题内容试题—属性图
本系统实体关系E-R图如图17所示。
图17系统实体关系E-R图
4.2数据库逻辑结构模型设计
根据数据库概念结构模型设计[3],我们设计数据库逻辑结构模型如下所示。
Tb_Users(用户名、密码、用户权限、真实姓名、电话号码、备注)。
Tb_SingleProblem(编号、所属科目、题目、选项A、选项B、选项C、选项D、答案)。
Tb_MultiProblem(编号、所属科目、题目、选项A、选项B、选项C、选项D、答案)。
Tb_FillBanksProblem(编号、所属科目、题目、答案)。
Tb_JudgeProblem(编号、所属科目、题目、答案)。
Tb_QuestionProblem(编号、所属科目、题目、答案)。
Tb_Course(编号、科目名称)。
Tb_Paper(编号、试卷编号、试卷所属科目名、试卷名称、试卷状态)。
Tb_PaperDetail(编号、试卷编号、题目编号、试卷类型、分数。
)。
4.3数据库表设计
根据试卷管理系统的数据库概念模型和逻辑模型的设计和分析将设计用户表、单选题表、多选题表、填空题表、判断题表、问答题表、课程表、试卷表和试卷试题内容表等9个表。
用户表用于存放用户信息,具体设计如表1所示。
表1用户数据表
字段名
数据类型及长度
是否为主键
描述
User_name
varchar(20)
否
用户名
User_pwd
varchar(30)
否
用户密码
Userright
varchar(10)
否
用户权限
Name
varchar(50)
否
真实姓名
Tel
Varchar(20)
否
电话号码
Remark
varchar(100)
否
备注
单选题表用户存放单选题信息,具体设计如表2所示。
表2单选题数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
CourseID
int
否
所属科目编号
Title
Varchar(500)
否
题目
AnswerA
varchar(500)
否
答案A
AnswerB
varchar(500)
否
答案B
AnswerC
Varchar(500)
否
答案C
AnswerD
varchar(500)
否
答案D
Answer
varchar
(2)
否
答案
多选题表存放多选题信息具体设计如表3所示。
表3多选题数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
CourseID
int
否
所属科目编号
Title
varchar(500
否
题目
AnswerA
varchar(500)
否
答案A
AnswerB
varchar(500)
否
答案B
AnswerC
varchar(500
否
答案C
AnswerD
varchar(500)
否
答案D
Answer
varchar
(2)
否
答案
填空题表存放填空题信息具体设计如表4所示。
表4填空题数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
CourseID
int
否
所属科目编号
FrontTitile
Varchar(500)
否
题目前描述
BackTitle
Varchar(500)
否
题目后描述
Answer
Varchar(500)
否
答案
判断题表存放判断题信息具体设计如表5所示。
表5判断题数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
CourseID
int
否
所属科目编号
Titile
Varchar(500)
否
题目
Answer
Varchar(500)
否
答案
问答题表存放问答题信息,具体设计如表6所示。
表6问答题数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
CourseID
int
否
所属科目编号
Titile
Varchar(500)
否
题目
Answer
Varchar(500)
否
答案
课程表存放课程信息,具体设计如表7所示。
表7课程数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
Name
Varchar(200)
否
科目名称
试卷信息表存放关于试卷的信息,具体设计如表8所示。
表8试卷信息数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
PaperID
int
否
试卷编号
CourseID
int
否
所属科目编号
PaperName
Varchar(200)
否
试卷名称
Paperstate
Bit
否
试卷状态
试卷试题内容数据表存放试卷中的试题信息,具体设计如表9所示。
表9试卷试题内容数据表
字段名
数据类型及长度
是否为主键
描述
ID
int
是
编号
PaperID
int
否
试卷编号
Type
Varchar(10)
否
试卷类型
TitleID
int
否
题目编号
Mark
int
否
分数
5系统开发过程
5.1类的设计
基于代码重用原则,本系统将常用的数据操作定义在数据库数据操作类中,将数据访问类定义在,将一些常用的函数定义在对应的类中,这样可以方便实现代码重用[4]。
下面分别介绍这两个类。
5.1.1数据操作类
数据操作类中关于安全访问数据库即从数据库中安全获取数据当数据库中的数据为NULL时,保证读取不发生异常的方法定义在GetSafeData.cs文件中。
该文件中定义了从一个DataRow中,安全得到列colname中的值:
值为字符串类型、整数类型、布尔类型、浮点数类型和时间类型等的方法。
以安全得到列colname中的值:
值为字符串类型方法定义为例。
publicstaticstringValidateDataRow_S(DataRowrow,stringcolname)
{
if(row[colname]!
=DBNull.Value)
returnrow[colname].ToString();
else
returnSystem.String.Empty;
}
关于数据库接口类的方法定义在DataBase.cs文件中。
该文件中定义了一下关于数据库连接的方法包括打开数据库连接、关闭数据库连接、释放资源等。
打开数据库连接定义:
privatevoidOpen()
{
if(Connection==null)
{
Connection=newSqlConnection(ConnectionString);
Connection.Open();
}
else
{
if(Connection.State.Equals(ConnectionState.Closed))
Connection.Open();
}
}
关闭数据库连接定义:
publicvoidClose()
{
if(Connection.State.Equals(ConnectionState.Open))
{
Connection.Close();
}
}
释放资源定义:
publicvoidDispose()
{
if(Connection!
=null)
{
Connection.Dispose();
Connection=null;
}
}
5.1.2常用函数类
数据操作类分别为题目操作类、试卷科目操作类和试卷操作类存放在App_Code文件夹下面。
其中题目操作类包括单选题操作类SingleProblem.cs、多选题操作类MultiProblem.cs、填空题操作类FillBlanksProblem.cs、判断题操作类JudgeProblem.cs和问答题的操作类QuestionProblem.cs;试卷科目操作类Course.cs;试卷操作类Paper.cs。
在这些操作类中定义了一下操作方法。
以单选题为例:
在SingleProblem.cs文件中定义了单选题的一些方法定义有插入方法InsertByProc(),更新方法UpdateByProc(intTID),删除方法DeleteByProc(intTID),查询方法QuerySingleProblem(intTCourseID)等。
当我们在操作单选题页面时,只需调用这些方法即可实现。
而无需每次都要写很长的代码来实现插入删除等功能。
插入方法InsertByProc()定义:
publicboolInsertByProc()
{
SqlParameter[]Params=newSqlParameter[7];
DataBaseDB=newDataBase();
Params[0]=DB.MakeInParam("@CourseID",SqlDbType.Int,4,CourseID);Params[1]=DB.MakeInParam("@Title",SqlDbType.VarChar,1000,Title);Params[2]=DB.MakeInParam("@AnswerA",SqlDbType.VarChar,500,AnswerA);
Params[3]=DB.MakeInParam("@AnswerB",SqlDbType.VarChar,500,AnswerB);
Params[4]=DB.MakeInParam("@AnswerC",SqlDbType.VarChar,500,AnswerC);
Params[5]=DB.MakeInParam("@AnswerD",SqlDbType.VarChar,500,AnswerD);
Params[6]=DB.MakeInParam("@Answer",SqlDbType.VarChar,2,Answer);
intCount=-1;
Count=DB.RunProc("Proc_SingleProblemAdd",Params);
if(Count>0)
returntrue;
elsereturnfalse;
}
更新方法UpdateByProc(intTID)定义:
publicboolUpdateByProc(intTID)
{
SqlParameter[]Params=newSqlParameter[8];
DataBaseDB=newDataBase();
Params[0]=DB.MakeInParam("@ID",SqlDbType.Int,4,TID);
Params[1]=DB.MakeInParam("@CourseID",SqlDbType.Int,4,Cour