基于ssh的在线考试系统源代码和论文_第1页
基于ssh的在线考试系统源代码和论文_第2页
基于ssh的在线考试系统源代码和论文_第3页
基于ssh的在线考试系统源代码和论文_第4页
基于ssh的在线考试系统源代码和论文_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

目录绪论 1第1章系统开发背景及意义 21.1系统开发背景 21.2系统开发意义 2第2章网上考试系统需求分析 32.1现状分析 32.2可行性分析 42.2.1经济可行性 42.2.2技术可行性 42.3设计目标 52.4功能要求 52.5系统开发环境配置 62.6系统开发工具 62.6.1开发语言—JSP(JavaServerPage) 62.6.2数据库—MySQL5.0 7第3章网上考试系统设计 83.1数据库设计 83.1.1数据库需求分析 83.1.2数据库概念结构设计 93.1.3数据库逻辑结构设计 103.1.4数据库表设计 133.2系统结构设计 153.2.1页面模块化设计 153.2.2MVC模式设计(Jsp+Servlet+JavaBean) 16第4章网上考试系统实现 174.1系统各部分的实现方法 174.1.1创建与数据库的连接 174.1.2访问数据库的JavaBean 184.1.3用户及管理员登录模块页面 194.1.4系统主要模块页面 234.1.5学生考试模块的实现页面 254.1.6教师添加试题制作试卷模块的实现 27第5章系统测试 305.1什么是软件测试 305.2软件测试的目标与方法 305.3系统的不足和展望 30结束语 32致谢 33参考文献 34摘要在线考试系统是目前市场占有率较高,应用最广泛的远程网络学习考试软件,适合政府、行业及企业的各专业网上考试、作业、练习等应用。它采用Web方式,同时适用于局域网和Internet,无需安装客户端,即可实现网上考试、作业、练习、成绩排行等功能,并能够答卷保存、自动判分、成绩查询和分析等功能。在开发方法上,引入了当今流行的ssh技术思想,数据库采用Mysql。把整个开发程分为需求分析、概要设计、详细设计、系统实现等步骤。该系统通过优化和再造管理流程,使人力资源的管理更为高效和科学,数据更为准确,从而将人事部门从繁重的、耗时的工作中解放出来,把精力集中到更高层的政策性工作中去。关键词在线考试系统;ssh;mysql数据库abstractOnlineexaminationsystemiscurrentlyhighmarketshare,themostwidelyusedtestremotenetworklearningsoftwareforgovernment,industry,professionalandcorporateonlineexams,assignments,exercisesandotherapplications.ItusestheWebtheway,appliestobothLANandInternet,withouthavingtoinstallaclient,youcanachieveonlineexams,assignments,training,performancerankingandotherfunctions,andtheabilitytosavescripts,automaticjudgment,scoresqueryandanalysisfunctions.Onthedevelopmentmethods,theintroductionoftoday'spopularsshtechnicalideas,databaseusingMysql.Theentiredevelopmentprocessisdividedintotheneedsanalysis,stepoutlinedesign,detaileddesign,systemimplementation.Thesystemisoptimizedandrecyclingmanagementprocess,sothatmoreefficientmanagementofhumanresourcesandscientificdatamoreaccurate,thusthepersonneldepartmentfromtheheavy,time-consumingworkofliberation,toconcentrateonhigher-levelpolicywork.Keywordsonlineexaminationsystem;ssh;mysqldatabase绪论考试是检验教学效果的重要手段,也是促进学生学习的重要手段,是教学过程中的一个重要环节。学生考试成绩的优劣,不但反映其对教学内容和应掌握知识的分析、理解、吸收、运用的能力,更反映教师对教学内容的把握和熟练程度。传统的学校教学中,进行一场考试,要求老师编写试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。而网上考试系统不仅减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力,并且突破了时间与空间的限制,不仅节省了资源,而且提高了评分的客观性、公正性和准确度,大大改善了考试工作的效率。加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。第1章系统开发背景及意义1.1系统开发背景随着计算机技术、网络技术迅速发展和高校校园网功能的日益完善,很多高校建立了基于校园网的网络信息管理平台,为提高教学管理水平提供了先进的管理手段。目前,基于网络的在线考试系统己经成为现代考试方式的有力补充和发展。相对于传统的笔试,网络在线考试不仅减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力,并且突破了时间与空间的限制,不仅节省了资源,而且提高了评分的客观性、公正性和准确度,大大改善了考试工作的效率。1.2系统开发意义很多学校学生的期末考试仍采用任课教师(个人或集体)考前出题的方式。为解决学生压题,考前漏题,补(缓)考试题与正式考试试题题量及难度差异问题,教务管理部门通常要求教师同时出多套试卷,其题量与难度要求相同,并且要同时给出答案和评分标准。这样做虽能解决一些问题,但给教师增加了很大的工作负担,若上下届学生的同一门课程由同一教师承担,则难免几届学生用相同几套试卷;若由不同教师任课出题,则上下届学生的成绩之间又不具有可比性。若建立题库,每次考试前由题库中题目随机生成试卷,则可较好地解决考教分离的问题,也可将广大教师从每学期末繁重的命题工作中解放出来。近年来,部分学校陆续开发了一些基于微机的题库系统,并作为成果向其它学校推广,但这些题库一般都是结合本校具体情况,针对单一课程的小型题库,甚至某些学校购得的题库系统中的题目本身是不可维护的,即使题目已不适合自己的学生考试使用,也无法更新题库中的题目。为解决题库系统中存在的这些问题,作者经过研究几种不同的网上系统,经充分的考虑,最后给出了一个较为理想的题库系统解决方案,并结合当前比较使用的B/S结构开发一个功能完备的网上考试系统。

第2章网上考试系统需求分析2.1现状分析传统的考试方法要求组织者提前命题试卷,然后约定一个统一时间,让所有考生到考场里进行考试。这种模式如图2-1所示: 编辑考题印刷大量试卷安排考场,时间,监考人员学生集体考试 阅卷,统计成绩图2-1传统考试模式这种模式存在有较多的问题:命题:由于考试要求统一进行,所有考生都考同样的一份试卷,所以试卷的命题工作便一定得非常谨慎小心,试题太难或太容易,都达不到考试目的,尤其是对于一个大规模的考试,(比如计算机等级考试,英语四,六级考试等),如何正确把握试卷的难度,一直都是让命题教师最为头痛的问题之一。而如何不在考试之前使命好的试题泄漏出去,也是组织者费尽心思。试卷印刷:对于大规模的考试,试卷印刷费工费时,成本高,对纸张资源也是一种浪费。对于涉及地域范围较广的考试(如英语四,六级考试),还要考虑试卷大的长途运送费用。在考试的印刷和运输过程中同样有试题泄漏出去的问题,任何一个环节出了问题,都可能使前面有的工作付诸流水。考场的安排:监考人员的培训与管理。对于大规模的考试,尤其是到了考试密集期(如期末,期中)。诸多学科的考试都要陆续开始的时候,对于教室资源和教师数量相对紧张的学校,如何安排考场,调配监考人员,是一件相对繁琐而又复杂的事情。如果考试再涉及到不同地域之间的同步,如英语四,六级的考试,还要考虑更多的问题。进行考试:由于同一次考试的试卷相同,要杜绝考生作弊是一个普遍的难题,因此,历届组织考试的人动了很多脑筋,如分AB卷,加强监考,加重对作弊者的惩罚程度等,但这些都没能从根本上杜绝作弊。不同地域监考的严格程度,考试时问控制的严格程度,也很难达到统一。过多人为因素的加入,也使得考试的公正性下降。判卷:考试结束后,采用人工判卷比较容易出错,并可能出现人为造成的不公正现象。2.2可行性分析可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。2.2.1经济可行性主要是对项目的经济效益进行评价,利用计算机来实现网上考试以成为适应当今教学管理的方式。开发一套能满足网上考试系统的软件是十分必要的,实现试卷管理和试卷生成自动化,在减少由于认为失误而早成损失的同时,也可以使教师减少工作量。本系统在经济上是可以接受的,并且本系统实施后可以显著提高考试效率,有助于学院完全实现网络化管理。所以本系统在经济上是可行的。2.2.2技术可行性技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。软件方面,网络化考试需要的各种软件环境都已具备,数据库服务器方面则有MySQL,均能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。其灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。 硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。2.3设计目标在线考试系统的总体目标:在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数计算总结的所有工作。所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。考试数据的存放和处理必须对考试保密,需要一定的安全性保障。题目最好有一定的稳定性和随机性。稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。考试的部分客观题在考生考完之后系统就能自动评分,并保存考生的主观题答案。2.4功能要求系统应该具备的基本功能:用户类别:登录系统的身份定为三种,一是管理员,二是普通老师,四是学生,只有被授权的用户才可以使用本系统的资源。权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;普通教师可以在线制作试卷,控制考试、成绩查询、添加试题、阅卷等。管理员可添加系系部、教师、专业、科目信息、查询修改管理员信息及审批试卷、查询考生成绩。在线考试功能:考生输入学号密码登陆系统后,选择对应的试卷可进行考试。答题中,有倒计时的功能,考试结束时还没提交就自动交卷,系统将自动对客观题进行评分。在线制作试卷:教师、管理员可在线制作试卷,可设定试题的类型、分值,但教师制作试卷后必须要由管理员审核才能考试。控制考试功能:可设定每次的考试时间。考生管理功能:可注册新增学生用户,同时查看考生及班级考生的信息。考生成绩查询功能:提供考生各科目成绩的详细查询。试卷审批功能:只有管理员有此权限。教师制作试卷完毕,只有经过管理员审批后才能发布,发布后学生才能开考。除了实现上述功能以外,在线考试系统还应该具有友好、简洁的界面,安全性要高,稳定性要强。2.5系统开发环境配置选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;令一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都是非常容易,而且性能优越。具体如下:开发工具:MyEclipse8.0辅助开发工具:Dreamweaver8数据库:MySQL5.0服务器:ApacheTomcat6.0运行环境:安装JDK1.6支持Java运行。技术:前台网页的设计采用JSP技术制作。负责响应用户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户由servlet处理,JavaBean则负责数据的处理。2.6系统开发工具本系统是基于JSP+MySQL5.0数据库技术实现的,现对JSP技术和SQLServer2005数据库作简要的介绍。2.6.1开发语言—JSP(JavaServerPage)JSP页面由HTML代码和嵌入其中的Java代码所组成。JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的等特点。JSP的技术的优势:一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不需要做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。JSP技术是用Java语言作为脚本语言的。Java语言是成熟的、强大的、易扩充的编程语言。高效性与安全性。JSP在执行前先被编译成字节码,字节码由Java虚拟机解释执行,比源码解释效率高。可维护性。由于JSP技术是一种开放的、跨平台的结构,因此Web服务器、平台及其他组件能很容易升级或切换,且不会影响JSP基本的应用程序。多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.6.2数据库—MySQL5.0MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。包含资料:源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告若有需要请联系QQ:Email:

第3章网上考试系统设计3.1数据库设计在对网上考试系统数据库部分进行设计的过程中,通过对系统功能进行需求分析得到系统的基本信息表,绘制系统业务流程图和系统数据流程图,分析得到数据字典;在概率结构设计阶段通过对需求阶段得到的用户需求抽象得到数据库关系模型的E-R图;在逻辑结构设计阶段得到数据库的关系模式并绘制信息表。详细设计过程如下介绍。3.1.1数据库需求分析需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。系统基本信息综合以上分析,要实现上面的所有功能模块,数据库共要设计十个表,它们分别是:科目表、班级表、系别表、专业表、试卷信息表、学生表、学生成绩表、学生答题试卷信息表、教师表、题库表。系统层次图根据所要实现的功能和用户权限的设置。系统总体的层次图如下图3-1所示:图3-1系统层次图系统数据流程图系统数据流程图如下图3-2所示:图3-2数据流程图3.1.2数据库概念结构设计概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键,包括概念模型设计和新系统流程两个阶段。在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。概念数据模型独立于具体的数据处理的细节和数据库管理系统。这次设计仍采用传统的实体联系图作为概念设计的工具。再进行优化后,尽量满足结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。系统E-R图如下图3-3所示:图3-3系统E-R图3.1.3数据库逻辑结构设计对于关系型数据库,数据库的概念结构设计完毕后,要把E-R图描述的概念数据模型转换为等价的关系模式极其约束。逻辑设计的基本工作主要包括如下的3个步骤。关系模式设计该设计以概念结构设计中的E-R图为主要依据,这几出相关的整体逻辑结构。该系统的关系模式如下图3-4所示:图3-4概念关系模型图完整性设计完整性要求用于描述各种信息之间的制约关系,以及关联关系,各个数据项的取值范围以及各个数据项是否可以取值。根据实际需要,采取一定的手段来满足用户的完整性需求。域完整性约束要求属性值必须在域中。实体完整性约束要求主键必须唯一且不能为空。如用户信息表中的用户名设置为主键,并且要求唯一且不能为空。模式优化本次采用3NF为规范准则来分解关系。将一个关系分解为两个或者多个关系,以满足规范,从而避免产生插入异常、删除异常、更新异常。包含资料:源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告若有需要请联系QQ:Email:

3.1.4数据库表设计学生信息表如图3-5所示图3-5学生信息表教师信息表如图3-6所示图3-6教师信息表题库信息表如图3-7所示图3-14班级信息表3.2系统结构设计3.2.1页面模块化设计模块化设计的要求不仅是为了提高代码的重用性,更重要的是为了提高代码的可维护性和稳定性。一个模块化程度高、结构清晰的应用程序,在程序维护时的便利性是可想而知的。最初设计方案时,就要规划好哪些模块是可以提出来多次使用,哪些模块虽只使用一次,但提出来之后能使代码更清晰等。网上考试系统是一个典型的数据库开发应用程序,本系统主要用管理员、教师和学生二大模块组成,各模块功能如下:教师模块:该模块主要是教师通过登录该系统能够修改个人信息,添加试题,在线制作试卷,阅卷等。学生模块:该模块主要是学生通过登录该系统能够修改个人信息(只能修改密码),进行考试等。3.2.2MVC模式设计(Jsp+Servlet+JavaBean)集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。第4章网上考试系统实现4.1系统各部分的实现方法从系统功能模块划分中可以看出,系统总体上有两个功能模块组成。各模块虽然是独立的,但又统一于同一数据库中,便于管理员管理维护数据库,同时也便于教师和学生的操作。在介绍系统各模块的实现方法之前,首先介绍系统与数据库的连接方式——使用JavaBean连接连接在服务器tomcat里配置的连接池。再介绍系统主要部分的实现方法。4.1.1创建与数据库的连接配置数据源创建连接池,再通过JavaBean连接到数据源再对数据库进行操作。连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。连接池可以极大的改善用户的Java应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:减少连接创建时间、简化的编程模式、受控的资源使用。连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,不过如果超过该水平,应用程序将崩溃而不仅仅是变慢。配置连接池:1.首先要将mysql的驱动包放在tomcat/lib目录下2.在应用服务器Tomcat里的/conf下找到一个context.xml文件,在里面添加的内容如下:<Resourcename="jdbc/examolds" auth="Container" type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql:///examol" username="root" password="123" maxIdle="30" maxWait="10000" maxActive="100"/></Context>需要访问数据库就通过在JavaBean创建的一个叫QueryRunner()方法来访问。代码如下:publicclassConn{ publicstaticQueryRunnergetQueryRunner(){ DataSourceds=null; try{ Contextcontext=newInitialContext(); ds=(DataSource)context.lookup("java:/comp/env/jdbc/examolds"); }catch(Exceptione){ System.out.println("获取数据源出错!"); } QueryRunnerqr=newQueryRunner(ds); returnqr; }}4.1.2访问数据库的JavaBeanJavaBean是一种Java语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成为属性。众所周知,属性名称符合这种模式,其他Java类可以通过自省机制发现和操作这些JavaBean属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、Applet程序或应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JSP的一个重要特性就是可以用JavaBean实现功能的扩展。将大部分功能放在JavaBean中完成,以使JSP页面程序更干净简洁、利于维护。JavaBean可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。连接数据库的JavaBean——Conn。通过JSP页面调用此JavaBean,可以实现对数据库的连接,数据表的添加、删除、更新等操作。4.1.3用户及管理员登录模块页面用户登录页面比较简单,为防止用户登录的操作错误,应设置错误处理页面,在登录操作过程中,一般发生的错误有:用户输入了错误的用户名或密码、用户直接单击了登录按钮,对上述情况的判断就要通过Servlet文件来实现。学生登录界面如图4-1所示:图4-1学生登录面

管理员教师登录界面如4-2图所示:图4-2管理员教师登录界面在登录页面时,当用户提交了登录资料后,就由“UsersServlet.java”这个servlet进行验证,它的工作主要是判断用户登录的帐号和密码是否一致。完成这些工作就必须连接存储用户数据库取出相关信息记录。如果用户输入了错误的用户名和密码,通过history.back();返回到登录界面并提示出错,如图4-3所示:图4-3登录错误提示页面若用户提交正确的用户和密码后,如果记录验证无误,就通过JSP的request.getRequestDispatcher()方法跳转到相应的界面;判断用户是否输入正确用户名和密码的Java程序片段如下所示://学生登录信息验证 publicvoidstu(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ StringStuId=request.getParameter("StuId"); StringStuPwd=request.getParameter("StuPwd"); Stringsql="select*fromstudentwhereStuId=?andStuPwd=?"; Stringparams[]={StuId,StuPwd}; QueryRunnerqr=Conn.getQueryRunner(); Studentstudent=null; Listlist=null; try{ list=(List)qr.query(sql,newBeanListHandler(Student.class),params); }catch(SQLExceptione){ } if(list.size()>0){ student=(Student)list.get(0); HttpSessionsession=request.getSession(); session.setAttribute("student",student); request.getRequestDispatcher("/servlet/OptionExamSelect").forward(request,response); }else{ response.setContentType("textml;charset=UTF-8"); PrintWriterout=response.getWriter(); out.println("<scriptlanguage=javascript>alert('学号或密码有误,请重新登录!');history.back();</script>"); } }//教师和管理员登录信息验证 publicvoidtea(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ StringTeaId=request.getParameter("TeaId"); StringTeaPwd=request.getParameter("TeaPwd"); System.out.println(TeaId); System.out.println(TeaPwd); Stringsql="select*fromteacherwhereTeaId=?andTeaPwd=?"; Stringparams[]={TeaId,TeaPwd}; QueryRunnerqr=Conn.getQueryRunner(); Teacherteacher=null; Listlist=null; try{ list=(List)qr.query(sql,newBeanListHandler(Teacher.class),params); }catch(SQLExceptione){ } if(list.size()>0){ teacher=(Teacher)list.get(0); System.out.println(teacher.getTealimit()); //老师登录 if(teacher.getTealimit().equals("0")){ HttpSessionsession=request.getSession(); session.setAttribute("teacher",teacher); response.sendRedirect("/examOL/teacher/main.jsp"); } //管理员登录 if(teacher.getTealimit().equals("1")){ HttpSessionsession=request.getSession(); session.setAttribute("teacher",teacher); response.sendRedirect("/examOL/admin/main.jsp"); } }else{ response.setContentType("textml;charset=UTF-8"); PrintWriterout=response.getWriter(); out .println("<scriptlanguage=javascript>alert('用户名或密码有误,请重新登录!');history.back();</script>"); } }4.1.4系统主要模块页面整个系统都采用JSP+JavaBean+Servletm模式实现。JSP+JavaBean+servlet模式的运用实现了代码的重复利用;是系统程序易编写、易维护、易使用;并且可以在任何安装了Java运行环境的平台上使用而不需要重新编译。系统首页如图4-4、4-5、4-6所示。

学生登录系统进入学生选择考试页面如图4-4所示:图4-4学生登录首页教师登录系统后,进入教师首页如下图4-5所示:图4-5教师界面

管理员登录系统后,进入管理员首页如下图4-6所示:图4-6管理员首页不同用户登录系统后显示的界面都是简单都是一些功能的链接。外观是一个DIV+CSS的后台管理模版。4.1.5学生考试模块的实现页面考生可以通过首页登录进入选择考试页面,如上图所示。在该页面考生能查看考试科目和开考时间,可以修改个人的密码。修改密码成功后将自动注销重新登录。如果到了开始考试的时间“是否考试”中就会由“等待考试”变成“开始考试”的连接了,考生可以点击此处进入到考试页面。考试页面有倒计时显示,如果时间到了系统会自动提交。

学生考试界面如下图4-7所示。图4-7考试页面功能实现代码如下:sql="SELECT*FROMtest,subjectWHEREtest.SubNum=subject.SubNumANDtest.TesNum="+id;Paperpaper=null; try{ Listlist=(List)qr.query(sql,newBeanListHandler(Paper.class)); paper=(Paper)list.get(0); }catch(SQLExceptione){ e.printStackTrace(); }sql="select*fromquestionwhereSubNum="+paper.getSubNum()+""+"ANDquestion.QueType='选择题'"+"orderByrand()Limit"+paper.getTesSinCount(); System.out.println("选择题"+sql); Listsincount=null; try{ sincount=(List)qr.query(sql,newBeanListHandler( Question.class)); }catch(SQLExceptione){ e.printStackTrace(); }sql="select*fromquestionwhereSubNum="+paper.getSubNum()+""+"ANDquestion.QueType='填空题'"+"orderByrand()Limit"+paper.getTesBlaCount(); System.out.println("填空题"+sql); Listblabount=null; try{ blabount=(List)qr.query(sql,newBeanListHandler( Question.class)); }catch(SQLExceptione){ e.printStackTrace(); }sql="select*fromquestionwhereSubNum="+paper.getSubNum()+"" +"ANDquestion.QueType='问答题'" +"orderByrand()Limit"+paper.getTesAnsCount(); System.out.println("问答题"+sql); Listanscount=null; try{ anscount=(List)qr.query(sql,newBeanListHandler( Question.class)); }catch(SQLExceptione){ e.printStackTrace(); }4.1.6教师添加试题制作试卷模块的实现教师登录到系统后通过左边的管理菜单了解到自己拥有那些功能:题库信息查看、添加题库,试卷信息查看,添加试卷,阅卷管理等。题库添加:先选择所添加试题的科目和题型再进行添加。系统设置了选择题,填空题,问答题。教师可以在线制作试卷,设置考试的科目、时间、考试时间段、题型分布、分值分布、考题数量等,考题数量必须根据系统提示题库总数量设置,不能把考题数量超出题库的总数量。

在线制作试卷页面如下图4-8所示。图4-8在线制作试卷页面实现在线制作试卷代码如下: request.setCharacterEncoding("UTF-8"); StringSubNum=request.getParameter("subnum"); StringTeaNum=request.getParameter("teanum"); StringTesName=request.getParameter("TesName"); StringTesTotalper=request.getParameter("TesTotalper"); StringTesSinCount=request.getParameter("TesSinCount"); StringTesBlaCount=request.getParameter("TesBlaCount"); StringTesAnsCount=request.getParameter("TesAnsCount"); StringTesSinPer=request.getParameter("TesSinPer"); StringTesBlaPer=request.getParameter("TesBlaPer"); StringTesAnsPer=request.getParameter("TesAnsPer"); StringTesTime=request.getParameter("TesTime"); Stringatarttime=request.getParameter("atarttime"); Stringendtime=request.getParameter("endtime"); Stringdone=request.getParameter("done"); System.out.println(SubNum); Stringsql="insertintotest"+"(SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,TesBlaPer,TesAnsCount,TesAnsPer,TesTime,atarttime,endtime,Done,addtime)"+"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,now())"; Stringparams[]={SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCount,

温馨提示

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

评论

0/150

提交评论