收藏 分销(赏)

重庆三峡学院大学计算机课程考试系统.doc

上传人:pc****0 文档编号:6181174 上传时间:2024-11-29 格式:DOC 页数:28 大小:118KB 下载积分:10 金币
下载 相关 举报
重庆三峡学院大学计算机课程考试系统.doc_第1页
第1页 / 共28页
重庆三峡学院大学计算机课程考试系统.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
摘 要 随着计算机技术的快速发展,网络化已经开始渗透我们生活的各个角落,教育网络化发展也不例外。目前已经形成了许多成熟的网络化教育教学产品,例如远程教育系统,网络课件,在线考试等多种网络化产品。毫无疑问,学校教学和管理的信息化是将来发展的趋势,目前教育网络化已经取得了长足的发展。信息技术改变了传统的教育教学方法,随着Internet的崛起,远程教育已经开始了快速发展,信息技术使得终身教育与普及教育不在是一句口号。网络技术打破了教育的时间和空间限制,使得随时随地学习变成现实。 中国的网络教育也随Internet的发展而同步增长,同时,网络教育也为中国的教育事业开辟了新的天地。本文设计开发的考试管理系统也是其中重要的一个方面。该系统本着减轻教师工作负担、提高工作效率、优化学生考试的流程,增强参加考试学生的身份识别,比传统的考试模式节省人力财力和时间。 本论文第一章主要介绍了在线考试的开发背景;第二章是系统设计的相关技术介绍,着重介绍了.NET技术、SQL语句、AJAX技术、IIS服务器;第三章是系统的数据库设计,详细列出了各表完成的功能;第四章是系统功能需求分析,着重分析该系统要完成的功能以及系统体系结构;第五章是系统详细设计,其中包括了数据库的详细设计和功能实现的详细设计,是本论文的重点。 关键字:考试系统 ASP.NET C# SQL 存储过程 第一章 绪 论 开发背景 当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。目前的一个发展趋势是采用大规模试题库的计算机网络考试模式。随着计算机网络教育教学中的普及,传统试的考试出卷、答卷方式以及成绩管理模式已经发生了巨大的变化,使考试过程变得方便、高效、快捷、公正,是现代教育研究的一个重要课题。 网络考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程。因此网络考试系统是电子化教学不可缺少的一个重要环节。考试的标准化、计算机网络化已当今考试的发展方向,当前国际上许多考试认证,都是在计算机上完成的。无纸化的考试形式有着其科学、及时、准确、公平等优点,具有传统考试形式无法替代和比拟的优势。 第二章 系统设计相关技术 对于一个通用的网络考试系统,必须克服以前计算机考试的几个主要不足,1、题型单一,普通通用考试系统采用机考与计算机阅卷,题型通常只是客观题,如一些需要发挥主观分析能力,基本上无法实现。2、题库扩充难度高,一旦题库的主体格式确定,无法对其他格式进行兼容,对于现成的题库更无法直接使用,使一些已出版的题库――这些优质资源无法整合运用,3、考试系统功能单一,只能在进行考试时使用,学生平时的练习尤其是针对性练习功能基本上没有,造成教学资源的闲置。 针对以上问题,本文拟设计一个安全性更好,有更强的通用性和可扩展性和具备较强的意外事件处理能力,操作简单,使用方便,同时要具备练习与考试多重功能,同时具备机器阅卷与人工阅卷相辅的网络考试系统。 本系统主要使用微软SQL Server2005数据库和.NET技术(采用C#语言),纯B/S模式网络考试系统,整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、和系统实现几个阶段。 2.1 .NET技术: .NET框架是一种新的计算平台,它简化了在高度分布式Internet环境中的应用程序开发。.NET框架旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。提供一个将软件部署和版本控制冲突最小化的代码执行环境。提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。 按照工业标准生成所有通讯,以确保基于.NET框架的代码可与任何其他代码集成。 .NET框架具有两个主要组件:公共语言运行库和.NET框架类库。公共语言运行库是.NET框架的基础。可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发包含从传统的命令行或图形用户界面(GUI)应用程序到基于ASP.NET所提供的最新创新的应用程序(如Web窗体和XML Web services)在内的应用程序。 .NET框架可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET框架不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。 2.2 SQL语句: 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。 SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL)、数据操作语言(DML)及数据控制语言(DCL)。 ① 数据定义语言(DDL) DDL 用于定义和管理对象,例如数据库、数据表以及视图。DDL 语句通常包括每个对象的CREATE、ALTER 以及 DROP 命令。举例来说,CREATE TABLE、ALTER TABLE 以及 DROP TABLE 这些语句便可以用来建立新数据表、修改其属性(如新增或删除资料行)、删除数据表等。 ② 数据操作语言(DML) DML(Data Manipulation Language) 数据操纵语言DML 利用 INSERT、SELECT、UPDATE 及 DELETE 等语句来操作数据库对象所包含的数据。 ③ 数据控制语言(DCL) DCL用于控制对数据库对象操作的权限,它使用GRANT和REVOKE语句对用户或用户组授予或回收数据库对象的权限。 2.3 AJAX技术: AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式网页应用的网页开发技术。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。 AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。 通过 AJAX,可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象, JavaScript 可在不重载页面的情况与 Web 服务器交换数据。 AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 AJAX 可使因特网应用程序更小、更快,更友好。 传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。 与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因此在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。 使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。 Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。 2.4 IIS服务器: Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,它是一种Web服务器,主要包括WWW服务器、FTP服务器和SMTP服务器等。IIS可运行于Windows2000、Windows2003或Windows XP平台。 第三章 数据库设计 系统数据库包括五个方面: 1.管理员数据:登录名及密码修改。 2.科目试题数据:包括单项选择题和多项选择题类型库。包括各科的单选题目和多选题目、选项及答案。 3.学生成绩信息表数据:包括学生的学号、考试科目、考试分数、考试时间。 4.学生登录信息表数据:包括学生登录名及登录密码。 5.各考试科目信息表数据:包括科目名称、考试时间、单选题量、多选题量、单选分值、多选分值。 本系统共分为五个表,详细内容如下: (1)系统管理员表(admin) 字段名称 数据类型 说明 name 文本 管理员登录名 password 文本 登录密码 表3.1 admin (2)科目试题表(puestion) 字段名称 数据类型 说明 question 文本 问题 A 文本 选项A B 文本 选项B C 文本 选项C D 文本 D answer 文本 答案 type 文本 题型 subjectname 文本 科目名称 表3.2 puestion (3)学生成绩信息表(score) 字段名称 数据类型 说明 testtime 文本 学生学号 subjectname 文本 科目名称 sore 数字 分数 endtime 日期/时间 交卷考试时间 表 3.3 score (4)学生登录信息表(student) 字段名称 数据类型 说明 student name 文本 学生登录名 student password 文本 登录密码 表3.4 student (5)各考试科目信息表(subject) 字段名称 数据类型 说明 multipart 文本 多选分值 single per 文本 单选分值 multimember 文本 多选题量 single number 文本 单选题量 subject name 文本 科目名称 test time 文本 考试时间(分钟) 表3.5 subject 第四章 系统功能需求分析 4.1系统的主要功能概述: (1)学生信息导入:学生可以自主注册成功后方可进入本网站实现在线考 试功能,但前提是在填写了网站要求的注册信息并经过管理员认证方可。 (2)试题题库管理:学生登录成功后进入考试界面。 (3)考试在线判卷:将学生考试的试卷进行判卷并保存在后台。 (4)后台管理程序:在输入管理员账号及密码后将进入后台管理页面,包括管理员管理、学生管理、考试科目管理、学生成绩浏览、各科试题管理。 (5)管理员管理:可以添加或删除管理员。 (6)学生管理:可以添加或删除管理员。 (7)考试科目管理:显示各科目的详细信息,可以添加和删除科目。 (8)学生成绩浏览:记录学生成绩的详细信息。 (9)各科目试题管理:显示科目的试题信息,可以编辑和删除试题。 4.2系统主要工作流程: (1)学生考试流程,如图4-1所示。 图4-1 学生考试流程图 简要说明学生考试流程图:当学生输入正确的用户名及密码后点击“登录”按钮后进入选择考试科目界面后进行考试、交卷、返回系统首页;如果需要注册新用户点击“注册”按钮进入考生注册界面注册成功后自动转到选择考试科目界面选择科目进行考试再回到系统首页。 (2)系统后台管理流程,如图4-2所示 图4-2 管理员管理流程图 简要说明管理员流程图:进入系统首页点击“管理”按钮进入到管理员登录界面,登录成功后来到管理员管理菜单的界面。 第五章 系统详细设计 系统联为一体,界面简洁、直观,操作简单、方便。另外,支持按权限对系统进行操作,即不同类型的用户拥有相异的权限对题库执行不同的操作。 该系统是专门用于用户注册、登录、参加考试以及管理员进行试题录入、修改、删除、成绩查询、管理用户的asp应用程序。它应该具有开放性、方便性和灵活性。考生进行有效的身份验证登录后,要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提示。一旦学生做完交卷后系统会自动保存学生的成绩,并且其分数将被记入库中以供审核和查阅;另外,还可完全由计算机自动灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,而且,不同的考生生成的试题是不同的。下面将会分节来介绍各个功能实现的界面和代码。 系统的首页 系统的首页(default. asp),有三个模块:登录、管理、注册。 登录模块 使用VBScript语言,定义rs,sql两个变量,判断用户名及密码是否为空,或用户名及密码是否输入正确,如果为空或输入不正确时在上方输出提示语。 代码如下: <%@ Language=VBScript %> dim rs,sql set rs = server.createobject("adodb.recordset") sql="select * from student where studentname= '"& Request.Form ("studentname")& "'and studentpassword='" & Request.Form("studentpassword") &"' " rs.open sql,conn,1,1 if err.number<>0 then else if rs.bof and rs.eof then response.write "<center>对不起,请输入正确的用户名和密码。</center>" rs.close 如果用户名及密码输入正确就转到选择考试科目界面,代码如下: else session("studentname")=request.form("studentname") set rs=nothing call endConnection() Response.Redirect "selectsubject.asp" end if 2.考生注册界面 系统首页的“注册”按钮进入到考生注册界面。考生进行注册时一定要输入用户名及密码,且两次密码输入必需要一致,否则就会在上方输出提示语。 代码如下: <% dim id,studentname,studentpassword '定义变量 dim sql,rs,rsc if request("submit")="注 册" then '添加新用户 if trim(request("studentname"))=""or trim (request("studentpassword"))="" then Response.Redirect "register.asp?errMessage=错误!必须要输入用户名或密码!" response.end end if 验证输入的密码是否一致 If trim(request("studentpassword")) <> trim (request("studentpassword2")) then Response.Redirect "register.asp?errMessage=错误!您输入的两次输入的密码都不一致!" response.end end if set rs=server.createobject("adodb.recordset") '检查学生是否重名 rs.open "select * fromstudentwherestudentname='" & cstr(trim(request("studentname"))) & "'",conn,1,1 if err.number <> 0 then Response.Redirect "register.asp? errMessage=数据库出错!" response.end 输入的用户名是否已经存在 else if not rs.bof and not rs.eof then Response.Redirect "register.asp?errMessage=错误!您输入的这个用户名称已经存在了!!!" rs.close response.end end if rs.close set rs=nothing sql="insert into student(studentname,studentpassword) values ('" & cstr(trim(request("studentname"))) &"',' ”& cstr(trim(request("studentpassword"))) & "')" conn.execute sql if err.number <> 0 then Response.Redirect "register.asp? errMessage=" & "数据库操作出错:" & err.description Response.End 注册成功 else session("studentname")=request("studentname") response.write "<script language=javascript>window.alert('注册成功!')</script>" session("studentname")=request("studentname") Response.Redirect "selectsubject.asp" '连接到选择考试科目界面 end if 理员登录界面 点击系统首页的“管理”按钮进入到管理员登录界面,管理员输入正确的登录名及密码,点击“进入按钮”。 管理员登录的处理 <%@ Language=VBScript %> <!- -#include file="conn.asp"- -> session("name")=request.form("name") session("password")=request.form("password") dim rs,sql set rs = server.createobject("adodb.recordset") sql="select * from admin where name='" & Request.Form("name") & "' and password='" & Request.Form("password") & "'" rs.open sql,conn,1,1 if err.number<>0 then response.write "数据库操作失败:"&err.description elseif rs.bof and rs.eof then response.write "<center>对不起,请输入正确的用户名和密码。如果您不是管理员,请退出!</center>" rs.close 入正确,进入管理菜单界面 else rs.close session("name")=request.form("name") set rs=nothing call endConnection() Response.Redirect "primarypage.asp" end if 退出管理员登录,返回系统首页 elseif Request.Form("submit")="退出" then Response.Redirect "../defau 4.管理员管理菜单界面 管理菜单界面包括的菜单有:管理考生(mgstudent.asp),管理员(mgadmin.asp),管理考试科目(mgsubject.asp),查看及管理学生成绩(mgscore.asp),管理各考试科目的试题(mgquestion.asp) (1) 管理学生 ① 删除学生模块,点击“删除”即可删除该学生。 代码如下: <%@ Language=VBScript %> <!--#include file="conn.asp"--> sql="delete from student where id=" &request("id") conn.execute sql if err.number <> 0 then response.write "数据库操作错误:" + err.description err.clear else %> <script language=vbscript> msgbox "操作成功!该考生已删除!" </scrip ② 添加学生模块,输入一个新的登录名以及密码即可。 dim id,studentname'定义变量,用户的id if trim (request(“studentname”))= ””or trim (request("studentpassword"))= " " then response.write "操作错误!用户名或密码不能为空! <a href=# onclick='javascript:window.history.go(-1)'>返回</a>" resp 检添加的新考生是否重名 rs.open "select * from student where studentname='" & cstr(trim(request("studentname"))) & "'",conn,1,1 if err.number <> 0 then response.write "数据库出错" else if not rs.bof and not rs.eof then response.write "操作错误!使用该学号的已考生存在! <a href=# onclick='javascript:window.history.go(-1)'>返回</a>" response.end end if 成功添加新考生代码: rs.close set rs=nothing sql="insert into student(studentname,studentpassword) values('" & cstr(trim(request("studentname"))) & "','" & cstr(trim(request("studentpassword"))) & "')" conn.execute sql if err.number <> 0 then response.write "数据库操作出错:" + err.description else %> <script language=vbscript> msgbox "操作成功!新考生添加成功!" </scr (2) 管理员 ① 删除管理员模块,点击“删除”即可删除管理员 代码如下: <%@ Language=VBScript %> <!--#include file="conn.asp"--> if request("action")="del" then '删除管理员 sql="delete from admin where id=" &request("id") conn.execute sql if err.number <> 0 then response.write "数据库操作错误:" + err.description err.clear else %> <script language=vbscript> msgbox "操作成功!该管理员的信息已删除!" </script> end if ② 添加管理员模块,输入一个新的管理用户名以及密码即可。 检查管理员是否重名 set rs=server.createobject("adodb.recordset") rs.open "select * from admin where name='" & cstr (trim(request("name"))) & "'",conn,1,1 if err.number <> 0 then response.write "数据库出错" else if not rs.bof and not rs.eof then response.write "操作错误!该管理员已存在! <a href=# onclick='javascript:window.history.go(-1)'>返回</a>" response.end end if 成功添加管理员 if request("action")="add" then if trim(request("name"))="" or trim(request("password"))="" then response.write "操作错误!用户名或密码不能为空! <a href=# onclick='javascript:window.history.go(-1)'>返回</a>" response.end end if rs.close set rs=nothing sql = "insert into admin(name,password) values ('"&cstr(trim(request("name")))&"','" & cstr(trim(request("password"))) & "')" conn.execute sql if err.number < > 0 then response.write "数据库操作出错:" + err.description else %> <script language=vbscript> msgbox "操作成功!新管理员添加成功!" </script> (3) 管理考试科目 ① 删除考试科目,点击“删除”即可删除考试科目。 代码实现如: <%@ Language=VBScript %> <!--#include file="conn.asp"--> if request("action")="del" then '删除用户 sql="delete from subject where id=" &request("id") conn.execute sql if err.number <> 0 then response.write "数据库操作错误:" + err.description err.clear else %> <script language=vbscript> msgbox "操作成功!该科目的信息已删除!" </script> end if ② 添加考试科目,填写完整各项后即可成功添加考试科目。 检查科目名是否重名代码如下 set rs=server.createobject("adodb.recordset") rs.open "select * from subject where subjectname='" & cstr(trim(request("subjectname"))) & "'",conn,1,1 if err.number <> 0 then response.write "数据库出错" else if not rs.bof and not rs.eof then response.write "操作错误!该科目已经存在! <a href=# onclick='javascript:window.history.go(-1)'>返回</a>" response.end end if 成功添加考试科目 if request("action")="add" then if trim(request("subjectname"))="" or trim(request("testtime"))=""or trim(request("multinumber"))=""or trim(request("multiper"))=""or trim(request("singlenumber"))=""or trim(request("singleper"))=""then response.write "操作错误!科目名以及其余各项不能为空! <a href=# onclick='javascript:window.history.go(-1)'>返回</a>" response.end end if rs.close set rs=nothing sql="insert into subject(subjectname,testtime, singlenumber,singleper,multinumber,multiper) values ('" & cstr(trim(request("subjectname"))) & "'," & cstr(trim(request("testtime"))) & "," & cstr(trim(request("singlenumber"))) & "," & cstr(trim(request("singleper"))) & "," & cstr(trim(request("multinumber"))) & "," & cstr(trim(request("multiper"))) & ")" conn.execute sql if err.number <> 0 then response.write "数据库操作出错:" + err.description else %> <script language=vbscript> msgbox "操作成功!新科目添加成功!" </script> end if (4) 查看及删除学生成绩 ① 查看学生成绩,以管理员的身份登录到系统管理菜单界面后直接选择“查看及管理学生成绩”选项即可。 ② 删除学生成绩,点击“删除”即可删除想要删除的成绩。 代码实现如下: <%@ Language=VBScript %> <!--#include file="conn.asp"--> <% dim id'定义变量,用户的id dim sql,rs,rsc if request("action")="del" then '删除纪录 sql="delete from score where id=" &request("id") conn.execute sql if err.number < > 0 then response.write "数据库操作错误:" + err.description err.clear else %> <script language=vbscript> msgbox "操作成功!该考生的考试纪录已删除!" </script> end if (5) 管理各考试科目的试题。 ① 删除试题,在管理菜单界面中选择“管理科目试题”。在弹出的界面中点击删除即可。 代码实现如下: <%@ Language=VBScript %> <!--#include file="conn.asp"--> if request("action")="del" then '删除 sql="delete from question where id=" &request("id") conn.execute sql %> <script language=vbscript> msgbox "操作成功!!该试题已删除!" </script> end if ② 添加试题,在管理菜单界面中选择“管理科目试题”下方的科目名称。在弹出的界面下方中填写完整各项后便可添加试题 代码实现如下: <%@ Language=VBScrip
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服