基于网络环境下考试系统软件的设计与实现

时间:2022-08-23 08:16:37

基于网络环境下考试系统软件的设计与实现

摘要: 基于网络环境下考试软件的使用,较传统笔试答卷,不但操作简单,功能齐全,而且更为安全、方便、高效,可以快速实现成绩评定统计工作,节省人力,还可以无限次使用,节约资源。

Abstract: For the test based on the exam software under the network environment, it is not only easier to operate, fully functional, and more secure, convenient and efficient than traditional exam, and can quickly complete grade evaluation statistical work, save manpower, and be used unlimited and conserve resources.

关键词: 考试系统;网络通信

Key words: test system;internetwork communication

中图分类号:TP39 文献标识码:A 文章编号:1006-4311(2013)12-0210-02

0 引言

随着信息技术的快速发展,计算机技术已广泛应用于生产生活的方方面面,在学校的日常教学过程中尤为如此。老师对所讲授课程的准备、教学过程的实施以及教学成果的评价,都离不开计算机。我们传统的教学考试,要提前准备试题,印刷试卷,考试以后试卷就会变成废纸一堆,不但费工费时,还浪费资源,在提倡绿色环保的今天,可以更多的使用计算机技术,不但能够节能减排,还能极大地提高工作效率,以下是基于网络环境下的计算机考试软件的功能设计。

1 考试软件的结构

考试系统软件采用客户机/服务器(C/S)工作模式,客户机主要负责考试试题的显示、考生考试过程的记录;考试服务器负责考生身份的验证、考试数据的收集汇总,考试过程的管理及特殊情况的处理。可以把试题信息放在客户机上,这样做的好处是减轻考试服务器的负担,减轻网络的通信量,可以保证连入较多客户端时,不会影响考试服务器的正常工作,达到均衡负载的目的。在网络通信过程中,客户机与服务器使用TCP/IP通信协议,保证信息传递的安全、快速、准确。(本文中的客户机、服务器均指考试系统客户机软件、考试系统服务器软件。)

2 考试服务器的主要功能

考试服务器主要设置两个通信端口,一个是负责考试服务器间的通信,一个是与客户机的通信。

2.1 保证唯一存在 在一个局域网络中,为了客户机能够自动寻找到唯一的服务器并与其建立通信联系,就必须要保证只能有一个考试服务器存在,所以在考试服务器启动后,就要以广播的方式查询是否有其它的考试服务器,如果有它会收到相应的命令并停止执行,从而保证考试服务器的唯一存在。

2.2 与考试客户机建立联系 考试服务器启动后,把自己的地址及端口信息以广播的方式通知各考试机,各考试机收到后自动与考试服务器建立联系。

2.3 管理考试客户机 考试服务器负责验证考生登录身份的合法性,防止多次登录、擅自换机考试、替考等现象发生。管理人员也可以通过考试服务器向考试机发送各种控制命令及信息,如强制收卷、考生重考、考生考试时间延迟、考生换机考试、收取考试机的考试数据,向考生个体或全体发送通知。

2.4 考试服务器故障时更换机器 如果在考试过程中,考试服务器故障而必须更换机器,只要另启一台考试服务器就可以了,当考试客户机收到其地址信息后,会自动与新的考试服务器建立联系,并将考试客户机中已经存在的考试信息自动上传到考试服务器中,即自动回收历次的考试信息,使考试服务器的工作达到无缝连接,不会因更换考试服务器而丢失数据,也没有其它繁琐的操作。

3 考试客户机主要功能

3.1 与考试服务器建立通信联系 考试客户机启动后,以广播的方式向本网查找考试服务器,如果收到服务器传来的地址信息,就可以与其建立通信联系,如果未收到,就等待考试服务器的启动。

3.2 考生登录 当考试客户机与考试服务器建立联系后,考生就可以进入登录界面,向考试服务器发出登录身份验证请求。身份验证合格后,就可以从题库中抽取试题进入考试实施过程,系统考试计时开始。

3.3 考试信息转移 当考试服务器地址发生改变时(更换考试服务器),可以将本考试机中历次考试的信息自动上传到考试服务器中,防止因更换考试服务器而造成的数据丢失。

一旦考试客户机与服务器建立通信联系,就可以随时响应服务器发来的各种操作命令。

4 部分程序代码

……

Server_hEvent = WSACreateEvent

If Server_hEvent = 0 Then

Debug.Print "Failed to create event.error:" & Err.LastDllError

End

End If

'---------------------------

'获得本地IP地址及机器名称

ServerIp = GetIPAddress

ServerName = GetIPHostName

BroadCastIP = GetBroadCastIP(ServerIp)

If BroadCastIP = "" Then End

'获得winsock名柄

Server_sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)

If Server_sock = INVALID_SOCKET Then

MsgBox "不能建立 Server_socket() :" & Err.LastDllError

Else

'建立本地地址

Server_Addr.sin_family = AF_INET

Server_Addr.sin_port = htons(CInt(ServerPort)) ' htons(CLng(Text2.Text))

Server_Addr.sin_addr = INADDR_ANY

dwYes = 1

'设定是否能多个进程绑定到同一个端口

dwRet = setsockopt(Server_sock, SOL_SOCKET, SO_REUSEADDR, dwYes, LenB(dwYes))

dwYes = 1

'设定是否进行广播

dwRet = setsockopt(Server_sock, SOL_SOCKET, SO_BROADCAST, dwYes, LenB(dwYes))

If bind(Server_sock, Server_Addr, LenB(Server_Addr)) = SOCKET_ERROR Then

Debug.Print "couldnot bind() to socket locally.error:" & Err.LastDllError

closesocket (Server_sock)

Server_sock = INVALID_SOCKET

Else

End If

End If

……

5 小结

由于考试系统中,服务器与客户机都能以广播的方式自动获得地址信息,免去了设置地址的操作,而且具有较强的故障处置能力,比如在考试过程中随时可以更换考试服务器,各考试客户机会迅速连接到新的服务器上并将历次考试信息自动上传到新的服务器上,保证了数据的完整性,操作过程完全是透明的,把复杂工作简单化,实现了傻瓜式操作。对于客观试题的考评,考生交卷后会自动评分,成绩一目了然,不但提高效率、节约资源、降低成本,而且可以对成绩进行分析,找出教学过程中的薄弱环节,提高教学效率。

参考文献:

[1]Jeffrey P. McManus[美] Database Access with Visual Basic 6.机械工业出版社.

[2]Tamara Dean[美]Network + Guide to Networks.机械工业出版社.

[3]刘炳文,杨明福,陈定中.Visual Basic语言程序设计.高等教育出版社.

上一篇:肛肠科麻醉护理的临床体会 下一篇:农电服务公司业务外委工作探究