C#开发案例:在线考试系统及GridView控件使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第11章在线考试系统(C# 3.5+Microsoft SQL Server 2000实现)482
通过阅读本系统设计,读者可以学到:
■验证不同身份的登录用户。
■随机抽取试题。
■如何实现考试计时功能
■如何实现试题无刷新
■如何实现系统自动评分
■合理地创建后台管理
11.1 开发背景483
11.2 系统分析483
11.2.1 需求分析483
11.2.2 系统功能描述483
为了保障整个系统的安全性,在线考试系统实现了分类验证的登录模块,通过此模块,可以对不同身份的登录用户进行验证,确保了不同身份的用户操作系统。在抽取试题上,系统使用随机抽取试题的方式,体现了考试的客观与公正。当考生答题完毕之后,提交试卷即可得知本次考试的得分,体现系统的高效性。在后台管理上,分后台管理员管理模块和试题管理模块。分别适应不同的用户,前者只有系统的高级管理员才能进入,对整个系统进行管理。而后者只允许教师登录,教师可以对自己任教的科目试题进行修改,并且可以查看所有参加过自己任教科目的学生成绩。
11.2.3 可行性分析483
根据《GB8567-2006计算机软件文档编制规范》中可行性分析的要求,指定可行性研究报表如下:
11.2.4 编写项目计划书484
11.3 系统设计486
11.3.1 系统目标486
本系统属于小型的在线考试系统,可以从数据库中随机抽取试题,并且可以对考生的答案评分。
●本系统采取人机交互的方式,界面美观友好,信息查询方便灵活,数据存储安全可靠。●实现从数据库中随机抽取试题。
●对用户输入的数据,进行严格的数据校验,尽可能地避免人为错误。
●实现对考试结果自动评分。
●实现教师和后台管理员对试题信息单独管理。
●系统应最大限度地实现易维护性和易操作性。
11.3.2 系统功能结构486
11.3.3 系统预览487
管理员权限
输入账号、密码后进入管理员管理界面如图1.5所示。
图1.5 管理员管理界面
。
(7)单击“科目信息管理”/“考试科目设置”菜单项,对考试科目信息进行添加操作,如图1.6所示。
图1.6 考试科目设置
(8)单击“考试结果管理”/“考试结果”菜单项,对考试结果进行查询及删除操作,如图1.7所示。
图1.7 考试结果
(9)单击“管理员信息维护”/“修改密码”菜单项,对管理员操作密码进行修改操作。
学生权限
学生登录后,只能进行考试答题操作,如图1.8所示。
图1.8 学生考试
教师权限
教师登录后,可对试题基本信息进行添加、修改、查询及删除操作。同时对学生考试成绩进行查询及删除操作。如果教师对现有的密码不满意,还以修改自己的密码,如图1.9所示。
图1.9 教师权限
11.3.4 业务流程图488
在线考试系统业务流程图如下:
11.3.5 程序运行环境489
本系统对其运行环境有一定的要求,具体如下:●系统开发平台:Microsoft Visual Studio2008
●系统开发语言:C#
●数据库管理系统软件:Microsoft SQL Server 2005 ●运行平台:Windows XP(SP2)以及以上版本
●运行环境: Framework SDK v3.5
●分辨率:最佳效果1024*768像素
11.3.6 数据库设计489
11.3.7 数据库概念设计489
即描绘各个数据表的实体E-T图
11.3.8 数据库逻辑结构设计490
11.3.9 文件夹组织结构492
每个网站都会有相应的文件夹组织结构,如网站中网页数目很多,可以将所有的网页及资源放在不同的文件夹中。如果网站中网页不是很多,可以将图片、公共类或者程序资源文件放在相应的文件夹中,而网页可以直接放在网站根目录下。本系统是按照前者组织文件夹结构排列的。
11.4 公共类设计493
11.5 登录模块设计495
11.5.1 登录模块概述495
不是所有人都可以参加在线考试系统,系统默认是不允许匿名登录的,只有使用管理员分配的账号和密码才能登录。
11.5.2 登录模块技术分析495
登录模块中,使用了验证码技术来防止用机器人软件反复自动登录。该技术是通过Random类实现的。
Random类:表示伪随机生成器,一种能够产生满足某些随机性统计要求的数字序列的设备,该类中最常用的是Random.Next方法。
Random.Next方法用于返回一个指定范围内的随机数。语法如下:
public virtual int Next (int minValue,int maxValue)
参数说明:minValue:返回随机数下界。maxValue:返回随机数上界。
返回值:一个大于或等于minValue且小于maxValue的32位带符号整数。
11.5.3 登录模块实现过程496
11.6 随机抽取试题模块设计497
11.6.1 随机抽取试题模块概述497
11.6.2 随机抽取试题模块技术分析498
11.6.3 随机抽取试题模块实现过程499
11.6.4 单元测试502
11.7 自动评分模块设计503
11.7.1 自动评分模块概述503
11.7.2 自动评分模块技术分析503
11.7.3 自动评分模块实现过程504
11.8 试题管理模块设计505
11.8.1 试题管理模块概述505
11.8.2 试题管理模块技术分析505
11.8.3 试题管理模块实现过程507
11.8.4 单元测试512
11.9 后台管理员模块设计513
11.9.1 后台管理员模块概述513
11.9.2 后台管理员模块技术分析514
11.9.3 后台管理员模块实现过程514
11.10 开发技巧与难点分析526
开发在线考试系统的随机抽取试题模块时,为了防止考生刷新考试页面后产生错误的考试结果,使用JavaScript脚本限制了鼠标右键、F5刷新键及BackSpace键,从而达到防止刷新的目的,使得考试页面更加安全、合理。关键代码如下: