上机考试系统

目录

摘要 .................................................... III Abstract .................................................. IV 引言 (1)

第一章绪论 (2)

1.1系统开发背景及现状 (2)

第二章《C语言程序设计》课程在线考试需求分析 (4)

2.1在线考试系统优点 (4)

2.2可行性分析 (4)

2.2.1社会因素方面的可行性 (4)

2.2.2经济方面的可行性 (5)

2.2.3技术方面的可行性 (5)

2.2.4操作方面的可行性 (5)

2.3系统需要解决的主要问题 (5)

2.4系统功能需求 (6)

2.5系统开发环境与运行环境 (6)

第三章《C语言程序设计》课程在线考试系统设计 (8)

3.1 系统模块设计 (8)

3.2 系统总体流程图 (10)

3.3数据库设计 (10)

第四章《C语言程序设计》课程在线考试系统实现 (14)

4.1首页设计 (14)

4.2用户注册设计 (16)

4.3后台管理设计 (18)

4.4考试科目选择界面设计 (20)

4.5考试界面设计 (22)

4.6试题管理界面设计 (25)

4.7考试时间界面设计 (29)

4.8考试成绩界面设计 (30)

第五章系统测试 (32)

5.1软件测试 (32)

结束语 (35)

参考文献 (36)

致谢 (37)

附录 (38)

摘要

随着计算机网络技术的迅猛发展,学校教学和管理的信息化发展也有足够的进步,这就要求各个环节都均衡发展,从软硬件双方面把学校建设成良好的信息管理、教育教学的平台。本文设计开发的在线考试系统也是其中重要的一个方面。该系统本着减轻教师工作负担、提高工作效率、优化学生考试流程的设计初衷,开发出一个《C语言程序设计》课程在线考试系统,比传统的考试模式节省人力财力和时间。

系统分为三大模块:用户注册模块、考试模块和系统管理模块。其中系统管理模块是进行题目的添加和删除,是系统运行的基础;在考试模块学生可以凭自己的姓名和密码登录系统,进入界面时由系统按照预先设置好的试卷结构从试题库中随机抽取适合的题目,自动生成试卷。

系统选用的开发软件是ASP,后台数据库为Access2003。

本系统的开发采用结构化设计思想。系统介绍了考试系统的开发初衷和背景,系统的开发工具,结构化开发的具体步骤,其中包括实体-联系模型,数据流图,功能结构图等的图形说明。

关键字:在线考试,自动,ASP,随机抽取

Abstract

With the rapid development of computer network technology, the informationization of university teaching and management technology development have been progressed sufficiently, which requests that all links are developed balancedly, and the university is constructed a nice platform of information management and education from the hardware and software. The online examination system of the design and development which depends on this article is also an important aspect. To develop the online examination system of “C language programming design”for the purpose of reducing teacher’s workforce, improving efficiency and optimizing the process of student testing. Compared with the traditional examination, it saves labor power, financial resources and time.

The system is composed of three parts: registration module, testing module and system management module. System management module is in charge of adding and deleting questions, and it is the base of the system. In the test module, students can login to the system by its name and password, and then turns into the examination's interface. The system will extract the appropriate questions randomly from the question warehouse according to the pre-set paper structure, and generate examination paper automatically.

Development software of the system’s selection is ASP, and background database is Access 2003.

The system developments adopt the idea of structured design. The system introduced the original intention and background of this examination system, the tool of development of the system, the details process of structured development, it include the graphic description the model of entity-contact, the data flow diagram, function chart, and so on.

Keywords: online examination, automatic, ASP, random extracting

引言

随着计算机网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了教学,通过计算机实现异地教育和培训。如今,计算机硬件技术的发展已经达到了相当高的水平。但是,教学软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到教学当中去,这就给软件设计人员提出了更高的设计要求。

教学包括很多环节,例如教学系统、答疑系统和考试系统等等。其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然教学已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,应用不断扩大,如教学和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。

从而,在线考试系统设计成为当今教育的信息化趋势以及高校教育信息化系统建设的方向,其目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。其意义在于:与传统考试模式相比,在线考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过Internet来实现在线考试,是现代教育技术的一个具体实现,具有很重要的现实意义。

本系统设计的主要目的是实现课程的无纸化考试,从而为开展各种网络教学提供支持和帮助。本系统设计以《C语言程序设计》课程为例,主要是考虑其教学对象覆盖面较广的特点,开展相关设计有一定的实用价值。

第一章绪论

1.1系统开发背景及现状

随着计算机技术的发展和互联网时代的到来,Internet/Internet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大,从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。

人们已经进入了信息时代,也有人称为数字时代。在数字代的网络环境下,学生希望得到个性代的满足,根据自己的情况进行学习,同时希望能够得到科学的评价;老师希望有效改进现有的考试模式,提高考试的效率;教育机构也希望给网上的学生提供更全面灵活的服务,同时希望全面准确地对学生进行跟踪和评价。网络考试系统正是迎合这一市场需求面开发的,它旨在探索一种以互联网为基础的考试模式。通过这种新的模式,为学校创造一种新的考试环境,使考试管理突破时空限制,提高考试工作效率和标准代水平,使学术管理者、教师和学生可以随时、随地通过网络完成考试。

目前存在的在线考试系统,它们的各种工作主要还是依赖于手工完成,比如答题或者阅卷,需要学生、老师用笔进行等。不仅手续复杂麻烦,而且工作效率很低,还会受其它一些因素的影响。手工阅卷还存在这许多弊端,由于不可避免的人为因素,造成分数的遗漏、误改。计算机信息化管理有着计算精确,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们可以利用计算机网络,利用ASP技术实现动态的管理。随着计算机网络技术的进一步发展和普及,利用ASP技术开发的各种在线考试系统将越来越普及。在此,以《C语言程序设计》课程为例设计一个在线考试系统,以ASP为软件开发工具,考虑到设计工作量及难度问题,后台数据库则运用简单的Access2003。下面简短介绍本次设计所要运用的主要工具:

Asp是Active Server Page的英文缩写。是微软开发的一种服务器端技术从字面上说,ASP包含三方面含义:

1、Active:ASP使用了Microsoft的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用

组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。

2、Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和 JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP页面。

3、Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。

由此我们可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。

Access是微软Office中一个极为重要的组成部分。起初Access是一个单独的产品,后来微软发现如果将Access捆绑在office中一起发售,将会带来更加可观的利润,于是Access第一次出现在office97中,成为office中的一个重要成员。现在它已经成为Office中不可缺少的部件了。

由于微软公司投入大量人力和资金进行技术改进和创新,Access的新版本功能已经变得越来越强大。随着版本的升级,Access的使用也变得越来越容易。以往很繁琐的工作现在只需几个很简单的步骤就可以高质量地完成了。

很多人都误以为Access只能用来做数据存储,其实Access不但能用来做数据存储,还具有非常强大的前台界面开发功能,利用各种控件和VBA语言,能开发出功能十分强大的软件系统,与此同时,廉价,易用更是其他任何开发工具所不能比拟的。因此人们可以利用它来解决大量的数据管理工作。

第二章《C语言程序设计》课程在线考试需求分析

要实现一个软件系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。下面就对在《C语言程序设计》课程在线考试系统的设计进行需求分析。

2.1在线考试系统优点

1、可以创建电子题库,方便实现试题的数字化管理。

所谓题库就是试题的仓库,一个简单的数据库,通过对题库的随机抽取实现自动生成试卷功能。是在线考试系统的最具特色和最有实用价值的模块之一。

2、自动组卷,提高出卷效率。

在线考试系统以电子题库为依托,通过设计开发可以实现自动抽题成试卷,极大地提高了出卷效率。对用天辅助教学和测验有很大帮助。

3、有强大地数据统计分析功能。

在线考试系统与传统的纸上考试相比具有强大的统计功能,原本非常繁琐的手动进行的分析统计计算工作,现在可以在瞬间完成。由于在线考试系统从出题、考试到阅卷、统计,完全实现了数字化,不再需要教师手动地将学生成绩、答题情况等详细信息输入计算机,大大减轻了教师的繁重工作。随着社会的不断发展,信息积存和分析提取的日趋重要,考试实现数字化,提高数据存储和分析的能力是不可逆转的潮流,在线考试系统的发展前景是光明的。

2.2可行性分析

可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究工作目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。

2.2.1社会因素方面的可行性

本系统用于学校考试,无法律和政策方面的限制。并且从网络时代兴起到如今,学校教育也离不开网络,信息化已经成为学校教育系统的必要。学生跟教师以及相关工作人员对于在线考试的接受程度也较高。

2.2.2经济方面的可行性

主要是对项目的经济效益进行评价,本系统作为毕业设计选择项目,无需开发经费,并且本系统实施后可以显著提高《C语言程序设计》课程的考试效率,有助于学校实现网络化管理。所以本系统在经济上是可行的。

2.2.3技术方面的可行性

1、技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。

2、软件方面,网络化考试需要的各种软件环境都已具备,数据库服务器方面则有Access2003,能够处理大量数据,方便易用。因此,系统的软件开发平台已成熟可行。

3、硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。

2.2.4操作方面的可行性

目前,大学的校园网络覆盖了教学区和学生去的主要建筑物,从而满足校内各学院,各职能部门,各直属单位的上网需求。学校良好的网络设施为开发使用无纸化在线考试系统提供了坚实的基础。

2.3系统需要解决的主要问题

首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,应该能根据自己的需要选择考试科目,所以该系统还应具有考试科目选择的功能。在线考试于一般的单机考试是不同的。鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后自动生成的。另外,系统还应该对考试时间进行控制,时间到了会要求考试者交卷。考试者选择答案提交后,应该由计算机自动判卷,得到成绩后显示出来。考试完毕后,可以返回登录界面或继续考试。此外,管理员应该能够方便、快捷的对在线考试系统管理,包括对所有用户的管理、考试科目的管理、试题的管理、学生成绩的管理,用户还要能进行远程注册。

2.4系统功能需求

1、用户登录:用户通过用户名和密码进行登录。其中用户分为两种,一种是参加考试的学生用户,在系统首页登录可以进入考试前台使用考试选择、开始考试等功能;另一种是管理员用户,分别可以对学生用户以及自身使用添加、删除等功能,还可以查看题库、考试科目、学生考试成绩,以及对题库中的试题进行添加、删除的操作。

2、用户注册:新用户可以在登录页面进入注册界面进行注册,再返回登录界面进行登录。注册时需要填的信息是用户名,密码输入两次,且两次输入的数据要相同,然后点击注册。

3、试题库管理:本系统的所有题目都放在数据库中,需要时可以对题目进行操作即使用试题管理功能。本系统支持的题目类型有三种:单项选择题、填空题、程序设计题。所有题目都保存在一张表中,试题管理可以添加、删除试题。

4、试卷生成:当学生成功登录系统后选择开始考试,系统便从试题库里随机抽取试题生成一份试卷。

5、在线考试:学生成功登录后选择考试科目后开始考试,此时系统开始记时。系统严格控制整个考试过程,实行时间的监控与权限的控制,考生需要在限定的考试时间内交卷,超过考试时间系统将强制跳转界面强行交卷。

6、计算机自动阅卷:本系统只考虑客观题,要求计算机能自动阅卷,然后马上显示出考生分数。

7、成绩查阅:考生考完以后,管理员成功登录后台管理系统应该可以对所有学生考试的纪录进行查询,并可以删除指定纪录。

2.5系统开发环境与运行环境

1、硬件环境:

处理器:AMD Athlon? 64 X2 Dual Core Processor

硬盘:160G

内存:512M

输入设备:键盘,鼠标

输出设备:显示器

17寸显示器,分辨率为1024*768

2、软件环境:

服务器的配置:XP系统、IIS5.0Internet信息服务、Microsoft Office Access 2003、IE5.0以上、Macromedia Dreamweaver 2004

客户端:IE5.0以上

第三章《C语言程序设计》课程在线考试系统设计

系统设计是系统开发的一个重要环节。根据需求分析阶段所确定的系统的逻辑模型、功能要求,在配置好的软、硬件环境条件下,设计出一个能在计算机环境上实施的方案,即建立系统的物理模型。

这个阶段的任务是设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程,其目的是明确软件系统“如何做”。系统维护人员负责后台数据库数据更新维护。

3.1系统模块设计

在需求分析阶段对系统的功能进行了详细分析,遵循系统开发的设计原则,将系统按功能分为三个模块:用户注册模块、考试模块和系统管理模块。其中系统管理模块是进行题目的添加、存储和删除,是系统运行的基础;查询子模块实现了对学生考试信息远程查询。考试模块是客户端学生或教师通过自己的姓名和学号以及密码登陆系统,进入界面时由系统按照预先设置好的试卷结构从试题库中随机抽取适合的题目,自动生成试卷。

1、《C语言程序设计》课程在线考试系统功能模块图

《C语言程序设计》课程在线考试系统

用户登录用

理系统前台

在线考试

后台管理

图3.1《C 语言程序设计》课程在线考试系统

2、考试功能子模块图

图3.2 《C 语言程序设计》课程在线考试系统

3.2系统总体流程图

通过需求分析,本系统有两个用户角色。学生用户进入系统,如果登录成功则可以使用系统的相应模块,如考试模块,可以进行在线考试,另外不是本系统的用户还可以进行用户注册(只能注册学生身份)再使用本系统;管理员用户通过登录可以进入后台管理进行对学生、试题、考试科目、学生考分以及自身的管理,分别可以进行添加和删除等功能操作。流程图演示如下:

考试模块

选择考试种

开始考试 考试作答 查询分数

3.3 数据库设计

数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。本设计所选择的数据库管理系统是Access2003,运用简单方便。本系统作为一个在线考试系统最关键的是要能考试,要正常进行考试得有一个试题库,试题库也就是一个数据库,而数据库是其中一个非常重要的条件和关键技术。数据库设计大致包括五个步骤:需求分析、概念设计、逻辑设计、物理设计、系统测试。

本系统设计主要陈列出需求分析阶段,以下给出数据流图以及数据字典,简短陈现本系统的数据库。 1、数据流图

数据流图简称DFD ,就是采用图形方式来表达系统的逻辑功能,数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

学生

是否本系统用户

用户登录

用户注册

选择考试科目

开始考试

自测分数

学生成绩表:score

是 后台登录

点击管理

学生管理

试题管理

管理员管理

考试科目管理

学生成绩管理

图3.4 《C 语言程序设计》课程在线考试系统

2、数据字典分析

数据字典分析即数据库表设计。

本系统的数据库共有5张数据表,它们分别是: 管理员信息表:admin 试题信息表:question 学生考分信息表:score 学生信息表:student 考试科目信息表:subject

1.管理员信息表admin

《C 语言程序设计》在线考试系统

学生登录

开始考试

选择考试

学生作答

生成试卷

查询分数

输入数据

交卷

后台登录

管理学生

添加 删除 管理管理员

添加 删除 管理试题

添加 删除 查看及管理学生考

删除

刷新

输入命令

输入命令

输入命令

输入命令

输入命令

输入命令

输入命令

管理员信息表包括id、name、password。用于管理员登陆后台管理系统。

表3.1 admin

字段名称数据类型说明

name 文本管理员登录姓名

password 文本管理员登录密码

id 自动编号

2.试题信息表question

试题信息表包括题号、试题内容、题目类型、试题答案、题目标识。主要用于存储试题。

表3.2 question

字段名称数据类型说明

id 自动编号题号

content 备注试题内容

type 文本题目类型:1为单项选择题;2为填空题;3为程序设计题answer 备注试题答案

count 数字题目标识

3.学生考分表score

学生考分表包括学生姓名、考试名称、考试分数等字段。主要用于保存学生的考试成绩。

表3.3 score

字段名称数据类型说明

studentname 文本学生姓名

subjectname 文本考试名称

score 数字考试分数

id 自动编号

endtime 日期/时间考试结束时间

4.学生信息表student

学生信息表包括学生姓名、登录密码等字段。主要用于保存学生用户的信息。

表3.4 student

字段名称数据类型说明

studentname 文本学生姓名

studentpassword 文本学生登录密码

id 自动编号

5. 考试科目信息表subject

考试科目信息表包括考试名称、单项选择题数量、填空题量、程序设计题量、考试时间、选择题每分数、填空题每题分数、程序设计题每分数等字段。主要用于保存系统供学生选择的考试科目的信息。

表3.5 subject

字段名称数据类型说明

id 自动编号

subjectname 文本考试名称

selectnum 文本单项选择题数量

tiankongnum 文本填空题量

cxsjnum 文本程序设计题量

time 文本考试时间

selectscore 文本选择题每题分数

tiankongscore 文本填空题每题分数

cxsjscore 文本程序设计题每题分数

第四章《C语言程序设计》课程在线考试系统实现

系统实现,就是在进行了系统设计以后,就开始进行详细的设计及编码工作。也就是设计文件和把他们有机地组织在一起实现所有功能。

根据系统设计,首先系统要有一个登录界面,用户可以从该界面登录参加考试。管理员也应该有一个进入管理登录界面的通道。进入开始考试界面,由计算机随机提取试题,显示出来组成试卷,并开始进行计时。考生再次进行考试,答完试题后交卷,进入下一个界面。

考生提交答卷后,由计算机进行处理--判卷,得出考试分数,显示出来,并把该生考试记录存入数据库。在这个界面上应该可以返回继续进行考试或回到登录界面。

以上是系统进行考试功能的部分,要对系统进行管理,如试题管理、科目管理、用户管理等就需要设计一些管理界面。下面就几个重要模块进行设计。

4.1首页设计

首页代码文件为default.asp,该文件的功能是系统登录的界面,在此可以实现用户注册入口,管理员登录界面入口以及用户进入考试系统考试选择界面的功能。

该文件的功能是这样实现的:先将表单提交给文件本身。再由HTML上面的ASP程序对提交信息进行处理。

核心代码:

<%@ Language=VBScript %>//表示脚本语言是VBScript

<% option explicit %>

//用于数据库的连接

<%

if Request.Form("submit")="登录" then

'学生登录的处理

dim rs,sql

set rs = server.createobject("adodb.recordset")

//rs是一个变量,用来存放一个recordset对象。

sql="select * from student where studentname='" & Request.Form("studentname") & "' and studentpassword='" & Request.Form("studentpassword") & "'"

//变量sql代表一个SQL语句,功能是从表student中选出用户名和密码与考生提交的用户名和密码都相同的记录。

rs.open sql,conn,1,1

//该语句的功能是执行sql语句并把记录集结果存储在变量rs中。

if err.number<>0 then

response.write "数据库操作失败:"&err.description

else if rs.bof and rs.eof then

response.write "

对不起,请输入正确的用户名和密码。
"

rs.close //关闭记录

else

rs.close//关闭记录

session("studentname")=request.form("studentname")

//该句的意思是把表单提交的变量studentname的值赋给一个session对象studentname。这个对象用来存储用户名,它在该用户对每个页面的访问中有效。

set rs=nothing//清空rs变量

call endConnection()//调用conn.asp中的过程,用来关闭于数据库的连接

Response.Redirect "selectsubject.asp"

end if

end if

'用户注册

elseif Request.Form("submit")="注册" then

Response.Redirect "register.asp"

'管理员进行管理

elseif Request.Form("submit")="管理" then

Response.Redirect "admin/login.asp"//链接登录文件

end if

%>

学生用户在首页进行登录,输入用户名和密码,如果都匹配成功的话就可以进入系统下一个界面使用相关功能,否则系统将显示“对不起,请输入正确的用户名和密码”。登录成功系统就会将该用户的信息保存到session中,以便后面在不同的界面使用。

首页运行后的界面如图4.1所示:

图4.1《C语言程序设计》课程在线考试系统

4.2用户注册设计

在首页点击进入注册页面,此页面代码文件为register.asp,该文件实现了用户注册的功能,用户只要填写想要注册的用户名及密码,文件首先查看用户名是否已经存在,如果存在就提示该用户名已经存在,否则就将用户输入的信息添加到数据库中的student 表内。然后用户就可以使用自己注册的用户名和密码登录在线考试系统进行在线考试。

在文件中,表单提交给register.asp自身进行处理,如果submit值为“注册”首先进行判断看用户名或密码是否为空。如果为空就显示“错误!用户名或密码不能为空!”的信息。如果不为空,进行下一步判断,看student表中是否已经存在用户想要注册的用户名,如果存在,就显示信息“错误!该用学生存在!”,如果不存在就将要注册的用户名和密码写入student表。

核心代码:

dim id,studentname,studentpassword'//定义用户名和密码变量

相关文档
最新文档