在线考试系统1.docx
《在线考试系统1.docx》由会员分享,可在线阅读,更多相关《在线考试系统1.docx(66页珍藏版)》请在冰豆网上搜索。
![在线考试系统1.docx](https://file1.bdocx.com/fileroot1/2023-4/28/f5da5e08-c460-4370-8345-7e9712165ff2/f5da5e08-c460-4370-8345-7e9712165ff21.gif)
在线考试系统1
网上考试系统
摘要
随着计算机网络技术和网络教育的不断发展,传统的基于纸笔的考试形式已不再适应现在的发展需要,计算机在线考试正在逐步取代传统考试。
在线考试系统利用网络实现在线考试和评分等环节,现在教考分离,在一定程度上减少了形象考试的主观因素,同时减少了教师的工作量。
在线考试系统的设计就是基于上述目的开发设计的。
本系统主要包括考生考试、教师组卷给分、管理员管理三大模块,具有在线考试、成绩查询、试卷管理、组卷和评分、用户管理等功能。
本系统利用了微软的.Net平台和SQLServer2005数据库进行开发,采用了工厂模式的三层架构,同时对系统的工作原理、需求分析和总体设计做了简要的概述。
关键词:
在线考试系统;C#;SQLServer2005
目录
摘要II
第1章项目分析1
1.1问题描述1
1.2技术分析1
1.3工程进度计划2
第2章系统分析与设计3
2.1系统分析3
2.1.1参与者3
2.1.2用例及用例规约3
2.1.3用例图4
2.2系统设计5
2.2.1时序图5
2.2.2类图8
2.2.3系统体系结构设计10
2.3数据库设计10
2.3.1E-R图11
2.3.2关系模式12
2.3.3表的设计13
第3章实现与测试18
3.1学生选择试卷18
3.1.1活动图19
3.1.2界面19
3.1.3代码20
3.1.4测试用例22
3.2学生进行考试22
3.2.1活动图23
3.2.2界面23
3.2.3代码28
3.2.4测试用例31
第4章结束语32
附录:
主要源程序34
第1章项目分析
近年来,互联网和计算机的迅速发展,人们的生活、思维、工作、教育以及受教育等方式都发生了改变。
开发、应用能够整合教育测评理论、方法和现在信息技术手段的在线考试系统,为学生个性化学习提供“灵活、方便、科学、公平”的“个别化学习测评服务”已成为教育工作者所面临的一项重要任务,通过在线考试教师可对学生的学习进行考核,了解学生的学习效果,为改进教学提供了依据。
学生可通过网上自测了解自己对教学内容的掌握情况,提高学习兴趣。
题库的及时更新和维护,保证试题库中的试题更好地适应教学要求,在线考试时就可以减少老师的阅卷工作量,提高老师的工作效率。
所以开发一个在线考试管理系统势在必行。
它相对于纸介质考试而言具有省时、省力、存储方便等优点。
现在已经被越来越多地应用到各种层次和领域的考试当中。
因此,在线考试系统的开发有着必要意义。
1.1问题描述
1、在线考试系统解决教师随机组卷和按章节组卷的问题。
2、在线考试系统解决学生随机选择试卷、显示试卷、答卷、保存答案的问题。
3、在线考试系统解决教师在计算机上手动判分的问题。
4、在线考试系统能够对学生、教师、试题库等的管理。
1.2技术分析
在线考试系统主要使用的开发工具有:
VisualStudio2005、SQLServer2005。
VisualStudio2005为系统提供开发环境,SQLServer2005提供连接的数据库,在线考试系统是基于工厂模式的三层架构。
VisualStudio2005是微软公司推出的最新程序开发工具,是VisualStuido.Net重要组成部分,在VisualStudio.NET平台上使用C#语言可以开发各种各样的程序。
SQLServer2005是结构化查询语言的缩写,是一种介于关系代数与关系演算之间的语言,是一种用来与关系数据库管理系统通信的标准计算机语言。
其功能包括数据查询、数据操纵、数据定义和数据控制四方面,是一个通用的、功能极强的关系数据库语言,目前已成为关系数据库的标准语言。
基于工厂模式的三层架构可以很容易的用新的实现来代替原有层次的实现,降低层与层之间的依赖,有利于标准化,利于各层之间的复用。
1.3工程进度计划
2011-3-21至2011-4-3:
需求分析阶段
2011-4-4至2011-4-17:
设计界面阶段
2011-4-18至2011-5-1:
编码阶段
2011-5-2至2011-5-13:
测试阶段
第2章系统分析与设计
2.1系统分析
在线考试系统在以后应用过程中越来越普遍的系统,本系统是基于C/S的系统。
在在线考试中学生可以选择试卷、进行考试、查询成绩;教师可以组卷、批改卷子、添加试题;管理员可以对用户进行管理。
系统的界面设计也分为学生、教师、管理员三大块。
2.1.1参与者
学生教师管理员
2.1.2用例及用例规约
用例模型通常由一组用例组成,其基本组成部件是用例、参与者和系统。
1、登录的用例规约如表2.1所示:
表2.1用户登录用例规约
用例名称:
用户登录
用例ID:
01
关联角色:
学生教师管理员
用例说明:
系统验证用户身份合法性后进入系统
前置条件:
无
基本事件流:
1.用户请求系统登陆
2.系统弹出系统登陆页面
3.用户输入用户名信息
4.用户输入口令信息
5.用户选择登录角色信息
6.用户点击确认登录按钮
7.系统查询数据库获取用户信息赋予相应权限,根据用户权限在管理机能页面上显示相应系统主界面
8.用例结束
其它事件流:
1.用户名信息为空
2.系统提示用户名信息不能为空
3.用例结束
异常事件流:
1.登陆失败
2.系统登陆时出现系统故障(例如网络故障或数据库服务器故障)弹出异常界面,提示系统登陆失败
后置条件:
用户登录成功,进入系统主界面
2、学生考试端的用例规约如表2.2所示:
表2.2学生考试端用例规约
用例名称:
学生考试
用例ID:
02
关联角色:
管理员教师
用例说明:
系统验证用户身份为学生后才能进入
前置条件:
身份为学生
基本事件流:
1.学生请求考试
2.系统随机选择试卷
3.显示随机试卷的基本信息
4.学生进入考试
5.学生保存答案
6.学生提交试卷
7.学生答卷过程中中途断电而未提交试卷,可重新登录进入考试试卷并下载已答过的答案,并提交试卷。
8.用例结束
其它事件流:
1.学生信息查询
2.学生成绩查询
3.修改密码
4.用例结束
异常事件流:
1.选择试卷失败
2.学生考试时出现系统故障(例如网络故障或数据库服务器故障)弹出异常界面,考试失败
后置条件:
选择试卷后,进入考试界面
2.1.3用例图
用例图描述软件系统和外部参与者之间的交互。
在线考试系统的学生端、教师端和管理员端的用例图如下所示:
1、学生端用例图如2.1所示:
图2.1学生端用例图
2、教师端用例图如2.2所示:
图2.2教师端用例图
3、管理员端用例图如2.3所示:
图2.3管理员端用例图
2.2系统设计
在软件开发时期,设计阶段是富有活力和最需要发挥创造力的阶段。
设计的目标,是细化解决方案的可视化设计模式,确保设计模型终能平滑的过度到程序代码。
设计的任务就是把分析阶段产生分析模型转换为用适当手段表示的软件设计模型。
2.2.1时序图
时序图用来描述对象之间的动态交互,着重体现对象间消息传递的时间顺序。
它以垂直轴表示时间,水平轴表示不同的对象。
对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名。
垂直虚线是对象的生命线,用于表示在某段时间内对象是存在的。
对象间的通信在对象的生命线间通过消息符号来表示,消息的箭头指明消息的类型。
时序图中的消息可以是信号或操作调用。
消息可以用消息名及参数来标识。
消息还可带有条件表达式,表示分支或决定是否发送消息。
如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。
在时序图的左边可以有说明信息,用于说明消息发送的时刻,描述动作的执行情况以及约束信息等。
1、学生个人信息查询
学生请求查看自己的个人信息,系统根据学生登录时的信息,在学生信息表中找到符合条件的信息反馈给学生。
查看学生个人信息时序图如2.4所示:
图2.4学生个人信息时序图
2、学生成绩查询
学生请求查看考试成绩,系统根据学生的基本信息,在学生成绩表中找到符合条件的信息反馈给学生。
查看学生成绩时序图如2.5所示:
图2.5学生成绩查询时序图
3、学生修改密码
学生请求修改自己的密码,系统根据学生修改的信息,在学生信息表中插入修改的信息并提示学生修改结果。
查看学生修改密码的时序图如2.6所示:
图2.6学生修改密码时序图
4、学生考试
学生想考试系统请求考试,考试系统为学生查找该学生可以进行的考试科目和相对应的试卷,并把试卷信息反馈给学生。
学生进入考试状态开始答题,并保存试卷。
考试结束时,学生应提交试卷。
学生考试时序图如2.7所示:
图2.7学生考试时序图
2.2.2类图
通过时序图基本的类已经出现,时序图中的消息其实对应的是类的方法,从用例规约中可以抽取类的属性,通过不断地迭代可以得到设计类图。
设计类在此处只将重要的相关类详细描述。
1、学生类
学生类包含的属性主要是学生编号,学生姓名,密码,出生年月,年龄,性别,地址,所在系部,所在班级。
学生类的方法主要是一些增、删、改、查等基本操作。
设计类图如图2.7所示:
图2.8学生类
2、学生试卷类
学生试卷类包括的属性有学生编号,试卷编号,开始时间,结束时间,剩余时间。
学生试卷类主要的方法有随机选择试卷。
设计学生试卷类如2.8所示:
图2.9学生试卷类
3、学生答卷类
学生答卷类主要的属性有试卷编号,学生编号,题目编号,学生答案,学生得分。
设计学生答卷类如图2.9所示:
图2.10学生答卷类
4、学生成绩类
学生成绩类主要属性包括试卷编号,学生编号,学生成绩。
学生成绩类主要的方法查看学生成绩。
设计学生成绩类如图2.10所示
图2.11学生成绩类
5、学生端各个类之间的联系
学生根据自己要考试的科目随机选择试卷进行考试,学生保存并提交考试试卷。
老师评卷后,学生可以查看自己的考试成绩。
如图2.11所示:
用例图描述软件系统和外部参与者之间的交互。
在线考试系统的学生端、教师端和管理员端的用例图如下所示:
1、学生端用例图如2.1所示:
图2.1学生端用例图
2、教师端用例图如2.2所示:
图2.2教师端用例图
3、管理员端用例图如2.3所示:
图2.3管理员端用例图
2.2系统设计
在软件开发时期,设计阶段是富有活力和最需要发挥创造力的阶段。
设计的目标,是细化解决方案的可视化设计模式,确保设计模型终能平滑的过度到程序代码。
设计的任务就是把分析阶段产生分析模型转换为用适当手段表示的软件设计模型。
2.2.1时序图
时序图用来描述对象之间的动态交互,着重体现对象间消息传递的时间顺序。
它以垂直轴表示时间,水平轴表示不同的对象。
对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名。
垂直虚线是对象的生命线,用于表示在某段时间内对象是存在的。
对象间的通信在对象的生命线间通过消息符号来表示,消息的箭头指明消息的类型。
时序图中的消息可以是信号或操作调用。
消息可以用消息名及参数来标识。
消息还可带有条件表达式,表示分支或决定是否发送消息。
如果用于表示分支,则每个分支是相互排斥的,即在某一时刻仅可发送分支中的一个消息。
在时序图的左边可以有说明信息,用于说明消息发送的时刻,描述动作的执行情况以及约束信息等。
1、学生个人信息查询
学生请求查看自己的个人信息,系统根据学生登录时的信息,在学生信息表中找到符合条件的信息反馈给学生。
查看学生个人信息时序图如2.4所示:
图2.4学生个人信息时序图
2、学生成绩查询
学生请求查看考试成绩,系统根据学生的基本信息,在学生成绩表中找到符合条件的信息反馈给学生。
查看学生成绩时序图如2.5所示:
图2.5学生成绩查询时序图
3、学生修改密码
学生请求修改自己的密码,系统根据学生修改的信息,在学生信息表中插入修改的信息并提示学生修改结果。
查看学生修改密码的时序图如2.6所示:
图2.6学生修改密码时序图
4、学生考试
学生想考试系统请求考试,考试系统为学生查找该学生可以进行的考试科目和相对应的试卷,并把试卷信息反馈给学生。
学生进入考试状态开始答题,并保存试卷。
考试结束时,学生应提交试卷。
学生考试时序图如2.7所示:
图2.7学生考试时序图
2.2.2类图
通过时序图基本的类已经出现,时序图中的消息其实对应的是类的方法,从用例规约中可以抽取类的属性,通过不断地迭代可以得到设计类图。
设计类在此处只将重要的相关类详细描述。
1、学生类
学生类包含的属性主要是学生编号,学生姓名,密码,出生年月,年龄,性别,地址,所在系部,所在班级。
学生类的方法主要是一些增、删、改、查等基本操作。
设计类图如图2.7所示:
图2.8学生类
2、学生试卷类
学生试卷类包括的属性有学生编号,试卷编号,开始时间,结束时间,剩余时间。
学生试卷类主要的方法有随机选择试卷。
设计学生试卷类如2.8所示:
图2.9学生试卷类
3、学生答卷类
学生答卷类主要的属性有试卷编号,学生编号,题目编号,学生答案,学生得分。
设计学生答卷类如图2.9所示:
图2.10学生答卷类
4、学生成绩类
学生成绩类主要属性包括试卷编号,学生编号,学生成绩。
学生成绩类主要的方法查看学生成绩。
设计学生成绩类如图2.10所示
图2.11学生成绩类
5、学生端各个类之间的联系
学生根据自己要考试的科目随机选择试卷进行考试,学生保存并提交考试试卷。
老师评卷后,学生可以查看自己的考试成绩。
如图2.11所示:
图2.12各类联系
图2.12各类联系
2.2.3系统体系结构设计
结构化体系结构是完成模块设计的基础。
保证了程序的清晰、易读;逐步细化实现程序的正确、可靠。
在线考试系统的主要体系结构如图所示:
答卷
图2.13结构图
2.3数据库设计
数据库(Database)是按照数据结构织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术场的发展,特别是二十世纪九十年代以后,数据管理再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。
数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。
由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。
2.3.1E-R图
E-R图是用来描述现实世界的概念模型,构成E-R图的基本要素是实体型、属性和联系,其表示方法为:
实体型(Entity):
具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三、学生李四体。
如果是弱实体的话,在矩形外面再套实线矩形。
属性(Attribute):
实体所具有的某一特性,一个实体可由若干个属性来刻画。
在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。
如果是多值属性的话,再椭圆形外面再套实线椭圆。
如果是派生属性则用虚线椭圆表示。
联系(Relationship):
联系也称关系,信息世界中反映实体内部或实体之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。
在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:
n或m:
n)。
比如老师给学生授课存在授课关系,学生选课存在选课关系。
如果是弱实体的联系则在菱形外面再套菱形。
该系统的模型主要描述了学生,教师,管理员及实体的那些属性,还有他们之间的关系。
如图2.14所示:
m
图2.14在线考试系统E-R图
2.3.2关系模式
整个系统各实体可用以下关系来表示(其中主键已用下划线标识):
管理员(管理员编号、管理员名字、管理员密码)
教师(教师号、教师名、密码、教师职称、职务、电话、通讯地址、E-mail、简介)
学生(学号、姓名、密码、出生日期、性别、年龄、家庭地址、主修专业、班级编号)
系部(系部编号、系部名称)
班级(班级编号,班级名,系部号)
课程(课程编号,教师编号,科目名称)
试卷(试卷号,课程编号,开始时间,结束时间)
试卷班级(试卷号,所属班级)
成绩(试卷号,学生学号,成绩)
分值(试卷号,题型,数量,分值)
组卷(试卷号,试题序号,题型,试题号)
答卷(编号,试卷号,学生学号,题型,试题号,学生答案,学生得分)
教师反馈(试卷号,学生编号,教师号,反馈信息)
题型(题型编号,题型名称,所属科目)
章节(章节编号,章节名,课程编号)
主观题(试题号,题型编号,试题题目,答案,章节编号)
单选题(试题号,试题题目,A,B,C,D,正确答案,章节编号)
多选题(试题号,试题题目,A,B,C,D,正确答案,章节编号)
判断题(试题号,试题题目,正确答案,章节编号)
试卷是否提交(学生编号,试卷编号,是否提交)
教师职称(职称编号,教师职称)
2.3.3表的设计
表2.3学生信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
stuid
学生编号
Varchar
50
是
否
2
stuname
学生姓名
Varchar
50
否
是
3
stupwd
密码
Varchar
50
否
是
4
stubrith
出生年月
Varchar
50
否
是
5
stusex
性别
Varchar
4
否
是
6
stuage
年龄
Int
否
是
7
stuaddress
家庭住址
Varchar
50
否
是
8
stumajor
所属系部
Varchar
50
否
是
9
classid
所属班级
Varchar
50
否
是
表2.4班级信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
classid
班级编号
Varchar
50
是
否
2
classname
班级名称
Varchar
50
否
是
3
depid
系部编号
Varchar
50
否
是
2
depname
系部名称
Varchar
50
否
是
表2.5章节信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
chapterid
章节编号
Varchar
50
是
否
2
chaptername
章节名称
Varchar
50
否
是
3
courserid
科目编号
Varchar
50
否
是
表2.6判断题信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
selectid
判断题编号
Varchar
50
是
否
2
questiontitle
判断题题目
Varchar
100
否
是
3
answer
正确答案
Varchar
50
否
是
4
chapterid
章节编号
Varchar
50
否
是
表2.7单选题信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
selectid
单选题编号
Varchar
50
是
否
2
questiontitle
单选题题目
Varchar
100
否
是
3
A
A答案
Varchar
50
否
是
4
B
B答案
Varchar
50
否
是
5
C
C答案
Varchar
50
否
是
6
D
D答案
Varchar
50
否
是
7
answer
正确答案
Varchar
50
否
是
8
chapterid
章节编号
Varchar
50
否
是
表2.8多选题信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
selectid
多选题编号
Varchar
50
是
否
2
questiontitle
多选题题目
Varchar
100
否
是
3
A
A答案
Varchar
50
否
是
4
B
B答案
Varchar
50
否
是
5
C
C答案
Varchar
50
否
是
6
D
D答案
Varchar
50
否
是
7
answer
正确答案
Varchar
50
否
是
8
chapterid
章节编号
Varchar
50
否
是
表2.9客观题信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
subid
客观题编号
Varchar
50
是
否
2
typeid
客观题题型编号
Varchar
50
否
是
3
questiontitle
客观题题题目
Varchar
100
否
是
4
answer
正确答案
Varchar
8000
否
是
5
chapterid
章节编号
Varchar
50
否
是
表2.10题型管理信息表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
typeid
题型编号
Varchar
50
是
否
2
questiontypename
题型名
Varchar
50
否
是
3
courseid
所属科目编号
Varchar
50
否
是
表2.11试卷分值管理表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
paperid
试卷编号
Varchar
50
是
否
2
questiontypename
题型名
Varchar
50
否
是
3
number
出题个数
Int
否
是
4
value
分值
Iint
否
是
表2.12生成试卷表
序号
列名
字段说明
数据类型
长度
主键
允许空
1
paperid
试卷编号
Varchar
50
是
否
2
questionsort
顺序
Varchar
50
否
是
3
questiontype