网络考试系统设计与实现

2014-09-24 20:15桑娟萍汪雁张东
软件工程 2014年8期
关键词:S模式

桑娟萍 汪雁 张东

摘 要:本文分析介绍了甘肃林业职业技术学院以Visual Basic.NET为开发环境,整个系统通讯采用Winsock技术,以Access为后台数据库格式,构建了基于C/S(客户端/服务器)模式的计算机类课程通用网络考试系统。利用该系统可进行考生信息管理、试卷生成及回收、考务管理及档案生成,实现每人一卷的网络化考试功能。

关键词:Winsock控件;C/S模式;网络考试系统;报表生成

中图分类号:TP312 文献标识码:A

Abstract:This article introduces the Gansu Forestry Technological College in Visual Basic.NET development environment,the whole communication system uses Winsock technology,with Access as background database,based on C/S(client/server)mode of general network examination system.The system of students' information management,test generation and recycling,examination management and file generation,to achieve a volume of network examination function.

Keywords:the Winsock control;C/S mode;network examination system;report generation

1 引言(Introduction)

随着现代信息技术与计算机技术的发展,计算机应用和校园网的普及为网络考试系统的实现提供了硬件平台,该模式今后必将是考试模式改革的必然。这是因为现行考试大都以纸质试卷作为考试的凭证,为保护环境、节约用纸,施行无纸化考试模式已经被社会所重视。其二,常规方式的考试组织一次至少要经过人工出题、试卷印制、考生考试、人工阅卷、成绩统计上报等步骤,随着考试类型、考生数量的不断增加及考试要求的不断提高,组织考试的工作量越来越大,既易出错,又烦琐。其三,现行考试大都采用一卷统考的模式,其弊端:试题相同、学生互相抄袭,没有起到恒量学生真实水平的目的。因此,无纸化随机抽题考试系统是真实考核每个学生学习掌握程度的最有效手段,既可减轻考试组织工作难度、提高工作效率,使考试趋于更公证、更客观,又可减少纸张浪费,保护森林资源。

2 开发环境、模式及通讯协议(Development environment,mode and communicationprotocol)

开发环境:Visual Basic.NET、VB.NET采用面向对象的程序设计思想,能把复杂的程序设计问题分解为一个个能够完成独立功能的相对简单的对象集合。

运行环境:WindowsXP及以上操作系统。

开发模式:C/S模式,其特点之一是能够减少网络流量,提高事物处理速度。

通讯协议:TCP/IP协议,TCP/IP协议是Internet网最重要的协议,将VB提供的Winsock控件用在TCP/IP的基础上进行网络通信,在开始数据传输之前,用户必须先建立TCP连接,可以方便快捷地与远程计算机建立连接,进行数据的传输[1-3]。

3 系统设计与数据库实现(Design and implementation of database systems)

3.1 系统整体设计

整个考试系统包括两个子系统(图1),主控端、被控端,数据在两个子系统之间流转(图2)。学生端主要是学生用来输入基本信息、抽题、答题、发送答案;主控端主要用于答案回收、考务管理、档案生成、大部分数据通过机房局域网传送,方便、安全、准确、高效。

3.2 系统数据库的实现

本网络考试系统基于C/S模式,整个系统通讯采用Winsock技术,其后台数据库为由Access建立的关系型数据库格式。如果考生多、信息量大、要求高效的数据处理,可将Access数据库升级到SQL数据库系统中,以增强数据库访问效率和安全性。

3.2.1 关系型数据库的实现

Access就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。其优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access作为关系数据库开发,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能;可以提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。

3.2.2 系统用ODBC连接数据库(图3)

由于该系统采用了较好的服务器/客户机模式,利用计算机上的ODBC(开放式数据库互联,目前国际上通用的数据库访问标准)。配置和管理的工具,就可以定制使用ODBC来连接数据库,其连接过程为:(1)VB程序指定DSN名称;(2)ODBC数据源解析DSN名称;(3)客户机解析数据库服务器名称;(4)数据库服务器验证DSN中的用户名和密码。

3.3 系统主要功能模块及关键技术实现

3.3.1 系统模块

本考试系统主要有:(1)用户基本信息管理模块:主要记录学生及教务人员的代号、姓名、班级等基本信息;(2)试卷管理模块:系统记录考生抽到试卷的题目、题数及考生答案及试卷评阅、试题得分等信息;(3)数据库管理模块:由基本信息库、试卷信息库、成绩库、教务库组成;(4)抽题模块:有固定抽取套题、随机产生套题、恢复上一次考试套题等多种方式;(5)用户管理、权限设置模块:为学生、考务人员、管理员等不同用户提供不同的使用权限;(6)网络通信模块:利用Winsock控件进行通信,测试当前网络状态,主控端接收由学生端发出的数据库;(7)学生答题模块:学生对所抽到的套题进行解答;(8)阅卷模块:分主观题、客观题评阅,客观题评阅由计算机自动完成并同时建立相应数据库,主控端评分由考务人员辅助完成;(9)报表生成模块:系统最后生成含有基本信息、试卷信息、成绩信息组成的报表,可打印、存档;(10)时间控制模块:为整个考试过程提供规定的时间计时器,学生在考试时间用完时尚未交卷者将激活强制交卷程序;(11)档案生成模块:将所有考试信息存档,以备参考与检查、成绩录入、档案生成。endprint

3.3.2 主要功能的实现

(1)系统主控端组成

(2)试卷及题库管理模块功能的实现

“申请试卷”按钮代码

Dim sql$

On Error GoTo netyn

If Text1.Text = "" Then

Text1.Text = ""

Text1.SetFocus

MsgBox "您提交的查询值不合法,请重新输入! 请检查是否为空值。"

Exit Sub

End If

Data1.DatabaseName = ("U:\ksxt_ksjh\ksxt_ksjh_a1_97_mi.mdb") '读数据库

Data1.Connect = ";pwd=" & "visualc#2006"

sql = "Select * From datadb1 Where 准考证号= '" & Trim(Text1.Text) & "'"

Data1.RecordSource = sql

Data1.Refresh

If Data1.Recordset.EOF Then

xx1 = MsgBox("数据库查询失败。你的身份不合法,不能参加本次考试。", 64, "申请考试")

Data1.RecordSource = "datadb1"

Data1.Refresh

Exit Sub

End If

s() = Split(Text8.Text, ".")

Text10.Text = s(0) & s(1) & s(2)

' Me.Hide

' Form8.Show

'Unload Me

'MsgBox "成功"

Me.Hide

frmdd.Show

frmdd.Label2.Caption = "1"

frmdd.label1.Caption = "您提交的数据正发送至考试系统主控端以验证身份,请稍后... ..."

Exit Sub

netyn: MsgBox "考试系统主控端考试计划文件在网络上未找到,请检查,是否:a.网络连通,网内计算机可互访;b.主控端打开;c.考试文件存在并合法;d.数据库被加密。"

End Sub

(3)网络通信模块功能实现

测试当前网络状态,主控端接收由学生端发出的数据库。利用Winsock控件进行通信。只需要通过设置Winsock控件的属性并调用其方法就可以轻易连接到另外一台机器上去,并且还可进行双向数据交换。在TCP应用中,为了建立一个网络连接实例(Instance)的服务器端,只需设置本地服务端口号,然后服务器调用方法Listen进入阻塞状态,等待来自客户的连接请求。于此对应的客户端不但要将Winsock的属性RemoteHost置为服务器的名称(IP地址或网络代号),还应设置服务器所监听的相应服务的端口号(RemotePort),然后调用方法Winsock,Connect向服务器发出请求。服务器接收到客户请求时,事件ConnectionRequest将被触发。如服务器愿意提供服务,则可调用Accept方法接受连接。一旦连接建立,两端均可使用SendData或GetData进行数据的发送或接收。事件DataArrival将在另一端数据准备就绪时被触发[4]。

(4)时间控制模块功能模块实现[5]

为整个考试过程提供规定的时间计时器。学生在考试时间用完时尚未交卷者将激活强制交卷程序。系统日期的显示是通过对标签的CAPTION属性赋予日期函数实现的,相关代码如下:

Private Sub Form_Load()

Text1(0).Text=""

Text1(1).Text=""

Label18.Caption=Date

a=100

End Sub

系统时间是通过一个计时器控件timer1和一个保存时间的全局变量a实现的,a初始化为考试所用分钟数,即上述代码中的a=100,计时器控件的interval属性设置成60000,每分钟计时一次。实现代码如下:

Private Sub Timer1_Timer()

a=a-1;

Text1.Text=a;

If a=5 Then

MsgBox "只剩余5 分钟,请准备交卷"

If a=1 Then MsgBox "考试时间到请马上交卷"

If a=0 Then End

End If

End Sub

4 结论(Conclusion)

通过采用这几个模块,基本上可以控制考试系统的安全性、可靠性,可以达到考试系统的智能特性。最大可能的利用程序来完成考试过程中需要人工来完成的工作,真正的解决传统考试模式所带来的弊端。达到设计时的目的,实现了考试信息化、高效化、经济化、科学化。这种考试方法不仅实现了无纸化,还使学生增加了上机练习与模拟的机会,提高了计算机应用能力。

参考文献(References)

[1] 谭浩强,等.Visual Basic程序设计[M].北京:清华大学出版社,2005.

[2] 邓绯,涂晓英.使用Winsock控件构建基于C/S模式的网络考试系统[J].福建电脑,2010,(9);158-159.

[3] 邓绯,陈印.使用开发服务器/客户端程序[J].四川职业技术学院学报,2004,14(4):105-107.

[4] 龚安.基于VB的Winsock控件实现C/S网络通信[J].科学技术与工程,2006,6(10):1447-1449.

[5] 陈海蕊.基于VB的学生考试系统的设计与实现[J].福建电脑,2009,(3):120.

作者简介:

桑娟萍(1965-),女,硕士,教授.研究领域:林业信息技术应用教学及技术研究.

汪 雁(1981-),女,本科,助教.研究领域:软件开发与设计.

张小东(1982-),男,本科,讲师.研究领域:网络工程.endprint

猜你喜欢
S模式
学生考勤系统开发
基于Web的毕业设计管理系统设计与实现
明日博客系统的设计与实现
基于B_S模式的游戏化学习系统研究
集团公司OA系统的研究与开发
S模式空管二次雷达询问与监视技术研究
铝材B2B电子商务系统设计与实现 
基于ASP.NET的就业见习管理信息系统设计与实现
基于B/S模式的数据结构实验平台设计
航空发动机管理信息系统研究