学生在线考试系统──题库管理和学生信息管理子功能设计与实现_第1页
学生在线考试系统──题库管理和学生信息管理子功能设计与实现_第2页
学生在线考试系统──题库管理和学生信息管理子功能设计与实现_第3页
学生在线考试系统──题库管理和学生信息管理子功能设计与实现_第4页
学生在线考试系统──题库管理和学生信息管理子功能设计与实现_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

页)学生在线考试系统──题库管理和学生信息管理子功能设计与实现摘要:近年来,随着互联网技术的迅速发展,为了更好的实现考试的高效性,客观性与公正性,基于WEB的在线考试系统得到了越来越广泛的关注与研究。本文分析了基于WEB在线考试系统的设计与实现技术,提出了本系统的总体结构设计和主要模块的功能实现。本系统分为三个子系统:管理员子系统,教师子系统,学生子系统。系统实现时采用的工具主要是SSH,利用了B/S三层架构,使用的数据库是mysql,以Windows7作为操作系统,以tomcat作为web服务器。关键词:在线考试;B/S模式;管理Abstract:Inrecentyears,withtherapiddevelopmentofInternettechnology,Inordertobetterachievetheexamofhighefficiency,objectivityandimpartiality,oftheonlineexaminationsystembasedonWEBgotthemoreandmorewideattentionandresearch.ThispaperbasedontheanalysisofWEBonlineexaminationsystemdesignandimplementationtechnology,putsforwardtheoverallstructuredesignofthesystemandthefunctionofmainmodulerealization.Thissystemisdividedintothreesubsystems:theadministratorsubsystem,teachersubsystem,studentsubsystem.ThesystemusedisthemaintoolofSSH,usingtheB/Sthreelayerarchitecture,databaseismysql,withWindows7astheoperatingsystem,usingTomcatasthewebserver.Keywords:Theonlineexam;B/Smodel;Manage第1章引言1.1设计背景在科学技术飞速发展的21世纪随着网络技术的发展,现在很多大学院校及科研机构以及企事业单位都已经开设了远程教育,通过计算机网络来实现异地教学和培训。它的客户端的配置极为简单,使考试不受地理位置的局限。1.2设计意义在传统考试模式的考试中,组织一次传统考试一般要经过五个步骤,即人工出卷、考生考试、人工阅卷、成绩统计和试卷分析。这一过程烦琐而低效。与传统的考试相比,网络化考试系统的优势主要体现在如下几个方面: (l)保密性强在传统考试中,通常下发试卷等环节需要较长的时间,接触的人员多,给保密带来一定的困难。而在线网络考试系统则采用试题库方式来提供试题来源,试题库可指定专人负责管理。从而增强保密性。(2)客观性强采用传统考试时,由于出卷、印刷等问题,影响了测试的客观性。而网上在线考试试题抽取面大,并且生成多套试卷,可基本反映考生的实际水平,防止突击复习或猜题、作弊得高分现象,从而保证考试的客观准确性。(3)迅速准确,公平公正对于标准化试题而言,网上在想考试系统可自动评分,迅速准确,无任何人为因素,从而避免人为误差及人情分等问题,保证考试的公平公正。(4)考试成本降低,考务管理效率提高采用网络考试方式可以把教育者从繁重的考务管理工作中解放出来,而把精力重点放在试题库的精心组织和维护上,不仅可以提高测试水平,也可以节约人力、物力、财力从而降低考试成本。1.3设计内容及成果本系统要求实现在线考试系统的基本功能,从试题管理,出卷、评卷、成绩分析,到学生查询考试成绩,均可由系统自动完成。在本论文中,介绍在线考试系统的管理模块及实现方法,设计了在线考试系统中题库管理及学生信息管理等。1.4本章小结本章主要介绍了基于WEB的在线考试系统的设计背景,阐述了设计在线考试系统的意义以及该课题的内容和成果。第2章系统需求分析2.1功能需求首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试系统后,可以查询到需要参加的考试项目。此外,方便、快捷的对在线考试系统进行管理。综上所述。在线考试系统需要有如下的需求:1.适合的用户权限对试题和学生信息进行管理必须以管理员的权限进入的,合法用户要经过有效的身份验证方可登录。用户必须在被授权以后才能使用本系统的资源。2.完备的管理功能在线考试系统应该具有和在线考试密切相关的基本功能,管理员可以方便的管理题库和学生信息。学生管理:教师登录后,可以对学生的信息进行维护。题库管理:管理员登录后对题库进行维护,可以进行题目的添加,修改和删除操作。2.2性能需求对于一个系统来说,要注意以下几个关键的因素:实用性:对于在线考试系统的开发,实用性应该放在首位。使之满足一般客观题型的要求,比如:单项选择题,多项选择题,填空题,问答题等。可靠性:服务质量的一个重要方面就是能够在期望的响应时间内访问信息。可扩展性:可扩展性是指系统能保证可持续增长以满足用户需求和业务复杂性要求。安全性:安全性是为信息的机密性,完整性和可靠性提供充分的保护来预防风险,保障系统安全,是任何系统成功的基本要素。可管理性:可管理性是指可以很方便地对系统进行管理,确保系统的正常运行管理和运作。2.3本章小结本章在上-章介绍的课题背景基础上,按照软件工程的理论给出了在线考试系统开发的基本思想和方法。在对系统的需求进行详细分析后,给出了系统所需满足的功能需求和性能需求,并且画出了系统的用例图。第3章系统总体设计在需求分析阶段,搞清楚了系统“做什么”的问题,形成了目标系统的逻辑模型。现在所要做的就是要把系统“做什么”的逻辑模型变换为“怎么做”的物理模型,即实现系统功能的需求。3.1系统概要设计系统的概要设计中最重要的就是系统的模块化。模块化是解决一个复杂问题时自顶向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽保持其独立性。由需求分析可以设计出本系统的总体结构包括三个子系统:管理员模块、学生模块、老师模块。系统结构如图3-1所示。图3-1 系统总结构图图3-2题库信息管理用例图图3-3学生信息管理用例图图3-4题库信息管理模块图3.2数据库结构设计3.2.1数据库的需求分析根据在线考试系统的需求,设计对应的数据表及功能如下:学生信息表:存放与学生信息相关的信息数据。老师信息表:存放与老师信息相关的信息数据。题库信息表:存放系统所有的题目的基础信息数据。试卷信息表:存放系统所生成的试卷的信息数据。管理员信息表:存放管理员的账号、密码等数据。课程信息表:存放课程的相关信息数据。交卷信息表:存放考生考试完毕后的交卷相关信息数据。分数信息表:存放考生分数的相关信息数据。3.2.2数据库的逻辑设计根据以上的需求分析,在确定了各个表字段及主键的基础上,建立表与表之间的联系,对应的关系图如下:图3-5数据库表E-R关系图3.2.3数据库的物理设计(1)学生信息表(t_stu):记录学生的相关信息,如表3.1所示。表3.1学生信息表列名数据类型长度允许空是否主键说明stu_idint20否是IDstu_xuehaovarchar50否否学号stu_realnamevarchar50否否姓名stu_sexvarchar50否否性别stu_agevarchar50否否年龄login_namevarchar50否否登录账号login_pwvarchar50否否登录密码(2)老师信息表(t_tea):记录评分老师的相关信息,如表3.2所示。表3.2老师信息表列名数据类型长度允许空是否主键说明tea_idint20否是IDtea_bianhaovarchar50否否教师号tea_realnamevarchar50否否姓名tea_sexvarchar50否否性别tea_agevarchar50否否年龄login_namevarchar50否否登录账号login_pwvarchar50否否登录密码(3)课程信息表(t_kecheng):记录课程的相关信息,如表3.3所示。表3.3课程信息表列名数据类型长度允许空是否主键说明kecheng_idint20否是IDkecheng_namevarchar50否否课程名称(4)题库信息表(t_timu):记录考试题目的相关信息,如表3.4所示。表3.4题目信息表列名数据类型长度允许空是否主键说明timu_idint20否是IDtimu_namevarchar50否否题目名称timu_leixingvarchar50否否题目类型timu_xuanxiangavarchar50否否选项Atimu_xuanxiangbvarchar50否否选项Btimu_xuanxiangcvarchar50否否选项Ctimu_xuanxiangdvarchar50否否选项Dtimu_daanvarchar50否否题目答案timu_fenshuvarchar50否否题目分数kecheng_idvarchar50否否课程ID(5)试题信息表(t_shiti):记录试卷的相关信息,如表3.5所示。表3.5试卷信息表列名数据类型长度允许空是否主键说明shiti_idint20否是IDshiti_namevarchar50否否试题名称shiti_jieshaovarchar50否否试题介绍shiti_shijianvarchar50否否发布时间(6)交卷信息表(t_jiaojuan):记录试卷的相关信息,如表3.6所示。表3.6交卷信息表列名数据类型长度允许空是否主键说明jiaojuan_idint20否是IDstu_idint20否否学生IDshiti_idint20否否试题IDtimu_idint20否否题目IDtimu_daanvarchar50否否考试答案(7)交卷信息表(t_jiaojuan):记录考试分数的相关信息,如表3.7所示。表3.7分数信息表列名数据类型长度允许空是否主键说明fenshu_idint20否是IDstu_idint20否否学生IDshiti_idint20否否试题IDfenshuint20否否分数(8)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表3.8所示。表3.8管理员信息表(t_admin)列名数据类型长度允许空是否主键说明userIdint4否是编号userNamevarchar50否否用户名userPwvarchar50否否密码3.3系统详细设计3.3.1详细设计的需求分析题库管理和学生信息管理功能是学生在线考试系统不可缺少的部分,此部分只有管理员才有权限。该功能是当管理员填写自己的用户名和密码后,验证成功后即跳转到题库信息管理和学生信息管理界面。此时,管理员可以录入题目信息和学生信息以及管理题库信息和学生信息。3.3.2详细设计的逻辑设计根据以上详细设计的需求分析,对应的类图和时序图如下:图3-6学生信息管理类图图3-7学生信息管理时序图3.4本章小结本章在前面分析系统需求的基础上,画出了题库管理和学生信息管理功能的类图和时序图,为接下来的开发做好准备。第四章系统功能实现在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。4.1题库信息管理4.1.1题目添加1.描述:管理员输入题目信息后点击录入按钮,如果是没有输入完整的题目信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="returncheckForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。2.程序运行效果图如图4-1所示:图4-1题目信息的录入表单4.1.2题目信息管理描述:点击左侧的菜单“题目信息管理”,页面跳转到题库信息管理界面,调用后台的action类查询出所有的题目信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的JSP,显示出题目信息。点击题目标题,系统弹出窗口显示题目的详细信息2.程序效果图如下图4-2所示图4-2题库管理表单题目管理关键代码:publicStringtimu_danxuan_Add() { TTimutimu=newTTimu(); timu.setTimuName(timuName); timu.setTimuXuanxianga(timuXuanxianga); timu.setTimuXuanxiangb(timuXuanxiangb); timu.setTimuXuanxiangc(timuXuanxiangc); timu.setTimuXuanxiangd(timuXuanxiangd); timu.setTimuDaan(timuDaan.trim()); timu.setTimuFenshu(timuFenshu); timu.setTimuLeixing(timuLeixing); timu.setKechengId(kechengId); timu.setDel("no"); timuDAO.save(timu); this.setMessage("操作成功"); this.setPath("admin/timu/timuLeixing.jsp"); return"succeed"; } publicStringtimu_duoxuan_Add() { HttpServletRequestrequest=ServletActionContext.getRequest(); StringdaAn=""; String[]timuDaan=request.getParameterValues("timuDaan"); for(intj=0;j<timuDaan.length;j++) { daAn=daAn+timuDaan[j]; } TTimutimu=newTTimu(); timu.setTimuName(timuName); timu.setTimuXuanxianga(timuXuanxianga); timu.setTimuXuanxiangb(timuXuanxiangb); timu.setTimuXuanxiangc(timuXuanxiangc); timu.setTimuXuanxiangd(timuXuanxiangd); timu.setTimuDaan(daAn); timu.setTimuFenshu(timuFenshu); timu.setTimuLeixing(timuLeixing); timu.setKechengId(kechengId); timu.setDel("no"); timuDAO.save(timu); this.setMessage("操作成功"); this.setPath("admin/timu/timuLeixing.jsp"); return"succeed"; } publicStringtimu_jianda_Add() { TTimutimu=newTTimu(); timu.setTimuName(timuName); timu.setTimuDaan(timuDaan.trim()); timu.setTimuFenshu(timuFenshu); timu.setTimuLeixing(timuLeixing); timu.setKechengId(kechengId); timu.setDel("no"); timuDAO.save(timu); this.setMessage("操作成功"); this.setPath("admin/timu/timuLeixing.jsp"); return"succeed"; } publicStringtimuMana() { Stringsql="fromTTimuwheredel='no'orderbykechengId,timuLeixing"; ListtimuList=timuDAO.getHibernateTemplate().find(sql); for(inti=0;i<timuList.size();i++) { TTimutimu=(TTimu)timuList.get(i); timu.setKecheng(kechengDAO.findById(timu.getKechengId())); } Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("timuList",timuList); returnActionSupport.SUCCESS; } publicStringtimuDel() { TTimutimu=timuDAO.findById(timuId); timu.setDel("yes"); timuDAO.attachDirty(timu); this.setMessage("操作成功"); System.out.println(timu.getKechengId()+"&&&"); this.setPath("timuMana.action"); return"succeed"; }4.2学生信息管理4.2.1学生信息添加描述:管理员输入学生信息后点击录入按钮,如果是没有输入完整的学生信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="returncheckForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。程序效果图如下图4-3所示:图4-3学生信息的录入表单4.2.2学生信息管理1.描述:点击左侧的菜单“学生信息管理”,页面跳转到学生信息管理界面,调用后台的action类查询出所有的学生信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的JSP,显示出学生信息。2.程序效果如下图4-4所示:图4-4学生信息管理表单学生信息管理关键代码:publicStringstuAdd() { TStustu=newTStu(); stu.setStuXuehao(stuXuehao); stu.setStuRealname(stuRealname); stu.setStuSex(stuSex); stu.setStuAge(stuAge); stu.setStuZhengzhimianmao(stuZhengzhimianmao); stu.setStuCard(stuCard); stu.setDel("no"); stuDAO.save(stu); this.setMessage("操作成功"); this.setPath("stuMana.action"); return"succeed"; }publicStringstuDel() { TStustu=stuDAO.findById(stuId); stu.setDel("yes"); stuDAO.attachDirty(stu); this.setMessage("删除成功"); this.setPath("stuMana.action"); return"succeed"; }publicStringstuMana() { ListstuList=stuDAO.getHibernateTemplate().find("fromTStuwheredel='no'"); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("stuList",stuList); returnActionSupport.SUCCESS; } publicStringstuAll() { ListstuList=stuDAO.getHibernateTemplate().find("fromTStuwheredel='no'"); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("stuList",stuList); Stringsql="fromTShitiwheredel='no'"; ListshitiList=shitiDAO.getHibernateTemplate().find(sql); request.put("shitiList",shitiList); returnActionSupport.SUCCESS; }第五章系统测试5.1系统测试目的与意义系统测试是管理信息系统开发周期中一个十分重要而漫长的的阶段。其重要性体现在他是保证系统质量与可靠性的最后关口,是对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查。系统测试的任务是尽可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统“做得怎样”。这这阶段又可以分为三个步骤:模块测试,测试每个模块的程序是否正确;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。5.2测试过程在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。5.2.1题库和学生信息模块测试题库信息录入测试流程:1.打开题目信息录入页面,不选择课程2.确定3.选择课程4.确定5.测试结果模块名称测试用例预期结果实际结果是否通过题库模块课程:null弹出“请输入课程名”失败,弹出“请输入课程名”通过题库信息管理测试流程:1

温馨提示

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

评论

0/150

提交评论