资源描述
在线考试系统在线考试系统摘要 随着网络的普及和对教育的重视,各院校各学科的网上考试都具有了必要的使用环境。但是,目前国内的一些网络教学系统的主要功能是教学,不能单独作为考试平台,通用性差,而且系统中对主观题的评阅多是采用人工评阅方式,没有实现真正意义上的自动评分。另一方面,我们所在院校的计算机基础课已开设了多年,但尚在沿用传统的考试形式或使用单机版的考试系统。基于Web的网上考试系统的设计与实现就是基于上述目的开发设计的。本系统采用B/S架构作为系统的总体结构,以Web数据库技术为依托,利用微软的ASP.NET技术,结合ADO,实现了对Web数据库的访问和查询。该设计实现了按题型随机抽题组卷、在线考试、题库管理、系统管理的功能,能够对客观题在线评分。学生用学号登录成功后,阅读考试须知,之后选择考试科目进入考试页面,完成相应科目考试,自动给出考试成绩。系统管理,实现了对题库、考生信息、考试成绩、考试科目的管理。题库管理,实现了对试题的添加、编辑、删除功能;考生信息管理可以添加、修改、删除、查询考生信息,成绩管理可以删除成绩信息,科目管理主要是修改考试科目信息。基于Web的网上考试系统本身是一个很大的系统,尤其试题库部分需要许多人的参与以及大量的投入才能建成。该系统虽然仅仅是完成计算机文化基础和操作系统课程的考试,但却具有良好的实用性与通用性,提供友好的人机界面,具有较好的可扩充性和开放性。论文关键词:ASP.netB/S网络考试系统数据库 Summary:With the popularity of the network and the importance of education, the institutions of various subjects on-line examinations have the necessary use of the environment. However, there are some domestic network teaching system main function is teaching, not alone as a test platform, general poor, and the system on the subjective question of Ping Yue Ping Yue mostly artificial means, there is no real sense of the automatic scoring. On the other hand, the institutions where we have set up basic computer classes for many years, but still follow the traditional examination forms or use stand-alone version of the exam system. Web-based Online Examination System is based on the purpose and implementation of development and design. The system uses the B / S structure as the systems overall structure to Web database technology as the basis, using Microsofts ASP.NET technology, combined with ADO, realized the Web database access and queries. The design is achieved by randomly Questions in paper selection, online exam, question bank management, system management functions, to question the objective line score. Students with Student ID login is successful, read the exam notes, and then select the test subjects into the test page, complete the appropriate subject examination, examination results are given automatically. System management, implementation of test database, candidate information, examination results, test subjects of management. Question bank management, and the addition of questions, edit, delete functions; candidate information management can add, modify, delete, query candidates information, performance management, performance information can be deleted, subject mainly to modify the test subjects management information. Web-based online examination system itself is a great system, in particular, part of item bank need the participation of many people and lots of investment to build. Although the system is just the completion of Computer Culture and operating system coursePaper Keywords: ASP.net B / S database of network test system1目录 第1章 引言11.1开发背景11.2 开发意义2第2章 系统开发工具及开发平台32.1开发工具及平台32.2 开发工具的简单介绍32.2.1 .NET32.2.2 C# 语言42.2.3 SQL Server200052.2.4 访问数据库:ADO.NET5第3章 系统分析73.1 系统及需求分析73.1.1 系统需求73.1.2 可行性分析73.2 系统功能简介83.2.1 用户登录及注册模块83.2.2 在线考试模块93.2.3 试题管理模块93.2.4学生信息管理模块93.2.5 教师信息管理模块103.2.6 成绩信息管理10第4章 系统总体设计114.1 系统架构设计114.2 系统功能模块划分12第5章数据库设计135.1 总体设计135.2 表设计135.2.2 学生表 ostudent135.2.2 教师表 oteacher135.2.3 管理员 oadmin145.2.4选择题表 oselect145.2.5 填空题表 oinput145.2.6判断题ojudge155.2.7 成绩信息表oresult15第6章系统功能详细设计及实现166.1 系统通用类及模块设计166.2 用户登录和注册166.2.1 用户登录176.2.1 用户注册196.3 教师功能206.3.1 信息管理206.3.2 试题添加:236.3.3 试题维护246.4 学生功能276.41 考试管理286.42 信息管理30数理系网站建设6.5 管理员功能326.5.1 添加信息326.52 信息管理336.53 信息查询34致谢37参考文献38第1章 引言1.1开发背景 Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。与传统考试模式相比,在线考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度增加考试成绩的客观性和公正性。传统的考试方式一般要经过人工出卷、考生考试、人工阅卷等过程。对于一些课程来说,随着考生数量的增加,教师出卷阅卷的工作量将会越来越大,并且其工作十分烦琐和非常容易出错。在线考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设,目的是充分利用学校现有的计算机软、硬件和网络资源实现无纸化考试以避免传统手工考试的不足。与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。通过Internet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观性、公证性,自动化组卷、阅卷可以减轻教师的工作强度。传统考试要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷。这是一个漫长而复杂的过程,已经越来越不适应现代教学的需要。在线考试系统是传统考场的延伸,它可以利用网络的无限广阔空间,随时随地的对学生进行考试,加上Web数据库技术的利用,大大简化了传统考试的过程。本文以Internet为平台,研究了基于Web考试系统的设计与开发,包括系统需求分析和系统功能设计以及数据库设计。重点阐述了用户注册模块、用户登录模块、在线考试模块、试卷管理模块、用户管理模块、成绩管理模块的设计。1.2 开发意义在网络技术逐渐渗入社会生活各个层面的今天,传统的考试方式也面临着变革,而网络考试则是一个很重要的方向。基于Web技术的网络考试系统可以借助于遍布全球的Internet进行,因此考试既可以在本地进行,也可以在异地进行,大大拓展了考试的灵活性。试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机阅卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。所以现在较好的考试方法为网络考试,试题内容放在服务器上,考生通过姓名、准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。因此,采用网络考试方式将是以后考试发展的趋势。近几年来,借鉴发达国家的成功经验,结合我国的实际情况,伴随着网络应用的不断扩大,远程教育和虚拟大学的出现,网络应用正不断深入人心。人们迫切要求利用网络技术进行在线考试,来提高了考试的质量,突出公正和客观性,减轻组织及保障工作的负担,提高工作效率。于是许多教育教学类的课程在线考试软件应运而生,高等学校,企事业单位也都纷纷组织研究此类应用的解决方案,并研制开发了大量的不同类型计算机在线考试软件,也推出了一批优秀的在线考试软件产品,比如全国计算机等级考试软件、职称计算机能力考试等等。有力地推动了我国网络化在线考试的发展水平,并积累了大量有价值的经验。第2章 系统开发工具及开发平台2.1开发工具及平台本系统采用ASP.NET模式开发制作,用Visual Studio.NET2005和SQL SERVER 2000作为开发工具,用Web数据库理论设计数据库,SQL语言进行数据库查询、插入、删除等操作,设计出能实现各个功能模块的WEB应用程序(B/S)模式。2.2 开发工具的简单介绍2.2.1 .NET.NET作为新一代互联软件和服务战略,将使微软现有的软件在网络时代不仅适用于传统的个人计算机,而且能够满足呈现强劲增长的新设备的需要。到底什么是.NET呢?微软总裁兼首席执行官Steve Ballmer把它定义为:.NET代表一个集合,一个环境,一个可以作为平台支持下一代Internet的可编程结构。.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。用户不需要知道这些文件放在什么地方,只需要发出请求,然后只管接收就可以了。而所有后台的复杂性是完全屏蔽起来的。.NET 是 Microsoft 的用以创建 XML Web 服务(下一代软件)平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。 .NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为您今天正在使用的 Microsoft 应用程序、工具和服务器 0,则返回true,否则返回falsestudent函数与admin函数的代码与teacher函数的代码类似,在此不做介绍。Bind()函数接受传值,执行对应的语句,主要利用DataAdapter和DataAdapter来完成。public static void Bind(GridView dg, string id, string str1, string str2) 连接并打开数据库 SqlDataAdapter sda = new SqlDataAdapter(str1, conn); DataSet ds = new DataSet(); sda.Fill(ds, str2); dg.DataSource = ds.Tablesstr2; dg.DataKeyNames = new string id ; dg.DataBind();6.2 用户登录和注册用户登录和注册是本应用程序的功能,用户登录是应用程序的入口,而且用户只有通过登录才能进入系统中。6.2.1 用户登录 用户登录由页面login.aspx实现,它的代码隐藏文件为login.aspx.cs。该页面也是整个应用程序的起始页面,用户都是从该页面登陆进入系统中的。u 界面设计为了实现用户登录功能,应用程序在该页面添加3个TextBox控件、2个Button控件、3个验证控件,它们的名称分别为TextBox1、TextBox2、TextBox3、Button1、Button2。控件TextBox1、TextBox2分别用来输入用户名称和 用户密码;控件RequireFieldValidator1、RequireFieldValidator2、 RequireFieldValidator3分别来执行用户名称和用户密码和验证码的非空验证;页面login.aspx的设计界面如图6.1所示:图6.1 登录页面u 页面初始化设置页面login.aspx为应用程序的起始页面。按F5键运行,出现如图6.2所示的出始界面。图6.2 运行后的登录页面u 用户登录功能分别在ID、密码和验证码文本框中输入用户名称、密码和验证码,然后单击登录按钮触发事件Button1_Click(object sender, System.EventArgs e),该事件实现登录功能。它调用文件App_Code中的函数public static bool teacher(string teacherId, string teacherPwd)从数据库中的oteacher表中获取教师的ID值。如果ID值为空,说明该用户为非法用户,否则添加用户的用户信息到全局变量Session中,最后跳到教师主页面。学生和管理员的验证与同学的类似,事件Button1_Click(object sender, System.EventArgs e)的程序代码如下:private void Button1_Click(object sender, System.EventArgs e) 判断验证码是否正确,如果错误则显示验证码错误,否则: 如果是学员登录则先打开数据库,执行sql语句如下: SqlCommand cmd = new SqlCommand(select count(*) from ostudent where studentid= +TextBox1.Text.Trim() + and studentpwd= + TextBox2.Text.Trim() + , conn); int i = Convert.ToInt32(cmd.ExecuteScalar(); 关闭数据库 如果i0 则将ID存入Session并跳到学生主页面。 如果是管理员,其过程同上,跳到管理员助页面。6.2.1 用户注册单击页面login.aspx中的注册超链接会跳到对应的注册(add.aspx)界面,选择学生注册,将触发学生注册(addt.aspx)事件。为了实现该页面功能添加了3个TextBox控件,3个验证控件,1个RadioButtonList控件,1个Button控件,名称分别为:TextBox1、TextBox2、TextBox3、RequiredFieldValidator1、 RequiredFieldValidator2、RequiredFieldValidator3、RadioButtonList1、Button2。单击确定按钮将触发注册事件,代码如下:protected void Button2_Click(object sender, EventArgs e) 连接并打开数据库,执行sql语句: SqlCommand cmd = new SqlCommand(select studentid from ostudent where studentid= + TextBox1.Text.Trim() + , conn); int i = Convert.ToInt32(cmd.ExecuteScalar();如果i 0,显示此ID号已存在,回到adds.aspx页面,否则执行插入语句: string str = insert into ostudent (studentid,studentname,sex,studentpwd) values( + TextBox1.Text.Trim() + , + TextBox2.Text.Trim() + , + RadioButtonList1.SelectedValue.ToString() + , + TextBox3.Text.Trim() + ); 程序运行后的界面如图6.2所示:图6.2 学生注册教师注册界面与学生注册界面类似。6.3 教师功能教师功能主要实现添加试题,试题维护,信息管理功能。添加试题中有判断题、选择题、填空题的添加,相应的试题维护中有判断题、选择题、填空题的维护,在信息管理中包括信息查看、成绩查询和修改密码。在整个页面中分为四块,头部是标题页面,左中是ifram,连接到left.htm,右中也是一个iframe,连接到teacherchangepwd.aspx,下部是链接图片,整个页面布局为,左边是导航,点击链接将链接页面放置到右边的ifram中。整体的页面设计如图6.3所示:图6.3 教师页面6.3.1 信息管理u 信息查看信息查看页面为teacherinformation,aspx,隐藏文件为:teacherinformation.aspx.cs.在页面设计中有三个TextBox,分别为TextBox1、TextBox2、TextBox3,默认的他们的enable都为false;一个RadionButtonList,默认的enable也为false;一个Button按钮,其对应的代码为取消代码,点击此按钮后,将回到teacherchangepwd.aspx页面。隐藏页面为teacherinformation.aspx.cs,在页面首次加载时会从oteacher表中读取教师基本信息,SqlDataAdapter da = new SqlDataAdapter(select * from oteacher where teacherid= + SessionteacherId.ToString() + , conn);然后填充数据集,将对应的教师信息映射到三个TextBox和RadioButtonList中。教师可以在这个页面上看到自己的信息。但是教师自己不可以删除自身的信息,只有管理员有此功能。u 修改密码页面teacherpwdchange.aspx的设计:三个TextBox,分别为TextBox1、TextBox2、TextBox3,分别用来输入旧密码、新密码、再次输入新密码,四个验证控件,分别为:RequiredFieldValidator1、RequiredFieldValidator2、RequiredFieldValidator3、CompareValidator1,分别用于TextBox1、TextBox2、TextBox3的验证,CompareValidator1用于验证两个密码是否相同。一个按钮,点击此按钮触发Button1_Click事件,用于密码的修改,首先判断输入的旧密码是否与用户登录时的ID相同,若相同将用户的密码重置,重要的Sql语句为:string str1 = update oteacher set teacherpwd= + TextBox2.Text.Trim() + where teacherid= + SessionteacherId.ToString() + ;打开数据库,执行SqlCommand,将密码重置,然后关闭数据库,并显示密码修改成功。若不相同则显示旧密码错误,光标将定位到TexBox1上,可以重新输入旧密码,进行密码的更正。u 成绩查询 成绩查询see.aspx的页面设计:一个Label,一个TextBox,一个Button按钮,一个数据库绑定控件GridView1。在TextBox1中输入要查询的学生的ID,点击查询按钮Button1将会显示要查询的学生的成绩信息。在页面首次加载时,会将数据库中所有的学生的成绩信息显示出来,调用Class1中的Bind()函数,string str = select * from oexamresult; Class1.Bind(GridView1, id, str, stuinfo);,点击查询按钮后会根据输入的学生的ID显示对应学生的成绩信息,如果TextBox1中的输入为空会提示Response.Write(alert(请输入您要查询的学生号!);否则会执行tring strsql = select * from oexamresult where studentid= + TextBox1.Text.ToString() + ; Class1.Bind(GridView1, id, strsql, stuinfo);当GridView1的页面发生变化时会执行 GridView1.PageIndex = e.NewPageIndex;GridView1_Bind();当点击删除要删除的对应学生的信息时将会执行如下代码:int ID = (int)GridView1.DataKeyse.RowIndex.Value;string strsql = delete from oexamresult where id = + ID + ;Class1.OperateData(strsql); GridView1_Bind();函数GridView1_Bind()的代码如下:public void GridView1_Bind() string str = select * from oexamresult order by id desc; Class1.Bind(GridView1, id, str, SingleChooseInfo); SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettingsdsn); conn.Open(); SqlCommand cmd = new SqlCommand(select * from oexamresult, conn); SqlDataReader sdr = cmd.ExecuteReader(); conn.Close(); 运行界面为如图6.4所示:图6.4 成绩查询6.3.2 试题添加:u 选择题添加选择题添加adds.aspx页面的设计:7个TextBox控件,五个验证控件,1个RadioButtonList控件,2个Button控件,分别为TextBoxid、txtID、TextBox1、TextBox2、TextBox3、TextBox4、TextBox5,五个验证控件分别验证试题内容,答案A,答案B,答案C,答案D不为空,Button1为确定按钮,Button2为取消按钮,点击确定按钮会将新试题添加到表oselet,执行的sql语句:string str =insert into oselect(questionid,questiontext,a,b,c,d,answer,teacherid) values( + txtID.Text.Trim() + , + TextBox1.Text.Trim() + , + TextBox2.Text.Trim() + , + TextBox3.Text.Trim() + , + TextBox4.Text.Trim() + , + TextBox5.Text.Trim() + , + RadioButtonList1.SelectedValue.ToString() + , + TextBoxid.Text.Trim() + );添加过后会显示添加成功提示信息,然后会将所有的TextBox控件置空,点击取消按钮触发Button2_Click事件,在此事件中会将所有的TextBox控件的Text置空。运行界面如图6.5:图6.5 添加选择题u 判断题添加判断题添加addj.aspx页面的设计:三个TextBox控件,分别输入教师号,题号,试题题目;一个RadioButtonList空件,用于选择正确答案,一个验证控件用于验证试题题目不为空。两个Button按钮,一个确定按钮,一个取消按钮,点击确定按钮会将新试题添加到表ojudge,执行的sql语句为:string str = insert into ojudge(questionid,questiontext,answer,teacherid) values( + txtID.Text.Trim() + , + TextBox1.Text.Trim() + , + RadioButtonList1.SelectedValue.ToString() + , + TextBoxid.Text.Trim() + );添加过后会出现添加成功的提示信息,然后将TextBox控件置空;点击取消按钮会把所有的TextBox控件置空。u 填空题添加填空题添加addi.aspx页面的设计:四个TextBox控件,分别输入教师号,题号,试题题目,正确答案;一个验证控件用于验证试题题目不为空。两个Button按钮,一个确定按钮,一个取消按钮,点击确定按钮会将新试题添加到表oinput,执行的sql语句为:string str = string str = insert into oinput(questionid,questiontext,answer,teacherid) values( + txtID.Text.Trim() + , + TextBox1.Text.Trim() + , +TextBox2.Text.Trim() + , + TextBoxid.Text.Trim() + );添加过后会出现添加成功的提示信息,然后将TextBox控件置空;点击取消按钮会把所有的TextBox控件置空。6.3.3 试题维护 u 选择题维护选择题维护mends.aspx页面设计只有一个GrridView控件,在页面首次加载的时候教师会看到所有的选择题标题,调用GridView1_Bind()函数,当点击详细信息会跳到informationselect.aspx页面,可对试题进行维护、更改,当点击删除按钮时会将此条试题信息删除,sql语句为:string strsql = delete from oselect where id = + ID + ;GridView1_Bind()函数的代码如下:public void GridView1_Bind() string strsql = select * from oselect order by id desc; Class1.Bind(GridView1, id, strsql, SingleChooseInfo); SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettingsdsn); conn.Open(); SqlCommand cmd = new SqlCommand(select * from oselect, conn); SqlDataReader sdr = cmd.ExecuteReader(); conn.Close(); informationselect.aspx页面的设计:6个TextBox控件,分别用来存放试题编号、试题内容、选项A、选项B、选项C、选项D信息,1个RadioButtonList控件,用来存放正确选项,两个Button按钮,Button1为保存,Button
展开阅读全文