1、在线考试网 考生成绩管理与考试试题添加系 部: 信息工程系 学生姓名: 专业班级: 学 号: 指导教师: 2009 年 10 月 28 日13目录一、引言1(一)课题的开发背景1(二)指导思想与技术路线1二、系统设计相关介绍2(一)ASP.NET技术介绍2(二)ADO.NET访问数据库的介绍2三、需求分析2(一)主要工作内容及关键问题2(二)应具备的基本功能2四、系统的概要设计2(一)系统的功能设计21系统的功能结构22系统的功能特点3(二)系统的模块设计31考生成绩管理32考试的试题添加3五、系统的详细设计及实现4(一)数据库中的数据表设计41数据表Score(成绩表):42数据表Quest
2、ion(试题表):5(二)成绩管理的界面设计及代码61考生查询成绩界面62后台管理员查询成绩界面73成绩管理界面9(三)考试试题添加界面设计及代码10六、小结11七、谢辞12八、参考文献12九、附录13在线考试网考生成绩管理与考试试题添加摘要:在线考试系统本着减轻教师工作负担、提高工作效率、优化学生考试的流程,增强参加考试学生的身份识别,比传统的考试模式节省人力财力和时间。本系统主要实现的功能有:用户注册、时间控制、自动判卷、成绩查询、试题录入、修改题库、用户管理、科目管理、管理员管理、分数管理等。系统选用的开发软件是ASP.NET,后台数据库为SQL Sever。本系统的开发采用结构化设计思
3、想。本文主要介绍了考试系统的开发初衷和背景,系统的开发工具,结构化开发的具体步骤,其中包括数据流程图,功能结构图等必要的图形说明。关键字:ASP.NETSQL SeverC#在线考试一、引言(一)课题的开发背景随着计算机技术的迅猛发展,学校教学和管理的信息化发展也有长足的进步,这就要求各个环节都均衡发展,从软硬件双方面把学校建设成一流的信息管理、教育教学的平台。本文设计开发的考试管理系统也是其中重要的一个方面。传统的考试由于涉及到组织命题、试卷印刷、考场安排、组织阅卷等诸多环节,考试时间周期长、效率低下。应用现代信息技术构架的网络在线考试系统展现出了越来越多的优越性。网络在线考试系统旨在探索一
4、种以互联网为基础的考试模式。通过这一新的考试模式,为考试创造一种新的考试环境,提高考试工作效率和标准化水平,使考务管理突破时空限制使考生可以随时随地通过网络完成考试。(二)指导思想与技术路线一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,从而发现自己的不足,使得学习效率得到很大提高。在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网上自动完成。目前,应用软件运行的模式主要有二类:Client/Server模式,Browser/Server模式。C/S模式主要的缺点是维护、升级较麻烦;B/S的客户端是一个标准的浏览器,服务器端是Web Server ,它的主要优点
5、是便于扩充应用、升级维护简便。所以说,用B/S模式来设计考试系统比较合适,服务器端我们采用SQL Sever数据库系统和ASP.NET组件来构成考试的应用服务系统;客户端采用浏览器来完成考试的全过程,同时可进行远程系统维护和管理。本系统运用方便、操作简单,效率很高。现阶段虽只实现了试卷的客观题部分,但已具有用户注册、多用户同时在线考试、时间控制、自动判卷,试题录入、修改题库、用户管理、科目管理、管理员管理、分数管理等重要功能,也就是说实现了真正的无纸化考试,满足任何授权的考生随时随地考试并迅速获得成绩,同时也大大减轻了教师出题、印题和判卷等繁重的工作。二、系统设计相关介绍(一)ASP.NET技
6、术介绍ASP.NET被描述为一门技术而不是一种语言,这一点很重要。该技术通过编程语言访问。本系统选用的语言是C#,即我们将利用C#创建Web页面,而利用ASP.NET来驱动它。(二)ADO.NET访问数据库的介绍与数据库相连,ADO.NET提供了如下3种方式:通过ODBC相连;通过OLEDB相连;直接与SQL Server相连。3种方式由于应用层次的差异,使得效率由低到高,独立性由高到低。对于相连数据库的数据处理,也有2种方式,即一种是通过DataSet来隔离异构的数据源,另一种是以流方式从数据源读取(DataReader方式)。三、需求分析(一)主要工作内容及关键问题考生成绩管理:在这一模块
7、有前台和后台两部分。在前台考生查询成绩时,最主要的就是考生考完试后计算成绩的代码怎么编写。当计算机把考生成绩计算出来时要自动存入数据库中的成绩数据表。添加考试题目:这一模块主要是后台。对考试试题添加记录时,在记录进入试题表时,要能自动修改或添加与其有关的数据库中的其它数据表。(二)应具备的基本功能考生记录成绩管理:考生考完以后,管理员应该能对所有记录进行查询,并应该可以删除指定。考生可以查看任何一次的考试成绩。添加考试题目:主要是管理员在后台对于考试题目的添加。四、系统的概要设计系统的概要设计本文主要分为功能设计和模块设计。(一)系统的功能设计1系统的功能结构 见图1用户注册用户登录权限判断普
8、通用户在线考试自动交卷系统算分查询成绩管理员用户信息管理试题的相关操作(添加,删除等)成绩的管理(查询,删除,修改等)图12系统的功能特点系统的功能所具备的特点:操作简单方便、界面简洁美观;具有严肃性和公正性,系统提供自动交卷功能;提供考试时间倒计时功能;系统自动交卷阅卷,保证成绩真实准确;考生可随时查看考试成绩;对考生注册信息进行管理。(二)系统的模块设计由于我在整个系统中所负责的主要模块是:考生成绩管理和考试试题添加。所以下文就着重介绍这两块内容。1考生成绩管理该模块负责考生可以在任何时候只要输入注册号和密码就可以对所有科目的成绩查询,管理员可以对考生成绩查询、增加与删除等操作。具体模块设
9、计见图2:2考试的试题添加在该模块中管理员录入一条试题所需要的内容,包含所属专业、所属科目、题目、选项、答案等,这些信息将被写入数据库中保存。本模块的具体设计见图3:考生成绩管理前台后台考生对自己的成绩查询管理员查询考生成绩管理员对成绩的增加与删除图2考生试题添加后台:设计添加界面管理员录入一条记录,单击添加按钮将记录保存到数据表Question中图3五、系统的详细设计及实现(一)数据库中的数据表设计1数据表Score(成绩表):Score表用于存放考生的成绩,当考完试后,系统自动计算分数之后存入数据表Score中,表的具体介绍如表1 Score表1 Score字段名称类型备注id自动编号常整
10、型,递增,主键,不允许空UserIDvarchar长度30,外键,不允许空(续上表)字段名称类型备注UserNamevarchar长度50,不允许空Majorvarchar长度30,不允许空SubjectVarchar长度30,不允许空Papervarchar长度10,不允许空Scorevarchar长度50,不允许空各字段的说明:(1) id是成绩的id号,用来唯一标志该成绩,把它设为主键,类型为自动编号。(2) UserID是考生的id号,是考生的唯一标识,是该表的外键。(3) UserName是考生的姓名。(4) Major用来表示该成绩是属于哪个专业的。(5) Subject用来表示该
11、成绩是哪个科目。(6) Paper表示考生考的是哪套试题(有A套题和B套题)。(7) Score用来存放分数的。2数据表Question(试题表):该表用于存放试题信息,当管理员添加条试题则存放到此表中。如表2 Question表2 Question字段名称类型备注MajorIDvarchar长度30,不允许空SubIDvarchar长度30,不允许空PaperIDvarchar长度30,不允许空QuestionIDvarchar长度10,主键,不允许空Questionnvarchar长度200,不允许空AnswerAnvarchar长度200,不允许空AnswerBnvarchar长度200
12、,不允许空AnswerCnvarchar长度200,不允许空AnswerDnvarchar长度200,不允许空RightKeyvarchar长度10,不允许空各字段的说明:(1) MajorID是表示该试题属于哪个专业。(2) SubID表示该试题属于哪个科目。(3) PaperID表示该试题属于哪套试题。(4) QuestionID是该试题的编号,唯一标识该试题,设为主键。(5) Question表示试题的题目。(6) AnswerA、AnswerB、AnswerC、AnswerD分别表示,A、B、C、D的答案内容。(7) RightKey表示题目的正确答案。(二)成绩管理的界面设计及代码1
13、考生查询成绩界面前台的考生查询成绩界面设计如图4图4考生只要输入用户ID和姓名,然后单击查询,所有的成绩信息将会显示在下面的GridView的控件中。实现的代码如下:/本段是设计界面源里的代码,下面是GridView的样式及字段的编辑并绑定到下面的数据源SqlDataSource1。 /定义数据源SqlDataSource1,并建立数据源内容。当建立数据源内容时要注意的是,这是个可编辑的GridView控件,所以比一般的数据源内容多一下面的一些语句。一般情况下只有SelectCommand,而现在多了DeleteCommand、InsertCommand、UpdateCommand。 asp:
14、SqlDataSource ID=SqlDataSource1 runat=server ConnectionString= DeleteCommand=DELETE FROM Score WHERE id = id InsertCommand=INSERT INTO Score (UserID, UserName, Major, Subject, Paper, Score) VALUES (UserID, UserName, Major, Subject, Paper, Score) SelectCommand=SELECT * FROM Score UpdateCommand=UPDATE
15、 Score SET UserID = UserID, UserName = UserName, Major = Major, Subject = Subject, Paper = Paper, Score = Score WHERE id = id/在C#里面的代码,当单击查询按钮时使上面的GridView控件显示在页面上protected void Button1_Click(object sender, EventArgs e) GridView1.Visible = true; 2后台管理员查询成绩界面后台管理员查询成绩界面设计见下图5在系统的后台界面,管理员只要输入考生的ID号,点击
16、查询按钮之后即可查询学生的考试成绩。具体实现的代码如下:图5/本段是设计界面源里的代码,下面是GridView的样式设计并绑定到下面的数据源SqlDataSource1。 /定义数据源SqlDataSource1,并建立数据源内容。 asp:SqlDataSource ID=SqlDataSource1 runat=server ConnectionString= SelectCommand=SELECT * FROM Score WHERE (UserID = UserID)/在C#里面的代码,当单击查询按钮时使上面的GridView控件显示在页面上protected void Button
17、1_Click(object sender, EventArgs e) GridView1.Visible = true;3成绩管理界面管理员成绩增加与删除界面设计见图6图6在这个页面,管理员可以对任何一位考生的任何一门考试的成绩进行添加与删除的操作。代码如下:/本段是设计界面源里的代码,下面是GridView的样式设计并绑定到下面的数据源SqlDataSource1。 /定义数据源SqlDataSource1,并建立数据源内容。 asp:SqlDataSource ID=SqlDataSource1 runat=server ConnectionString= SelectCommand=S
18、ELECT * FROM Score WHERE (UserID = UserID) AND (UserName = UserName)/在C#里面的代码,当登录这个界面时所要执行的代码。protected void Page_Load(object sender, EventArgs e) this.Button2.Attributes.Add(onclick, window.close(););/当单击查询按钮时使上面的GridView控件显示在页面上protected void Button1_Click(object sender, EventArgs e) GridView1.Vis
19、ible = true; (三)考试试题添加界面设计及代码试题添加界面后台试题添加界面设计如图7图7在这个页面,管理员填写所要添加试题的信息,然后点击添加按钮。则所添加的内容会保存到相应的数据表中。以下为代码的实现:protected void Button1_Click(object sender, EventArgs e)/DB为公共类,定义连接 DB cn1 = new DB(); SqlConnection con= cn1.con(); con.Open(); /本段代码是向数据表中添加记录 SqlCommand cmd = new SqlCommand(); cmd.Command
20、Text = insert into Question values( + DropDownList1.SelectedValue.ToString() + , + DropDownList2.SelectedValue.ToString() + , + DropDownList3.SelectedValue.ToString() + , + TextBox4.Text.Trim() + , + TextBox5.Text.Trim() + , + TextBoxa.Text.Trim() + , + TextBoxb.Text.Trim() + , + TextBoxc.Text.Trim(
21、) + , + TextBoxd.Text.Trim() + , + TextBox10.Text.Trim() + , + TextBox11.Text.Trim() + ); cmd.Connection = con;/定义整型变量num,判断是否执行了上面的添加代码,当num大于等于1表示执行了添加代码则显示提示框“添加题目成功!”,否则不成功。 int num =cmd.ExecuteNonQuery(); if (num = 1) Response.Write(alert(添加题目成功!);); /添加完成之后,把文本框内容清空,以便第二次添加。 TextBox4.Text = ;
22、TextBox5.Text = ; TextBoxa.Text = ; TextBoxb.Text = ; TextBoxc.Text = ; TextBoxd.Text = ; TextBox10.Text = ; TextBox11.Text = ; 六、小结在完成毕业设计之际,对为时一个月的毕业设计做一下自我总结。毕业设计主要是把大学这两年多来所学的可以用到的知识结合起来做一个实际的可用的作品来。我所选的课题是在线考试系统,是一个动态网站系统。指导老师按排的是由四个学生组成一个小组来做整个系统,每个成员负责一个大模块,而我所负责的是考生成绩管理模块和考试试题添加的模块。在做设计之初首先要
23、小组成员在一起讨论一下整个系统的制作流程,数据要怎么设计,变量、数据表、公共类要统一定义。在大家都清晰思路之后,便开始着手做。我第一次做的相关文档是开题报告,通过指导老师的修改完成报告后,我就更清晰我的思路了。对之后的作品制作也有一定的帮助。之后的任务就是完成数据库和网站首页的设计除此之外还要完成另外一份文档就是需求分析。下面就开始分工做系统了。在我所负责的模块中,考生成绩管理可以分成两部分前台和后台,在前台考生不但能在考完试之后能够即时的查到自己的成绩,更能在任何时候都能登录网站查询自己所有的考试成绩。在后台,管理员也能通过输入考生的id号查询考生的所有成绩,并且对考生成绩的添加与删除等管理
24、。利用GridView控件进行编辑。对于试题的添加,用控件TextBox来填写所需添加试题的信息。单击添加按钮,将把信息存入数据库中的相关数据表,这个功能就要通过编代码来实现,由于这部分的代码比较简单并且我们对此也很熟悉,所以做起来没有什么困难。除了我们各自所负责的模块还有一些公共的需要进行讨论,这部分就有比较困难的地方,就是考试的界面布局、计时并且时间到后能自动交卷和系统即时计算分数。最后这个界面的布局采用GridView编辑模板功能,在模板里添加Label标签来放试题的题目内容和答案内容,最后就形成了现在我们系统的这个考试界面。我们还采用在源代码里的头()里加入一段JavaScript代码
25、来实现系统的倒计时功能,当还剩五分钟的时候系统会自动提示考生的剩余时间,最后时间到的时候,将会自动调用提交按钮的函数进行试卷的自动提交,之后再计算分数并存入相应的数据表中。至于计算分数这部分功能代码,是参考了别人的编程思想后形成了自己的代码。当然这部分做的不是很顺利,中间也出现了一些问题,不过在老师的帮助下也都一一解决了。通过这一段时期的设计,我也学到了很多东西,包括很多专业方面的知识,以及上课时没有学过的知识。同时也我意识到了一点,就是不能只靠书本上和课堂上老师讲的知识,还要多研究书本以外更广更深的知识。毕竟以后出去工作了遇到的问题会更多,只有通过自己平时不断的学习和积累才能解决。当然做网站
26、是要通过整个小组的合作,不是单单靠一个人就能完成的,所以具有良好的团队合作精神也是非常重要的,不能太自我,要多听取其他成员的建议。正所谓,“三人行,必有我师焉”。七、谢辞我首先要感谢我的指导老师老师,在我们做毕业设计期间, 老师给了我们很大的帮助。在设计之初,老师帮我们理清网站的设计思路,介绍一些好的参考资料给我们。在做开题报告,毕业论文等一些文档的时候,仔细给我们讲注意事项,并帮我们修改。所以在老师的全力帮助下,我们能够顺利完成此次设计。八、参考文献1王惠刚,王挺ASP.NET实用培训教程M北京:海洋出版社,2003.72眭碧霞,李春华,张玮ASP.NET程序设计与开发M西安:西安电子科技大学出版社2008.93万科,覃剑Visual C#.NET程序设计基础与上机指导M北京:清华大学出版社2007.34刘桂林,谢尧SQL Sever数据库应用技术M北京:中国计划出版社2007.8九、附录源程序见光盘