在线考试系统毕业论文(7)_第1页
在线考试系统毕业论文(7)_第2页
在线考试系统毕业论文(7)_第3页
在线考试系统毕业论文(7)_第4页
在线考试系统毕业论文(7)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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);待添加的隐藏文字内容1 string stroption = convert.tostring(dtoptions.

21、rowsj1); listitem 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.te

22、xt = 单选题:; 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 littit

23、le = 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(dtoptions.rows.count); radiobuttonl

24、ist rbl = new 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.i

25、tems.add(li); 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 = (n

26、ew 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 literal(); littitle.text = + convert.tostring(dtques.rowsqnum - qnumstart0) + 、 + server.

27、htmlencode(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+)

28、 string strabc = 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 = con

29、vert.toint32(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); /该题型

30、的题目的开始序号 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(convert.tostring(dtques.rowsqnum - qnumstart2) + ; string stranswe

31、r = (new examonline.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, eventa

32、rgs e) int 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(examonlin

33、e.examenum.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 si

34、nglenum = dtques1.rows.count + dtques2.rows.count; /取得判断题和单选题的题量 int multinum = dtques3.rows.count; /取得多选题的题量 int othernum = dtques4.rows.count; /取得主观题的题量 /- try if (singlenum 0) /添加判断题和单选题 for (int i = 1; i 0) /添加多选题 for (int i = singlenum + 1; i 0) /添加主观题 for (int i = singlenum + multinum + 1; i =

35、 singlenum + multinum + othernum; i+) textbox tb = (textbox)panelcontext.findcontrol(tb + i.tostring(); string answer = tb.text.tostring(); int qid = (new examonline.exam().getquesid(paperid, i); string strexec = insert into paper_done(paper_id,stu_id,qid,q_num,answer) ; strexec += values( + paperid

36、 + , + userid + , + qid + , + i + , + answer + ); examonline.exam exam = new examonline.exam(); exam.exec(strexec); catch(exception ee) examonline.common.showmess(ee.message); finally string strend = update paper_students set stu_state=1 where paper_id= + hidpaperid.value + and stu_id= +hiduserid.value +; (new examonline.exam().exec(strend); response.redirect(end.htm); /- (三)在线练习模块1、自主选择试题学生在登陆窗口勾选【练习模式】并输入正确的学号和密

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论