在线考试系统设计与实现.docx
《在线考试系统设计与实现.docx》由会员分享,可在线阅读,更多相关《在线考试系统设计与实现.docx(37页珍藏版)》请在冰点文库上搜索。
在线考试系统设计与实现
毕业设计说明书
学生姓名
学号
学院
计算机科学与技术学院
专业
计算机科学与技术
题目
在线考试系统的设计与实现
指导教师
讲师/硕士
(姓名)(专业技术职称/学位)
2012
年
5
月
摘要:
基于visualstudio2008开发平台,运用C#语言开发,并在使用sql2008数据库的基础开发设计了在线考试系统。
这个系统采用MVC模式,开发实现了考生在线应试平台和教师在线批改平台,实现了学生的注册和登陆,选择不同的科目考试的功能,以及管理员(教师)登陆,修改密码,修改、查询学生信息,增加考试科目,修改各科目试题等功能。
在线考试系统的实现不仅方便了学生与老师,同时纸张的减少使用也对保护环境起到了一定的积极作用。
本文主要描述了在线考试系统的设计背景,开发过程以及各个功能的使用方法,方便使用者使用。
关键词:
在线考试、Web技术、MVC
Abstract:
TheOnlineTestSystemisbasedontheVisualStudio2008developplatform,usingC#language,andonthebasisofSQLSERVER2008databases.ThissystemisbasedonthedevelopmentmodeofMVC.Thispiecesystematicrealizestudent’sonlinetestandteacher’sonlinechange,registrationofstudentandland,choosedifferentsubjectfunctionofexamination,andtheadministrator(teacher)lands,revisethepassword,revise,inquireaboutstudent'sinformation,increasethetestsubject,revisethefunctions,suchaseverysubjectexaminationquestion.etc.TheonlineTestSystemtakesstudentsandteachersmoreconvenientandthereduceofusingpapersalsomakeapositiveeffortofprotectingenvironment.
ThispaperdescribesthedesignoftheOnlineTestSystembackground;thedevelopmentprocessesaswellasdifferentfeaturesareusedtofacilitateusers.
Thispaperdescribes the design of the onlineexaminationsystem background; thedevelopmentprocesses aswellas differentfeaturesareused tofacilitate users
Keywords:
OnlineTest,Web,MVC
1绪论
计算机技术和通信技术的发展使得以网络为中心的信息系统获得广泛的使用,www系统合数据库是网络化信息服务的基础。
Web能用及时和友好的方式向人们提供大量有用的信息,伴随着大量信息,就需要庞大数据库的管理技术,Web和数据库结合是WWW信息服务技术和分布式数据库技术发展的大势所趋。
把数据库同WWW服务器连接起来的一体化信息网络系统是新一代Internet开发的前沿技术。
Internet的发展,使得基于网络技术的远程网络考试成为可能。
基于WWW模式的网上考试以英特网为桥梁,缩短了教师和学生在时间和空间上的距离,突破了传统课堂上面对面考试方式的限制,是将考试课堂由教室和实验室延伸到英特网所覆盖的任何一个场所的新型考试模式。
2系统解决方案
2.1相关技术
2.1.1ASP.NET简介
ASP.NET是一种将各种Web元素组合在一起的服务器技术,是一个统一的Web开发平台,它提供了生成一个完整的Web应用程序所必须要的各种服务。
与以前的开发模型相比较,它提供了以下数个重要的优点:
1.增强的性能。
ASP.NET是在服务器上运行的编译好的公共语言运行库代码。
与被解释的前辈不同,ASP.NET可利用早期绑定、实时编译、本机优化和外缓存服务。
这相当于在编写代码之前便显著提高了性能。
2.世界级的工具支持。
ASP.NET框架补充了VisualStudio集成开发环境中的大量工具箱和设计器。
WYSIWYG编辑、拖放服务器控件和自动部署只是这个强大的工具所提供功能中的少数几种。
3.威力和灵活性。
由于ASP.NET基于公共语言运行库,因此Web应用程序开发人员可以利用整个平台的威力和灵活性。
.NET框架类库、消息处理和数据访问解决方案都可从Web无缝访问。
ASP.NET也与语言无关,所以可以选择最适合应用程序的语言(如C#),或是跨多种语言分割应用程序。
另外,公共语言运行库的交互性保证在迁移到ASP.NET时保留基于COM的开发中的现有投资。
4.简易性。
ASP.NET使执行常见任务变得容易,从简单的窗体提交和客户端身份验证到部署的站点配置。
例如,ASP.NET页框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似VisualBasic的简单窗体处理模型中处理事件。
另外,公共语言运行库利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
5.可管理性。
ASP.NET采用基于文本的分层配置系统,简化了将设置应用于服务器环境和Web应用程序。
由于配置信息是以纯文本形式存储的,因此可以在没有本地管理工具帮助的情况下应用新设置。
此“零本地管理”哲学也扩展到了ASP.NET框架应用程序的部署。
只需将必要的文件复制到服务器,即可将ASP.NET框架应用程序部署到服务器。
不需要重新启动服务器,即使是在部署或替换运行的编译代码时。
6.可缩放性和可用性。
ASP.NET在设计时考虑了可缩放性,增加了专门用于在聚集环境和多处理器环境中提高性能的功能。
另外,进程受到ASP.NET运行库的密切监视和管理,以便当进程行为不正常(泄漏、死锁)时,可就地创建新进程,以帮助保持应用程序始终可用于处理请求。
7.自定义性和扩展性。
ASP.NET随附了一个设计周到的结构,它使开发人员可以在适当的级别“插入”代码。
实际上,可以用自己编写的自定义组件扩展或替换ASP.NET运行库的任何子组件。
实现自定义身份验证或状态服务一直没有变得更容易。
8.安全性。
借助内置的Windows身份验证和基于每个应用程序的配置,可以保证应用程序是安全的。
2.1.2C#简介
C#语言是微软公司针对.Net平台才推出来的一门新语言,作为.Net平台的第一语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果。
其不但继承了C++、Java等面向对象的强大功能特性,同时还是继承了VB、Delphi等编程语言的可视化快速开发功能,C#是当前第一个完全面向组件的语言。
C#是一种最新的、面向对象的编程语言。
它使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。
使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。
最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
2.1.3VisualStudio2008平台介绍
VisualStudio2008是一个功能强大、高效并且可扩展的编程环境。
有许多激动人心的新功能,它提供统一的集成开发环境,支持在同样的开发环境里用VisualBasic、VisualC++、VisualC#、VisualJ#和其他数十种编程语言,可以编写、调试和部署各种应用程序。
它充分展现了应用程序的开发潜能、并提供了生成应用程序的所需要的工具和技术。
这些应用程序给当今的企业、机构提供了强大的支持,为开发下一代以XMLWeb服务为中心的应用程序而设计,并推动下一代基于XMLWeb服务软件的发展,是有始以来功能最强大、最受欢迎的软件开发工具。
2.1.4SQLServer2008简介
SQLServer2008是Microsoft公司推出的SQLServer数据库管理系统,它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库以及电子商务等。
其特点有如下几点:
1.真正的客户机/服务器体系结构。
2.图形化用户界面。
3.丰富的编程接口工具。
4.SQLServer与WindowsNT完全集成。
5.具有很好的伸缩性。
6.对Web技术的支持。
7.SQLServer提供数据仓库功能。
3系统的分析与设计
3.1可行性分析
所谓可行性分析是指从技术上、经济上、使用上来分析需解决的问题是否存在可行性。
其目的是在尽可能短的时间内用尽可能小的代价确定问题是否有解。
1.技术可行性:
在学校的学习中,我学习了visualstudio2008平台的运用,主要学习了C#语言的开发与运用以及SQLSERVER2008数据库。
虽然学的不是很精通,但是有了一定的基础,在自己的努力与老师和同学的帮助下,是能够在有限的时间内完成系统开发的任务。
2.经济可行性:
visualstudio2008,SQLSERVER2008都有免费的版本,而且都能安装在个人电脑上,学校机房也能安装和使用。
因此开发经费是在个人能接受的有限的范围内的。
儿开发的主要目的还是巩固所学知识,增强实践能力。
3.使用可行性:
使用可行性主要指使用方式(操作方式)是否是用户能接受的。
我会尽量使系统界面友好,操作方便,功能符合学校管理的需求。
4.管理可行性:
系统在管理上要求简单、快捷,从基层的信息录入到修改、删除、查询,层层递进,提高了管理的工作效率和安全性、准确性。
3.2系统框架
本系统是用C++写的,页面是使用aspx的格式的,采用的构架是三层构架。
其中:
1、表示层,它负责响应用户的请求,对于这一层一般代码量很少。
大量的处理工作交给其他的层完成。
2、业务逻辑层,用来对数据进行有效性验证,牵涉到对敏感数据的操作都需要经过业务逻辑层做判断,然后才能决定操作是否合法。
3、数据层,封装对数据库的操作。
可以做一个通用的数据访问层,以后开发项目时,可以直接拿过来用,并且可以提高工作效率。
另外,进行参数传值时,数据都用自定义实体类代替,这样可以实现数据访问层对其它层的完全透明。
自定义实体类封装了所有与数据库表结构相关的代码。
4、Common层,用来封装一些常用的功能性代码,主要用来为其它层服务的。
还有存放一些自定义实体类型和自定义实体类型集合。
用于各层次之间数据交互的承载体。
3.3数据库需求分析
可以说绝大部分的WEB项目都是基于数据库进行开发的,这充分说明了数据库在项目开发中的作用是至关重要的。
一系列的数据表明,项目开发的成功与否,数据库所占的比例往往高达40%左右。
一套完善的数据结构设计可以大幅度的减少程序员在开发过程中的负担,从而使项目的开发进度得到较大的提升。
数据库设计是在给定(本系统使用SQL2008)的数据库管理系统基础之上建立数据库的过程。
数据库设计就是指在充分考虑到数据的逻辑性和物理性的情况下,设计出一套较好的数据库模型,然后根据这套模型建立数据库,从而满足程序的各种应用需求!
一般而言,建立数据库的过程可以分为以下六个阶段:
需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行与维护,参照此种设计过程,数据库结构设计的不同阶段可形成数据库的各级模式。
数据库设计的核心问题是怎么样在充分理解项目的工作流程下建立符合项目要求的数据库模型。
一套完善的数据库设计能够很好的支撑起项目的运行,为每个模块的管理和修正,以及今后可能出现的业务的扩展提供了很好的支撑基础。
因此为了系统开发工作方便、快捷,数据库系统开发应当是易于管理和维护。
在物理设计阶段根据DBMS的特点和处理要求,进行物理储存安排。
3.4数据库模型结构设计
逻辑结构设计的目的是把概念结构设计阶段设计好的全局E-R模型转换成与选用的具体机器上的DBMS所支持的数据模式相符合的逻辑结构。
这些模式在功能上、完整性和一致性约束以及数据库的可扩充性等方面均应满足用户的各种要求。
本系统E-R图所对应的关系模式为:
用户:
用户ID,用户名字,密码,系别ID,权限ID;
课程:
课程ID,课程名称;
系别:
系别ID,系别名称;
权限:
权限ID,权限名称,权限类别;
单选题:
单选题编号,课程ID,细节,答案a,答案b,答案c,答案d,正确答案;
多选题:
多选题编号,课程ID,细节,答案a,答案b,答案c,答案d,正确答案;
判断题:
判断题编号,课程ID,细节,答案;
试卷细节:
试卷编号,试卷ID,题目类型,题目ID,分值;
试卷:
试卷ID,课程ID,试卷名称,试卷状态;
成绩表:
成绩编号,用户ID,试卷ID,分数,答题时间,交卷时间,评语;
用户答案:
答案编号,用户ID,试卷ID,题目类型,题目ID,分值,用户答案,答题时间,状态;
3.5数据库实体属性图
图3-1用户实体属性图
图3-2课程实体属性图
图3-3系别实体属性图
图3-4权限实体属性图
图3-5单选题实体属性图
图3-6多选题实体属性图
图3-7判断题实体属性图
图3-8试卷细节实体属性图
图3-9试卷实体属性图
图3-10成绩表实体属性图
图3-11用户答案实体属性图
3.6数据库物理结构设计
得出数据表的各个关系模式后,需要给出是各数据表结构。
考虑系统的兼容性及编写程序的方便性,可将关系模式的属性对应为表字段的英文名。
同时,考虑到数据依赖关系和数据完整性,需要指出表的主码和外码,以及字段的值域约束和数据类型。
不同的数据类型,对系统的效率有较大的影响,对于SQLSERVER2008中的char和varchar,相同的数据,char比varchar需更多磁盘空间,并可能需要更多的I/O和其它处理操作。
本系统主要设计了11各表:
用户表,课程表,系别表,权限表,单选题表,多选题表,判断题表,试卷细节表,试卷表,成绩表以及用户答案表等。
其中用户表主要保存用户信息,学生以及老师。
一般教师由管理员添加,学生由教师添加信息。
结构如表3-1所示:
表3-1用户表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
UserID
varchar
50
用户ID
主键
否
UserName
varvhar
50
用户名字
是
UserPwd
varchar
64
用户密码
是
DepartmentId
int
8
所属部门ID
外键
是
RoleId
int
8
权限ID
主键
是
课程表主要保存考试科目及课程,结构如表3-2所示:
表3-2课程表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
CourseID
int
8
课程ID
主键
否
CourseName
varchar
200
课程名称
否
系别表主要保存考试系别,结构如表3-3所示:
表3-3系别表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
DepartmentId
int
8
系别ID
主键
否
DepartmentName
varchar
50
系别名称
否
权限表主要保存用户对各个功能使用的权限,用0和1来表示,1为有使用权。
结构如表3-4所示:
表3-4权限表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
RoleId
int
8
权限ID
主键
否
RoleName
varchar
50
权限名称
否
HasDuty_DepartmentManage
int
8
系别管理权限
否
HasDuty_UserManage
int
8
用户管理权限
否
HasDuty_RoleManage
int
8
权限管理权限
否
HasDuty_CourseManage
int
8
课程管理权限
否
HasDuty_PaperSetup
int
8
试卷管理权限
否
HasDuty_PaperLists
int
8
试卷管理权限
否
HasDuty_UserPaperList
int
8
用户试卷管理权限
否
HasDuty_UserScore
int
8
用户成绩管理权限
否
HasDuty_SingleSelectManage
int
8
单选题管理权限
否
HasDuty_MultiSelectManage
int
8
多选题管理权限
否
HasDuty_JudgeManage
int
8
判断题管理权限
否
单选题表主要保存一个单选题的信息,有问题、备选答案、正确答案等,结构如表3-5所示:
表3-5单选题表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
ID
int
8
自增编号
主键
否
CourseID
int
8
课程名称
外键
否
Title
varchar
1000
题目细节
否
AnswerA
varchar
500
答案a
否
AnswerB
varchar
500
答案b
否
AnswerC
varchar
500
答案c
否
AnswerD
varchar
500
答案d
否
Answer
varchar
2
正确答案
否
多选题表类似于单选题表结构如表3-6所示:
表3-6多选题表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
ID
int
8
自增编号
主键
否
CourseID
int
8
课程名称
外键
否
Title
varchar
1000
题目细节
否
AnswerA
varchar
500
答案a
否
AnswerB
varchar
500
答案b
否
AnswerC
varchar
500
答案c
否
AnswerD
varchar
500
答案d
否
Answer
varchar
50
正确答案
否
判断题表主要保存判断题题目以及答案,结构如表3-7所示:
表3-7判断题表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
ID
int
8
自增编号
主键
否
CourseID
int
8
课程名称
外键
否
Title
varchar
1000
题目细节
否
Answer
bit
8
正确答案
否
试卷细节表主要保存一张已经出好的试卷的全部信息,包括所含的题目以及每题分值,结构如表3-8所示:
表3-8试卷细节表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
ID
int
8
自增编号
主键
否
PaperID
int
8
试卷ID
外键
否
Type
varchar
10
题目类型
否
TitleID
int
8
题目ID
否
Mark
int
8
题目分值
否
试卷表主要保存试卷的名称以及状态等,结构如表3-9所示:
表3-9试卷表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
PaperID
int
8
试卷ID
主键
否
CourseID
int
8
课程名称
外键
否
PaperName
varchar
200
试卷名称
否
PaperState
bit
8
试卷状态
否
成绩表主要保存学生考试的得分、教师评语、还考试时间以及交卷时间等信息。
结构如表3-10所示:
表3-10成绩表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
ID
int
8
自增编号
主键
否
UserID
varchar
50
用户ID
外键
否
PaperID
int
1000
试卷ID
外键
否
Score
int
8
得分
否
ExamTime
datetime
考试时间
是
JudgeTime
datetime
交卷时间
是
PingYu
varchar
1000
教师评语
是
用户答案表主要保存用户答题细节,包括每一题的用户答案、考试时间等,结构如表3-11所示:
表3-11用户答案表
字段名
字段类型
字段长度
字段描述
主外键
是否能空
ID
int
8
自增编号
主键
否
UserID
varchar
50
用户ID
外键
否
PaperID
int
1000
试卷ID
外键
是
Type
varchar
50
题目类型
是
TitleID
int
8
题目ID
是
Mark
int
8
分值
是
UserAnswer
varchar
1000
用户答案
是
ExamTime
datetime
考试时间
是
state
varchar
50
试卷状态
是
4系统功能分析与模块的划分
在线考试系统主要提供教师与学生,教师能够登录管理界面进行管理,如出试题,出试卷,学生信息,试卷,学生分数等。
学生能够登录进行在线考试,以及查看自己以往所做试卷的分数与评价。
详细的功能会在下面进行具体分析。
4.1系统主要功能模块图
系统的主要功能模块如图4-1所示:
图4-1系统功能模块图
4.2系统登录模块以及用户界面
系统默认设置一个系统管理员账号,通过此账号能够添加管