《毕业设计-在线考试系统论文.doc》由会员分享,可在线阅读,更多相关《毕业设计-在线考试系统论文.doc(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、毕 业 论 文在线考试系统(Online Test System)摘要:本在线考试系统是利用微软最新的.net平台并用B/S结构的模式和ACCESS数据库编写的网络应用程序。它有应用简单、升级和部署方便、扩展性强等特点。满足任何授权的考生随时随地考试并迅速获得成绩,由于时间紧张,美工方面并没有下太多功夫,只是实现功能而已,界面看起来有些单调,并且现在只能对一科进行考试,没有增加科目的管理,请指导老师理解。前言随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。现在,计算机硬件技术的发展已经达到了相当高的水平。但是,远程教育软件的开发目
2、前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经
3、不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。在线考试是现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的局限。一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,已发现自己的不足,使得学习效率得到很大提高。在线考
4、试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现考试的自动化。这样一来,教师所要做的只是精心设计题目、维护题库,而不是组织考试,从而大大减轻了教师的负担,这表明其经济性是相当可观的。为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!目前,网络应用软件运行的模式主要有二类:Client/server模式,Browser/Web模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式
5、类似,客户端是一个标准的浏览器,服务器端是Web Server ,而Web Server与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。另外,考试系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端我们采用Access数据库系统和微软最新的.net平台及ASP.net技术来构成考试的应用服务系统;客户端采用浏览器来完成考试全过程,同时可进行远程系统维护和管理。第
6、一章 相关知识介绍该在线考试系统主要采用Microsoft .net Framework、 Access数据库、C#语言、SQL以及Visualstudio2005等技术和工具,整体设计遵循软件工程的方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段。Asp、A和.Net frameworkAsp是Active Server Page的英文缩写。是微软开发的一种服务器端技术从字面上说,ASP包含三方面含义: 1、Active:ASP使用了Microsoft的ActiveX技术。ActiveX(COM)技术是现在Microsoft软件的重要基础。它采用封装对象,程序调用对
7、象的技术,简化编程,加强程序间合作。ASP本身封装了一些基本组件和常用组件,有很多公司也开发了很多实用组件。只要你可以在服务器上安装这些组件,通过访问组件,你就可以快速、简易地建立自己的WEB应用。 2、Server:ASP运行在服务器端。这样就不必担心浏览器是否支持ASP所使用的编程语言。ASP的编程语言可以是VBSCRIPT和 JSCRIPT。VBSCRIPT是VB的一个简集,会VB的人可以很方便的快速上手。然而Netscape浏览器不支持客户端的VBSCRIPT,所以最好不要在客户端使用VBSCRIPT。而在服务器端,则无需考虑浏览器的支持问题。Netscape浏览器也可以正常显示ASP
8、页面。 3、Pages:ASP返回标准的HTML页面,可以正常地在常用的浏览器中显示。浏览者查看页面源文件时,看到的是ASP生成的HTML代码,而不是ASP程序代码。这样就可以防止别人抄袭程序。 由此我们可以看出,ASP是在IIS下开发WEB应用的一种简单、方便的编程工具。在了解了VBSCRIPT的基本语法后,只需要清楚各个组件的用途、属性、方法,就可以轻松编写出自己的ASP系统。A并不是ASP的简单的升级,它是.net Framework的一部分,而.net Framework是微软.net平台的一个重要的组成部分,它是一组用于程序开发的类库,这个类库的规模相当庞大,并且还在不断的更新中。几
9、乎可以胜任任何程序的开发。而且.net是可以跨平台的,用它编写的程序不用重写就可以在不同的平台下运行,就像java应用程序一样。这也是微软用.net平台与JAVA抗衡的一大优势。A是建立在通用语言运行时刻库(CLR)上的应用程序框架。他用来在服务器端构建功能强大的web应用程序。A提供了几个超越以前web开发模式的优点: 增强的性能。A是运行在服务器端的编译后的CLR代码,而不是像ASP那样解释执行。A利用提前绑定,即时编译,本地优化和缓存服务来提高性能。所有这一切,性能远远大于你以往写的每一行代码。世界级水平的开发工具支持。在Visual Studio .net的集成开发环境(IDE)中,A
10、框架由丰富的工具箱和设计器组成。所见即所得的(WYSIWYG)编辑方式、拖放服务器控件、以及自动部署,仅仅是这一强大工具所提供的一少部分功能。 强大而富有弹性。由于是基于CLR(公共语言运行库)的,因此整个.net平台的强大和富有弹性,同样可以应用于web应用程序开发者。.net框架的类库、消息以及数据访问解决方案,都可以无缝集成到web。A也是语言中立的,因此你可以选择你最熟悉的语言,或者通过几种语言来共同完成一个应用。而且,CLR的互用性可以保证你升级到asp.ent的时候,现存的基于COM的开发投资依然保留。 简单。A使执行常用的工作变得很容易,比如从简单的表单提交、客户端验证,到部署和
11、站点配置。例如,允许你建立用户接口,实现页面和逻辑代码的分离,同时,就像vb的表单执行模式那样来处理事件(也就是说,由页面驱动模式变成了事件驱动模式)。此外,CLR简化了部署,用来管理代码服务,例如自动参照和垃圾回收。 易于管理。A使用一个基于文本的、分层次的配置系统,它简化了服务器端环境和web应用程序的设置。由于配置信息用纯文本格式保存,新的设置不需要本地管理工具的支持。这种“零本地支持”的理念也同样应用到了部署应用程序。A应用程序部署到服务器,简化为复制必要的文件到服务器。在部署,甚至替换正在运行的变异代码的时候,也不需要重新启动服务器。 可伸缩性和有效利用性。A被设计成可伸缩的,能为集
12、群和多处理器环境设计提高性能。而且,运行时刻密切监视和管理进程,这样,如果发生了错误的行为,例如漏洞和死锁,新的进程会在当前位置建立,来帮助你的应用程序继续处理事件请求。可订制和扩展。A提供一种良好的扩充结构,允许开发者在适当的级别“插入”他们的代码。事实上,使用自己的编写的组件可以扩展或者替换运行时刻的任何子组件。执行自定义验证或状态服务变得前所未有的容易。ASP.net是M的一部分,作为战略产品,不仅仅是 Active Server Page (ASP) 的下一个版本;它还提供了一个统一的 Web 开发模型,其中包括开发人员生成企业级 Web 应用程序所需的各种服务。ASP.NET 的语法
13、在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加 ASP.NET 功能,随时增强 ASP 应用程序的功能。 ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。 ASP.NE
14、T 可以无缝地与 WYSIWYG HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。 微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。C#语言与Visual Studio 2005C#是一种简单、现代、面向对象和类型安全的编程语言,由C和C+发展而来。C#
15、(发音为“C霎普”)牢固地植根于C和C+语言族谱中,并且会很快被C和C+程序员所熟悉。C#的目标在于把Visual Basic的高生产力和C+本身的能力结合起来。C#作为Microsoft Visual Studio的一部分提供给用户。除了C#以外,Visual Studio还支持Visual Basic、Visual C+和描述语言VBScript和Jscript。所有这些语言都提供对Microsoft .NET平台的访问能力,它包括一个通用的执行引擎和一个丰富的类库。Microsoft .NET平台定义了一个“通用语言子集”(CLS),是一种混合语言,它可以增强CLS兼容语言和类库间的无缝
16、协同工作能力。对于C#开发者,这意味着既是C#是一种新的语言,它已经可以对用老牌工具如Visual Basic和Visual C+使用的丰富类库进行完全访问。C#自己并没有包含一个类库。Visual Studio2005是微软开发的visual studio系列开发工具的最新版本,微软公司在2005年12月初发布新一代企业级应用开发平台.NET Framework 2.0和开发工具Visual Studio 2005。现代信息部门的开发团队必须因应高度竞争的商业环境,快速进行应用软件系统的设计、开发、测试以及部署带领企业赢得市场。大部分的软件开发团队,都面临以下几项挑战:开发团队间的沟通困难,
17、开发工具形形色色,分散且难以互相整合开发程序、开发标准难以建立。Microsoft Visual Studio 2005 开发工具系列,有许多令人期盼已久的强化功能,提供更高的程序开发效率、更精简的程序代码、与更佳的安全性。包括 .NET Framework 2.0、 ASP.NET 2.0、64-bit 程序开发支持、新的 Windows Form 程序设计、以及对行动装置解决方案的全新开发支持。数据源:Access数据库Access是微软Office中一个极为重要的组成部分。起初Access是一个单独的产品,后来微软发现如果将Access捆绑在office中一起发售,将会带来更加可观的利润
18、,于是Access第一次出现在office97中,成为office中的一个重要成员。现在它已经成为Office中不可缺少的部件了。由于微软公司投入大量人力和资金进行技术改进和创新,Access的新版本功能已经变得越来越强大。随着版本的升级,Access的使用也变得越来越容易。以往很繁琐的工作现在只需几个很简单的步骤就可以高质量地完成了。很多人都误以为Access只能用来做数据存储,其实Access不但能用来做数据存储,还具有非常强大的前台界面开发功能,利用各种控件和VBA语言,能开发出功能十分强大的软件系统,与此同时,廉价,易用更是其他任何开发工具所不能比拟的。因此人们可以利用它来解决大量的数
19、据管理工作。第二章 需求分析要实现一个软件系统,首先应该进行需求分析,这样才能令设计出的软件满足用户的各项功能。下面就对在线考试系统的设计进行需求分析。2.1 系统需要解决的主要问题首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,应该能根据自己的需要选择考试科目,所以该系统还应具有考试科目选择的功能。在线考试于一般的单机考试是不同的。鉴于第三章 系统总体设计3.1基本简介该系统是专门用于用户注册、登录、参加在线考试以及管理员进行试题录入、修改、删除、成绩查询、管理用户的ASP.net应用程序。它应该具有开放性、方便性和灵活性。考生进行有效的身份验
20、证登录后,要求在规定的时间内进行答题,当达到规定的时间后,系统将自动予以提示。一旦考生做完交卷后便能立即看到自己的考试成绩,并且其分数将被记入库中以供审核和查阅;另外,还可完全由计算机自动灵活、随机的抽取试题库中的各类试题组成各种形式的试卷,其内容会随着库中试题的改变而改变,而且,不同的考生生成的试题是不同的。3.2 运行环境与系统结构为了保证系统运行的效率和可靠性,系统服务器端应具有较高的软硬件配置,客户端的要求不是很高。此应用程序可广泛运行于国际互联网即Internet,也可适用于内部的局域网。其运行要求如下:软件环境:客户端: Windows98/2000/XP,IE5.0以上服务器端:
21、Windows NT/Windows2000,Windows 2000 Server,IIS 5.0及其以上版本。开发环境:.Net framework 2.0,Visual studio 2005,MDAC 2.7数据库:采用access,运行于服务器端。硬件环境:服务器 CPU:PIII 500以上 ,内存:256M以上客户机 CPU:P200MMX以上,内存:32M以上3.2 系统结构图根据需求分析,在线考试系统的结构图如下:在线考试系统成绩查询系统管理在线考试试题管理用户管理3.3 详细设计3.3.1试题设计3.3.2数据库中表的设计3.3.3 用户、管理员权限3.3.4 功能模块详细
22、设计3.3.4.1 管理模块第四章 系统实现在进行了整体设计以后,就开始进行详细的设计及编码工作。也就是设计文件和把他们有机地组织在一起实现所有功能。根据系统总体设计,首先系统要有一个登录界面,用户可以从该界面登录参加考试。管理员也应该有一个进入管理登录界面的通道。进入开始考试界面,由计算机随机提取试题,显示出来组成试卷,并开始进行计时。考生再次进行考试,答完试题后交卷,进入下一个界面。考生提交答卷后,由计算机进行处理-判卷,得出考试分数,显示出来,并把该生考试记录存入数据库。在这个界面上应该可以返回继续进行考试或回到登录界面。以上是系统进行考试功能的部分,要对系统进行管理,如试题管理、科目管
23、理、用户管理等就需要设计一些管理界面。下面就来逐步进行设计。要进行管理首先要有管理员登陆验证,这里另外设计了一个界面,使它与用户登录区别开来。这个界面与用户登录界面表面上很相似,但是他们是从不同的表中提取数据进行验证的,以便于系统扩充和增加安全性。管理用户的界面可以实现用户的增加、和删除的功能,管理员在此可以对用户进行管理。管理管理员的界面,功能和管理用户的差不多,实现对管理员的增加和删除功能。管理考试纪录界面可以对考生的每次考试进行纪录,管理员科可以对考生成绩、时间及考试各相关纪录进行查询和删除。最后是试题库管理界面,它根据各科进行分类。通过这个界面管理员可以对题库中的某科试题进行增加、修改
24、或删除。这样就十分方便灵活的对试题库进行管理。参考文献:ASP.NET 1.1高级编程作者:Alex Homer Dave Sussman 清华大学出版社数据库技术 作者:罗晓沛 华中理工大学出版社MSDN部分文章部分代码:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using Syst
25、em.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.OleDb;public partial class test : System.Web.UI.Page int numberofti = 11;/生成试题的数量 int testlist;/存放10个随机数的整型数组 DataTable Test = new DataTable();/用于存放随机抽取的试题; OleDbConnection conn;/数据库连接 protected string userselect = new
26、 string10;/考生选择的答案 protected string trueanswer = new string10; /该题正确的答案 protected void Page_Load(object sender, EventArgs e) lblname.Text = (string)Sessionusername; lbllogintime.Text = (string)Sessionlogintime; Button1.Visible = false; / / 生成10个随机整数,并存放于数组中 / / / protected void btnbegin_Click(object
27、 sender, EventArgs e) testlist = new intnumberofti; string connecionstring = (string)Applicationconnectstring; conn = new OleDbConnection(connecionstring); string commandtext = select count(id) from question; OleDbCommand comm = new OleDbCommand(commandtext); comm.Connection = conn; OleDbDataAdapter
28、 da = new OleDbDataAdapter(commandtext, conn); DataTable dt_rowcount = new DataTable(rowcount); da.Fill(dt_rowcount); int rows = int.Parse(dt_rowcount.Rows00.ToString(); for (int i = 0; i numberofti; i+) int temp = GetNumber(rows); while (ArrayHasItem(testlist, temp) temp = GetNumber(rows); testlist
29、i = temp; OleDbConnection newconn = new OleDbConnection(string)Applicationconnectstring); OleDbCommand newcomm = new OleDbCommand(); newcomm.Connection = newconn; newconn.Open(); for (int x = 0; x numberofti; x+) newcomm.CommandText = CreateSQL(testlistx.ToString(); newcomm.ExecuteNonQuery();/把数组里每一
30、个题的ID所对应的标志位置为1,表示该题已经选上 da = new OleDbDataAdapter(select * from question where hasselected=1, conn);/选择题目 da.Fill(Test);/把选择的题目放入DataTable newcomm.CommandText = update question set hasselected=0 where hasselected=1;/把已经选择的题目的标志位置为0,以便下次再选 conn.Open(); newcomm.ExecuteNonQuery(); conn.Close(); GridVi
31、ew1.DataSource = Test; GridView1.DataBind(); Button1.Visible = true; int number = Test.Rows.Count; / / 按照随机数组里的ID号,抽取试题 / / / private DataTable GetTestTittle(int temarray) DataTable testTable = new DataTable();/存放试题的表 DataTable temptable = new DataTable(); OleDbDataAdapter odap = new OleDbDataAdapte
32、r(select top 30 * from question, conn); OleDbCommand cmdselect = new OleDbCommand(); odap.Fill(testTable); return testTable; / / 根据每一个ID号生成SQL语句 / / / private string CreateSQL(string id) return update question set hasselected=1 where id= + id; / / 得到随机数 / / 随机数的最大值 / private int GetNumber(int maxval
33、ue) Random rd = new Random(DateTime.Now.Second); int result = rd.Next(maxvalue + 1); if (result = 0) result = 1; return result; / / 判断一个整数数组里面是否包括一个整数 / / 数组 / 一个整数 / private bool ArrayHasItem(int array, int item) for (int i = 0; i array.Length; i+) if (arrayi = item) return true; return false; / /
34、退出系统,并转到登陆页面,清除session / / / protected void Button2_Click(object sender, EventArgs e) Session.Clear(); Response.Redirect(default.aspx); / / 交卷 / / / protected void Button1_Click(object sender, EventArgs e) int testnumber = Test.Rows.Count; Response.Write(testnumber.ToString(); for (int i = 0; i testnumber; i+) string selvalue = (RadioButtonList)GridView1.Rowsi.FindControl(RadioButtonList2).SelectedValue; userselecti = selvalue; trueansweri = Test.Rowsianswer.ToString(); 部分截图:您好,论文内容有删节,如需要原稿请登录购买论文及配套源码 谢谢QQ:83550637317