基于C/S程序设计课程考试系统设计

时间:2022-07-20 11:34:49

基于C/S程序设计课程考试系统设计

摘要:根据程序设计课程考试的特点,对考试系统进行分析,介绍了体系结构设计、功能设计、数据库设计,以及实现的环境、工具和关键技术。

关键词:C/S模式;考试系统;题库;自动组卷;C#

中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)30-7344-03

Design of Program Language Course Examination System Based on C/S model

HAN Yan1,2

(1.College of Computer Science & Information of Guizhou University, Guiyang 550025, China; Guizhou Commercial College, Guiyang 550004, China)

Abstract: According to the characteristics of the Program Language Course Examination, Analyzed the Examination System, introduced the design of 3-tier structure, the design of database, the design of the function module, and the environment of the system,development tools, as well as the key technology.

Key words: C/S model; examination system; exercise library;auto generating test paper; C#

1 绪论

随着计算机的普及,目前在各所高校中,普遍开设有程序设计类课程。对这类课程目前的考试方式主要有两种:1)笔试:题型包括单选题、判断题、程序填空题和编程题四大类;2)作品考试。学生或独立或分组完成某个系统的设计和实现。以上两种方式各有优缺点。第一种方式对学生编程能力的考核存在不足;第二种方式对学生理论知识的考核有缺陷。网络环境下的计算机考试系统来实现程序设计类课程考试,可以结合两种考试方式的优点,通过考试系统既能实现对理论知识的考核,又能提供编程环境,使学生上机完成程序设计题的编写和调试。

2 考试系统的需求分析

计算机程序设计课程要求考生掌握程序设计的基础知识,应用程序设计语言编写小程序的能力。考试系统涉及到四种题型,选择题、判断题、程序填空题和程序设计题。考试系统在试题库中随机抽取试题组卷,考试结束后,提交试卷就能自动评分并保存试卷,既方便教师阅卷,也提高了试卷批改的准确度和速度。教师所要做的工作只是精心设计题目、维护题库。

本系统应该具备以下功能:

1)题库管理功能。教师可以对题库的题目及题型进行录入、修改、删除等相关功能。

2)组卷功能。系统可按考试出题要求为学生自动随机抽取试题库中的题目组成试卷。

3)评分系统。系统可对客观题进行逐个批改。主观题提供老师阅卷界面,显示学生的操作结果与本题的标准答案,老师进行评分。

4)交卷功能。考生开始考试后,系统将自动计时,考生考完可选择交卷功能。在考试时间剩余5分钟时,系统会提示考生,到达规定的考试时间时,系统关闭答题窗口,提示考生交卷并结束考试。

5)断点续考功能。所有考试结果自动保存在网络考试服务器上,并具有二次登陆功能,防止断电和死机等原因导致考试失败的功能。

3 计算机应用基础考试系统的设计

3.1 系统的体系结构

本系统采用三层C/S结构,在三层C/S结构中,业务逻辑与客户端分离,这样在一定程度上减轻了客户端的负担。三层C/S结构是将整个业务应用划分为表现层(VI)、业务逻辑层(BLL)和数据访问层(DAL)。其解决方案是:对这三层进行明确分割,并在逻辑上使其独立。三层C/S架构区分层次的目的是为了“高内聚,低耦合”的思想。

表现层:通俗地讲,就是展现给用户的界面,即用户在使用一个系统时他的所见所得。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单。

业务逻辑层:针对具体问题的操作,也可以说就是对数据层的操作,对数据业务的逻辑处理。它是应用的本体,它将具体的业务处理逻辑地编入程序中。处理所需的数据则要从表示层或数据层取得。表示层与功能层之间的数据交往要尽可能简洁。而由功能层处理过的检索结果数据也一次传送给表示层。

数据访问层:数据层就是DBMS,负责管理对数据库数据的读写。该层所做事务直接操作数据库,针对数据的增加、删除、修改、查询。

三层C/S结构的优点如下:1)具有灵活的硬件系统构成;2)提高程序的可维护性;3)利于变更和维护应用技术规范;4)进行严密的安全管理。

本系统的三层C/S架构设计,如图1所示。

在图1中将整个系统划分为如图所示的逻辑结构,同时还给出了解决方案中对应的程序结构。

其中表现层即考试系统界面层,是考试系统的用户接口部分。本考试系统用户由三类:管理员、老师和学生,根据用户的性质,将管理员和老师从服务器端登录,学生从客户端登录。因此,对应的将系统的表示层分为客户端和服务器端两个项目来完成,并分别命名为SysServer和SysClient,作为两个独立的项目,用于用户操作;业务逻辑层主要实现考试系统处理业务,命名为SysBll,作为一个单独的类库,包含所有系统需要处理业务的类的集合;数据访问层用于考试系统数据访问,命名为SysDal,也是一个类库项目,主要用于操作数据库,实现对数据库的增加、删除、修改、查询等操作。

除此之外,还用SysDal项目来定义数据访问层接口,其作用是定义一种系列“功能”的声明或名单,没有实现细节;用SysModels项目用来定义类,是对各个实体的抽象,包含各个实体的属性已经设置和获取的方法,最终用于建立实体对象。[1]

3.2 系统功能设计

考试系统主要分为以下模块:人员管理、试题管理、考试管理、评卷管理、成绩管理、考生登录、试题生成、开始考试和试卷提交。

3.3 系统功能描述

1) 人员管理:实现后台登陆,管理员、教师、考生的增删改和人员权限的设置。

2) 试题管理:对试题的类型进行管理,并定义各种试题的操作,添加和管理各种试题。

3) 考试管理:对考试进行管理,设置和修改考试、考场的相关信息。

4) 评卷管理:对于客观题进行自动评卷记分;对于主观题进行手动评分题。

5) 成绩管理:进行成绩统计分析

6) 考生登陆:考生登陆考试系统。

7) 试题生成:根据试题库,随机生成学生考试题。

8) 开始考试:学生进入系统进行考试答题,并且开始记时。实时保存学生考试进度,以免异常造成考试信息丢失。

9) 试卷提交:学生提交答案,系统自动将答案提交服务器。[2]

3.4 数据库设计

3.4.1 数据库的需求分析

在设计数据库结构时,既要考虑到尽可能地满足系统应该实现的各项功能需求,同时又要避免冗余数据的产生。根据考试系统的特点,考试系统在实现过程中,主要采集以下方面的信息:管理员信息表、考生信息表、试题知识点表、试题类型表、试题表、考生考试信息等。

管理员信息表:包括系统管理员和老师的人员编号、人员名称、登陆名、密码、人员类型等相关信息。

考生信息表:包括考号、身份证号、姓名、班级、年龄、性别、状态、考场号、得分等。

试题知识点表:包括知识点编号、知识点名称、所在章、所在节等知识点。

试题类型表:包括试题类型编号、名称、备注。

试题表:包括题目编号、知识点编号、试题类型、题目内容、选项A、选项B、选项C、选项D、标准答案、标准答案文件等相关信息。

考生考试信息表:包括考生编号、试题编号、得分、答案、答案文件等。[3]

4 实现的关键技术

4.1 实现的环境

4.1.1 硬件环境

服务器一台,客户机80台组成的局域网硬件环境。

4.1.2 软件环境

服务器端:操作系统Windows 2003 Server;数据库:SQL SERVER2005。

用户端:操作系统: windows xp;数据库:Access。

网络协议:TCP/IP。

4.2 开发工具选择

根据本系统要实现的功能,需要选择两种工具,即前台开发语言和后台网络数据库系统。

本系统选择C#作为前台开发语言,SQL Server 2005作为后台数据库系统,并选择Visual Studio 2005作为C#的开发环境。

4.3 实现的关键技术

1)题库的设计

根据课程要求,将本考试系统的试题类型分为:单项选择题、判断题、程序填空题和程序设计题。因此,在题库中必须要包含上述类型的试题信息,其中包括题目文本和标准答案。

本系统将所有题目类型建立了一个试题类型表来记录每一种题型的编号及名称,试题知识点表来记录每道题的知识点名称、所在章、所在节等信息。用试题表来保存所有题目,由于各种题型的题目保存在一个表中,其中用字段TypeID来说明每一道题目的类型,Content记录题目描述,Score字段记录每道题的分值。对于选择题部分的题目,用A、B、C、D四个字段记录答案选项。选择题和判断题是自动评分,且用Answer字段记录标准答案;程序填空题和程序设计题采用人工评分,程序填空题用Answer字段记录标准答案,程序设计题用AnswerFileName保存标准答案文件名。

2)组卷的实现

考生上机考试登录成功后,系统在试题库中随机抽取试题组卷。在生成题库时,已将题型信息记录在试题表,以便抽题时使用。

组卷时,系统更新考生考试信息表,在表中记录该考生的考生号,抽取的试题号。抽题时按不同题型、不同的知识点抽取题目。为了避免抽到重复题,每抽一个题将与该考生已抽题进行比对,如果题目已抽取为该考生题目,将不放入考生试卷,重复抽取直到生成所有的不一样的题目。抽题后,直接在服务器上生成一个考生文件夹,所有程序填空题和程序设计题的答案文件放入考生文件夹中。

3)评分

目前对于选择题和判断题的评分方法都简单,即将考生的答案与标准答案比对,答案一致就等分,答案不一致就不得分。而对于程序填空题和程序设计题答案存在不唯一性。因此,本系统认为合理的评分方法是,对于客观题(即选择题和判断题,选择答案是唯一的),把标准答案均设置成题库中的字段,可以完全由机器阅卷;而非客观题(即程序填空题和程序设计题),可以采用计算机辅助人工阅卷方法,在阅卷时,调出标准答案和考生答案,进行比较,权衡后给出符合实际的评分。这种批阅方式虽然在速度上比不上完全自动批阅,然而能确保其公正性。

4)二次登录

如果考试期间发生突发事件,导致考生无法继续考试,那么在考生二次登录后,需要还原考生的考试环境;本系统通过数据库记录考生信息,出现故障时通过此数据库恢复考生信息。

5)程序的移植

为了方便程序移植,本系统采用了配置文件来进行程序的移植。也就是将与数据库的连接写在app.config文件里面更方便,并且易于修改。

5 结论

网络环境下的计算机考试系统进行考试,具有以下优点:减少重复劳动,提高考试效率;保证考试公平性、公正性;方便教学管理、实现节能环保,同时也能够实现其他科目的考试,是考试发展的必然趋势。本系统采用C/S三层结构设计,具有较好的维护性、扩展性、安全性和可移植性。

参考文献:

[1] 王国胜.C#基础与安全开发详解[M].北京:清华大学出版社,2009.

[2] 陆科.高校在线考试系统的设计实现[J].科技信息,2010(26):233-234.

[3] 王蕊,栾方军.计算机应用基础考试系统的设计[J].电脑知识与技术,2009,5(16):4344-4345.

上一篇:无线网络在医院中的应用探究 下一篇:应用环形登录缓存解决程序调试的技术探究