在线考试系统毕业论文 (2).doc

上传人:来看看 文档编号:3979680 上传时间:2019-10-11 格式:DOC 页数:25 大小:679.03KB
返回 下载 相关 举报
在线考试系统毕业论文 (2).doc_第1页
第1页 / 共25页
在线考试系统毕业论文 (2).doc_第2页
第2页 / 共25页
在线考试系统毕业论文 (2).doc_第3页
第3页 / 共25页
在线考试系统毕业论文 (2).doc_第4页
第4页 / 共25页
在线考试系统毕业论文 (2).doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《在线考试系统毕业论文 (2).doc》由会员分享,可在线阅读,更多相关《在线考试系统毕业论文 (2).doc(25页珍藏版)》请在三一文库上搜索。

1、目录一、概述1(一)项目开发背景1(二)系统开发目的2二、需求分析2(一)系统流程分析2(二)系统用例图3(三)考生在线考试活动图3三、数据库设计4(一)ER图4(二)数据表5四、系统主要功能模块设计与实现7(一)登录界面7(二)在线考试模块9(三)在线练习模块16(四)密码修改模块22五、小结23参考文献24在线考试系统(计算机应用技术专业08(1)班,陈建) 摘要:在线考试系统是借助计算机、互联网等先进技术为代表的信息手段,改变以往传统考试方式,采用无纸化考试方式。相比传统的考试方式,基于web的在线考试系统的主要好处是一方面可以动态地管理各种考试信息,只要准备好足够大的题库,就可以按照要

2、求自动生成各种试卷;另一方面,考试时间灵活, 可以在规定的时间段内的任意时间参加考试;另外计算机化的考试的最大特点是阅卷快,系统可以在考试结束时当场给出客观题考试成绩,计算机阅卷给了考生最大的公平感。本论文主要阐述一个功能相对简单的在线考试系统的后台操作过程及一些关键技术。该系统用户信息主要由用户注册自行输入,考试时考生输入学号,核对正确后进入考生界面,考生界面主要有考生基本信息、修改密码、开始答题、查看成绩、查看答题等组成,关键实现了管理员对考生答题的控制,一方面为试题生成的控制,另一方面为答题的控制及是否可以查看试题答案。管理员进入管理员界面,管理员界面主要由生成试卷、查看试卷、考试控制、

3、查看成绩及题库维护等模块组成,在此界面下,完成对试题库的维护,及当有考试任务时,自动生成试题、答题控制、试题参考答案控制等功能,较完整地实现了在线考试的功能。关键词:在线考试系统;模拟考试;登录;自动组卷一、概述(一)项目开发背景在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。目前的一个发展趋势是采用大规模试题库的计算机网络考试模式 随着计算机网络在生产生活、科技教育中的

4、普及,传统试的考试出卷、答卷方式以及学绩管理正发生着巨大的变革,因此,如何使考试过程变得方便、高效、快捷、公正,是现代教育的一个重要课题。在线考试系统是一个没有固定时间、固定地点、可以让学生随时随地检测对知识的掌握情况的系统,学生登录到该页面,注册账号成为会员,对于已有账号的同学,在输入密码之后就可以成功登录。可以自由选择各专业、各学科的考试。每位考生的信息,每次考核的结果,系统都会有记录,并且可供考生查询。有利于考生制定适合自己的学习计划和学习目标。在线考试的管理员,也可以凭管理员账号登录该系统,管理员可以对考生信息进行管理,也可以对试题库进行管理,及时更新试题库。(二)系统开发目的无纸化的

5、考试形式有着其科学、及时、准确、公平等优点,具有传统考试形式无法替代和比拟的优势:传统的考试形式的弊端。传统的考试方法“一纸定终身”,存在重知识、轻能力的先天不足,成了一部分“高分低能”学生的摇篮;对另一部分学生,则因考试压力过大而罹患“考试恐惧症”,或者心存侥幸,投机取巧等等;信息技术为载体的网络考试的优点 优点有:保密性高;考试时间灵活;提高了学校的教学水平;网络考试系统不只是考试工具,更是学习、分析工具。 网上考试的最终目的不是得到分数,而是让学生通过测验知道自己的不足,让老师知道下一步的讲授重点。所以试题属性、答案解析必不可少。而且考试系统应允许老师设置:是否允许学生看试题提示、答题后

6、是否允许学生得到答案解析、考试是否计时、是否计分、是否允许学生得到个人分析结果、班级分析结果等。二、需求分析(一)系统流程分析根据开发在线考试系统的需求分析,本系统只设计了一种两种用户,管理员用户和普通登录用户。系统要求有管理员用户,我们设定系统管理员,当系统管理员使用账号登录后,需要查看有关考试的一系列的信息,管理员可以通过系统导航菜单进入学生信息管理界面、试题库管理。进入学生信息系统可以查看学生的专业信息、考试成绩信息;进入试题库,可以查看当前所用的试题库,以及更新试题库。(二)系统用例图系统用例图如图2-1 所示。图2-1 系统用例图(三)考生在线考试活动图考生在线考试活动图如图2-2

7、所示:图 2-2 考生在线考试活动图三、数据库设计(一)ER图在线考试系统信息实体图如图3-1所示:图3-1 在线考试系统信息实体E-R图(二)数据表根据系统的需求和分析,系统需要设计的数据库表有用户表、学生科目表、学生信息表、试卷类型表、试题答案表、试题表、试卷表等,见表3-1至3-7。表3-1 users(用户表)字段名称数据类型允许空主外键备注IdVarchar(20)主键upwdVarchar(20)urighttinyint非空uroomvarchar(20)unamevarchar(20)表3-2 students-course(学生科目表)字段名称数据类型允许空主外键备注Stu-

8、idVarchar(20)非空主键cidVarchar(20)非空表3-3 student(学生信息表)字段名称数据类型允许空主外键备注Stu-idVarchar(20)主键pwdVarchar(20)非空nameVchar(8)非空sexVarchar(2)非空GradeVarchar(4)非空majorVarchar(30)classVarchar(4)非空表3-4 testpaper-list(试卷类型表)字段名称数据类型允许空主外键备注Paper-idint主键Paper-nameVarchar(50)Paper-timedatetime非空cidVarchartestTinyintP

9、aper-stylesVarchar(1)非空Testwaytinyint非空audittinyint非空auditteacherVarchar(20)非空Endtimedatetime非空表3-5 answer(试题答案表)字段名称数据类型允许空主外键备注aidInt主键qidIntoptionsnameVarchar(1)非空optionsVarchar(300)answerint非空表3-6 question(试题表)字段名称数据类型允许空主外键备注qidint主键contentTextcidVarchar(20)sidVarchar(2)chapterTinyintpointVarch

10、ar(50)非空qlevelIntAdd-timeDatetimeAdd-userVarchar(20)auditTinyintauditteacherVarchar(20)非空表3-7 testpaper(试卷表)字段名称数据类型允许空主外键备注Paper-idint主键qidint外键q-numint非空qscoreint非空四、系统主要功能模块设计与实现(一)登录界面当管理员用户输入用户名、密码时,系统自动将输入的信息和相关数据表中的内容进行比较,如果该用户输入的内容和数据表中的内容相符,则通过验证,此次登录成功否则登录失败。用户只有成功登录系统后才能进行一系列的操作,如图4-1所示。图

11、4-1 在线考试系统登录界面其运行代码如下:public partial class UserControl_uc_login : System.Web.UI.UserControl protected void Page_Load(object sender, EventArgs e) TextBox1.Focus(); protected void Button1_Click(object sender, EventArgs e) string userID = TextBox1.Text.ToString(); string userPWD = TextBox2.Text.ToStrin

12、g(); if ( (userID = ) | (userPWD = ) ) ExamOnline.Common.ShowMess(出错可能原因:1.用户名不能为空。2.密码不能为空。); else if (cbExercise.Checked = false) int loginResult = (new ExamOnline.Login().checkUser(ref userID, ref userPWD); if (loginResult = 2) SessionuserID = userID; SessioncheckUser = exam; Response.Redirect(ex

13、amlogin.aspx); else if (loginResult = 0) ExamOnline.Common.ShowMess(出错可能原因:1.用户名错误。2.密码错误。); else if (loginResult = 1) ExamOnline.Common.ShowMess(出错可能原因:该时段内没有考试!); else if (loginResult = 3) ExamOnline.Common.ShowMess(出错可能原因:1.你本学期无该课程的考试。2.你已经考过。); else if (loginResult = 4) ExamOnline.Common.ShowMe

14、ss(出错可能原因:1.你迟到规定的时间以上。2.考试未开始。); else if(cbExercise.Checked = true) bool ifAllow = (new ExamOnline.Login().checkPWD(ref userID, ref userPWD); if (ifAllow = true) SessioncheckUser = exercise; Response.Redirect(exerciselogin.aspx); else ExamOnline.Common.ShowMess(出错可能原因:1.用户名错误。2.密码错误。); (二)在线考试模块 学生

15、在正确的时间段内用正确的学号密码登陆后进入在线考试,登陆后考试页面如图4-2所示。图4-2 在线考试界面添加的代码:public partial class Students_examonline : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) HttpContext.Current.Application.Remove(EndTime); string strCheck = exam; if (SessioncheckUser.ToString() != strCheck.ToString()

16、 Response.Redirect(login.aspx); lblExamTitle.Text = (new ExamOnline.Exam().getCurrentPageTitle(); lblStuInfo.Text = (new ExamOnline.Exam().getCurrentStudMessage(SessionuserID.ToString(); int paperID = (new ExamOnline.Exam().getCurrentPaperID(); hidPaperID.Value = Convert.ToString(paperID); hidUserID

17、.Value = Convert.ToString(SessionuserID); DataTable dtStyles = (new ExamOnline.Exam().getStyles(paperID); if (dtStyles.Rows.Count 0) for (int i = 0; i dtStyles.Rows.Count; i+) int styles = Convert.ToInt32(dtStyles.Rowsi0); if (styles =Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesJudge) Label l

18、blStyles = new Label(); lblStyles.Text = 判断题:; lblStyles.Font.Bold = true; panelContext.Controls.Add(lblStyles); DataTable dtQues = (new ExamOnline.Exam().getQues(paperID, styles); int qnumStart = Convert.ToInt32(dtQues.Rows00); int qnumAll = dtQues.Rows.Count; for (int qnum = qnumStart; qnum qnumSt

19、art + qnumAll; qnum+) Literal litTitle = new Literal(); litTitle.Text = + Convert.ToString(dtQues.Rowsqnum - qnumStart0) + 、 + Server.HtmlEncode(Convert.ToString(dtQues.Rowsqnum - qnumStart2) + ; DataTable dtOptions = (new ExamOnline.Exam().getOptions(paperID, qnum); int optionsAll = Convert.ToInt32

20、(dtOptions.Rows.Count); RadioButtonList rbl = new RadioButtonList(); rbl.RepeatDirection = RepeatDirection.Horizontal; rbl.ID = rbl + qnum.ToString(); for (int j = 0; j = optionsAll - 1; j+) string strABC = Convert.ToString(dtOptions.Rowsj0); string strOption = Convert.ToString(dtOptions.Rowsj1); Li

21、stItem li = new ListItem(); li.Value = strABC; li.Text = strABC + 、 + strOption; rbl.Items.Add(li); panelContext.Controls.Add(litTitle); panelContext.Controls.Add(rbl); else if (styles = Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesSingle) Label lblStyles = new Label(); lblStyles.Text = 单选题:;

22、lblStyles.Font.Bold = true; panelContext.Controls.Add(lblStyles); DataTable dtQues = (new ExamOnline.Exam().getQues(paperID, styles); int qnumStart = Convert.ToInt32(dtQues.Rows00); int qnumAll = dtQues.Rows.Count; for (int qnum = qnumStart; qnum qnumStart + qnumAll; qnum+) Literal litTitle = new Li

23、teral(); litTitle.Text = + Convert.ToString(dtQues.Rowsqnum - qnumStart0) + 、 + Server.HtmlEncode(Convert.ToString(dtQues.Rowsqnum - qnumStart2) + ; DataTable dtOptions = (new ExamOnline.Exam().getOptions(paperID, qnum); int optionsAll = Convert.ToInt32(dtOptions.Rows.Count); RadioButtonList rbl = n

24、ew RadioButtonList(); rbl.ID = rbl + qnum.ToString(); for (int j = 0; j = optionsAll - 1; j+) string strABC = Convert.ToString(dtOptions.Rowsj0); string strOption = Convert.ToString(dtOptions.Rowsj1); ListItem li = new ListItem(); li.Value = strABC; li.Text = strABC + 、 + strOption; rbl.Items.Add(li

25、); panelContext.Controls.Add(litTitle); panelContext.Controls.Add(rbl); else if (styles = Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesMulti) Label lblStyles = new Label(); lblStyles.Text = 多选题:; lblStyles.Font.Bold = true; panelContext.Controls.Add(lblStyles); DataTable dtQues = (new ExamOnli

26、ne.Exam().getQues(paperID, styles); int qnumStart = Convert.ToInt32(dtQues.Rows00); int qnumAll = dtQues.Rows.Count; for (int qnum = qnumStart; qnum qnumStart + qnumAll; qnum+) Literal litTitle = new Literal(); litTitle.Text = + Convert.ToString(dtQues.Rowsqnum - qnumStart0) + 、 + Server.HtmlEncode(

27、Convert.ToString(dtQues.Rowsqnum - qnumStart2) + ; DataTable dtOptions = (new ExamOnline.Exam().getOptions(paperID, qnum); int optionsAll = Convert.ToInt32(dtOptions.Rows.Count); CheckBoxList cbl = new CheckBoxList(); cbl.ID = cbl + qnum.ToString(); for (int j = 0; j = optionsAll - 1; j+) string str

28、ABC = Convert.ToString(dtOptions.Rowsj0); string strOption = Convert.ToString(dtOptions.Rowsj1); ListItem li = new ListItem(); li.Value = strABC; li.Text = strABC + 、 + strOption; cbl.Items.Add(li); panelContext.Controls.Add(litTitle); panelContext.Controls.Add(cbl); else if (styles = Convert.ToInt3

29、2(ExamOnline.examEnum.quesStyles.quesOther) /主观题 Label lblStyles = new Label(); lblStyles.Text = 主观题:; lblStyles.Font.Bold = true; panelContext.Controls.Add(lblStyles); DataTable dtQues = (new ExamOnline.Exam().getQues(paperID, styles); int qnumStart = Convert.ToInt32(dtQues.Rows00); /该题型的题目的开始序号 in

30、t qnumAll = dtQues.Rows.Count; /题型的题目总量 for (int qnum = qnumStart; qnum qnumStart + qnumAll; qnum+) Literal litTitle = new Literal(); litTitle.Text = + Convert.ToString(dtQues.Rowsqnum - qnumStart0) + 、 + Server.HtmlEncode(Convert.ToString(dtQues.Rowsqnum - qnumStart2) + ; string strAnswer = (new Ex

31、amOnline.Exam().getAnswer(paperID, qnum); TextBox tb = new TextBox(); tb.TextMode = TextBoxMode.MultiLine; tb.Width = 600; tb.Height = 80; tb.ID = tb + qnum.ToString(); panelContext.Controls.Add(litTitle); panelContext.Controls.Add(tb); protected void btnSubmit_Click(object sender, EventArgs e) int

32、paperID = Convert.ToInt32(hidPaperID.Value); string userID = hidUserID.Value; DataTable dtQues1 = (new ExamOnline.Exam().getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesJudge); /取得判断题 DataTable dtQues2 = (new ExamOnline.Exam().getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.

33、quesStyles.quesSingle); /取得单选题 DataTable dtQues3 = (new ExamOnline.Exam().getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesMulti); /取得多选题 DataTable dtQues4 = (new ExamOnline.Exam().getQues(paperID, Convert.ToInt32(ExamOnline.examEnum.quesStyles.quesOther); /取得主观题 int SingleNum = dtQues1.Rows.Count + dtQues2.Rows.Coun

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1