在线考试系统课程设计.doc_第1页
在线考试系统课程设计.doc_第2页
在线考试系统课程设计.doc_第3页
在线考试系统课程设计.doc_第4页
在线考试系统课程设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

扬州大学信息工程学院软件1001班课程设计 课程设计报告 毕业设计题目: 在线考试系统 学 生 姓 名: 所 在 学 院: 信息工程学院 专 业 及 班 级: 指 导 教 师: 完 成 日 期: 2014年 1 月 10日 目 录绪 论3第1章 系统开发背景及意义31.1系统开发背景31.2系统开发意义4第2章网上考试系统需求分析52.1现状分析52.2可行性分析62.2.1经济可行性62.2.2技术可行性62.3设计目标72.4功能要求72.5系统开发环境配置82.6系统开发工具82.6.1开发语言JSP(Java Server Page)82.6.2数据库Oracle9第3章 网上考试系统设计103.1数据库设计103.1.1数据库需求分析103.1.2数据库概念结构设计113.1.3数据库逻辑结构设计123.1.4数据库表设计143.2系统结构设计163.2.1页面模块化设计163.2.2 MVC模式设计(Jsp+Servlet+JavaBean)17第4章 网上考试系统实现184.1系统各部分的实现方法184.1.1创建与数据库的连接184.1.2访问数据库的JavaBean194.1.3用户及管理员登录模块页面204.1.4系统主要模块页面234.1.5学生考试模块的实现页面244.1.6教师添加试题制作试卷模块的实现26第5章 系统测试295.1什么是软件测试295.2软件测试的目标与方法295.3系统的不足和展望29结束语30绪 论考试是检验教学效果的重要手段,也是促进学生学习的重要手段,是教学过程中的一个重要环节。学生考试成绩的优劣,不但反映其对教学内容和应掌握知识的分析、理解、吸收、运用的能力,更反映教师对教学内容的把握和熟练程度。传统的学校教学中,进行一场考试,要求老师编写试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。而网上考试系统不仅减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力,并且突破了时间与空间的限制,不仅节省了资源,而且提高了评分的客观性、公正性和准确度,大大改善了考试工作的效率。加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。第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设计目标在线考试系统的总体目标:1. 在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数计算总结的所有工作。2. 所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。3. 考试数据的存放和处理必须对考试保密,需要一定的安全性保障。4. 题目最好有一定的稳定性和随机性。稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。5. 考试的部分客观题在考生考完之后系统就能自动评分,并保存考生的主观题答案。2.4功能要求系统应该具备的基本功能:用户类别:登录系统的身份定为三种,一是管理员,二是普通老师,四是学生,只有被授权的用户才可以使用本系统的资源。 权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;普通教师可以在线制作试卷,控制考试、成绩查询、添加试题、阅卷等。管理员可添加系系部、教师、专业、科目信息、查询修改管理员信息及审批试卷、查询考生成绩。 在线考试功能:考生输入学号密码登陆系统后,选择对应的试卷可进行考试。答题中,有倒计时的功能,考试结束时还没提交就自动交卷,系统将自动对客观题进行评分。 在线制作试卷:教师、管理员可在线制作试卷,可设定试题的类型、分值,但教师制作试卷后必须要由管理员审核才能考试。 控制考试功能:可设定每次的考试时间。 考生管理功能:可注册新增学生用户,同时查看考生及班级考生的信息。 考生成绩查询功能:提供考生各科目成绩的详细查询。 试卷审批功能:只有管理员有此权限。教师制作试卷完毕,只有经过管理员审批后才能发布,发布后学生才能开考。 除了实现上述功能以外,在线考试系统还应该具有友好、简洁的界面,安全性要高,稳定性要强。2.5系统开发环境配置选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;令一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都是非常容易,而且性能优越。具体如下:1. 开发工具:MyEclipse 8.02. 辅助开发工具: Dreamweaver 83. 数据库:Oracle 11g4. 服务器 :Apache Tomcat6.05. 运行环境 :安装JDK1.6支持Java运行。6. 技术:前台网页的设计采用JSP技术制作。负责响应用户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户由servlet处理,JavaBean则负责数据的处理。2.6系统开发工具本系统是基于JSP+Oracle数据库技术实现的,现对JSP技术和Oracle数据库作简要的介绍。2.6.1开发语言JSP(Java Server Page)JSP页面由HTML代码和嵌入其中的Java代码所组成。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的等特点。JSP的技术的优势:一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不需要做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。JSP技术是用Java语言作为脚本语言的。Java语言是成熟的、强大的、易扩充的编程语言。高效性与安全性。JSP在执行前先被编译成字节码,字节码由Java虚拟机解释执行,比源码解释效率高。可维护性。由于JSP技术是一种开放的、跨平台的结构,因此Web服务器、平台及其他组件能很容易升级或切换,且不会影响JSP基本的应用程序。多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.6.2数据库OracleORACLE 数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如Silver Stream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它ORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT?SERVER)体系结构的数据库之一。ORACLE7.x以来引入了共享SQL和多线索服务器体系结构,这样减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在抵挡软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。ORACLE提供了机具角色(ROLE)分工的安全保密管理,在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。ORACLE支持大量多媒体数据,如二进制图形、声音、动画及多维数据结构等。ORACLE提供了与第三代高级语言的接口软件PRO系列,能在C,C+等语言中嵌入SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具,如POWER BUILD、SQL FORMS、VISIA BASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。ORACLE提供了新的分布式数据库能力,可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。第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为规范准则来分解关系。将一个关系分解为两个或者多个关系,以满足规范,从而避免产生插入异常、删除异常、更新异常。3.1.4数据库表设计学生信息表如图3-5所示图3-5 学生信息表教师信息表如图3-6所示图3-6 教师信息表题库信息表如图3-7所示图3-7 题库信息表试卷信息表如图3-8所示图3-8 试卷信息表学生答案表如图3-9所示图3-9 学生答案表学生成绩表如图3-10所示图3-10 学生成绩表系部信息表如图3-11所示图3-11 系部信息表专业信息表如图3-12所示图3-12 专业信息表科目信息表如表3-13所示表3-13 科目信息表班级信息表如图3-14所示图3-14班级信息表3.2系统结构设计3.2.1页面模块化设计模块化设计的要求不仅是为了提高代码的重用性,更重要的是为了提高代码的可维护性和稳定性。一个模块化程度高、结构清晰的应用程序,在程序维护时的便利性是可想而知的。最初设计方案时,就要规划好哪些模块是可以提出来多次使用,哪些模块虽只使用一次,但提出来之后能使代码更清晰等。网上考试系统是一个典型的数据库开发应用程序,本系统主要用管理员、教师和学生三大模块组成,各模块功能如下:管理员模块:该模块主要是对系部、专业、班级、课程进行管理,添加修改学生、教师、信息,添加试题、试卷和审核教师制作的试卷等。教师模块:该模块主要是教师通过登录该系统能够修改个人信息,添加试题,在线制作试卷,阅卷等。学生模块:该模块主要是学生通过登录该系统能够修改个人信息(只能修改密码),进行考试等。3.2.2 MVC模式设计(Jsp+Servlet+JavaBean)MVC(Model View Controller)是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。JSP页面处于表现层,也就是视力(View即V)的角色。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。JavaBean则负责数据的处理,也就是模型(Model即M)的角色。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。Servlet用来处理请求的事务,充当控制器(Controller即C)的角色,Servlet负责响应用户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。初始的请求由Servlet来处理,Servlet调用商业逻辑和数据处理代码,并创建Bean来表示相应的结果(模型)。然后Servlet确定哪个页面适合于表达这些特定的结果,并将请求转发到相应的页面(JSP页面即为视图),由Servlet确定哪个业务逻辑适用,应该用哪个JSP页面相应结果(Servlet就是控制器)。第4章 网上考试系统实现4.1系统各部分的实现方法从系统功能模块划分中可以看出,系统总体上有两个功能模块组成。各模块虽然是独立的,但又统一于同一数据库中,便于管理员管理维护数据库,同时也便于教师和学生的操作。在介绍系统各模块的实现方法之前,首先介绍系统与数据库的连接方式使用JavaBean连接连接在服务器tomcat里配置的连接池。再介绍系统主要部分的实现方法。4.1.1创建与数据库的连接配置数据源创建连接池,再通过JavaBean连接到数据源再对数据库进行操作。连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。连接池可以极大的改善用户的 Java 应用程序的性能,同时减少全部资源的使用。连接池主要的优点有:减少连接创建时间、简化的编程模式、受控的资源使用。连接池能够使性能最大化,同时还能将资源利用控制在一定的水平之下,不过如果超过该水平,应用程序将崩溃而不仅仅是变慢。配置连接池:1首先要将mysql的驱动包放在tomcat/lib目录下2在应用服务器Tomcat 里的/conf下找到一个context.xml文件,在里面添加的内容如下:需要访问数据库就通过在JavaBean创建的一个叫QueryRunner()方法来访问。代码如下:public class Conn public static QueryRunner getQueryRunner() DataSource ds = null;try Context context = new InitialContext();ds=(DataSource)context.lookup(java:/comp/env/jdbc/examolds); catch (Exception e) System.out.println(获取数据源出错!);QueryRunner qr = new QueryRunner(ds);return qr;4.1.2访问数据库的JavaBeanJavaBean是一种Java语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成为属性。众所周知,属性名称符合这种模式,其他Java类可以通过自省机制发现和操作这些JavaBean属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、Applet程序或应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JSP的一个重要特性就是可以用JavaBean实现功能的扩展。将大部分功能放在JavaBean中完成,以使JSP页面程序更干净简洁、利于维护。JavaBean可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。连接数据库的JavaBeanConn。通过JSP页面调用此JavaBean,可以实现对数据库的连接,数据表的添加、删除、更新等操作。4.1.3用户及管理员登录模块页面用户登录页面比较简单,为防止用户登录的操作错误,应设置错误处理页面,在登录操作过程中,一般发生的错误有:用户输入了错误的用户名或密码、用户直接单击了登录按钮,对上述情况的判断就要通过Servlet文件来实现。学生登录界面如图4-1所示:图4-1 学生登录面在登录页面时,当用户提交了登录资料后,就由“UsersServlet.java”这个servlet进行验证,它的工作主要是判断用户登录的帐号和密码是否一致。完成这些工作就必须连接存储用户数据库取出相关信息记录。如果用户输入了错误的用户名和密码,通过history.back();返回到登录界面并提示出错,如图4-2所示:图4-2登录错误提示页面若用户提交正确的用户和密码后,如果记录验证无误,就通过JSP的request.getRequestDispatcher()方法跳转到相应的界面;判断用户是否输入正确用户名和密码的Java程序片段如下所示:/学生登录信息验证public void stu(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String StuId = request.getParameter(StuId);String StuPwd = request.getParameter(StuPwd);String sql = select * from student where StuId=? and StuPwd=?;String params = StuId, StuPwd ;QueryRunner qr = Conn.getQueryRunner();Student student = null;List list = null;try list = (List) qr.query(sql, new BeanListHandler(Student.class),params); catch (SQLException e) if (list.size() 0) student = (Student) list.get(0);HttpSession session = request.getSession();session.setAttribute(student, student);request.getRequestDispatcher(/servlet/OptionExamSelect).forward(request, response); else response.setContentType(text ml;charset=UTF-8);PrintWriter out = response.getWriter();out.println(alert(学号或密码有误,请重新登录!);history.back(););/教师和管理员登录信息验证public void tea(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String TeaId = request.getParameter(TeaId);String TeaPwd = request.getParameter(TeaPwd);System.out.println(TeaId);System.out.println(TeaPwd);String sql = select * from teacher where TeaId=? and TeaPwd=?;String params = TeaId, TeaPwd ;QueryRunner qr = Conn.getQueryRunner();Teacher teacher = null;List list = null;try list=(List)qr.query(sql,new BeanListHandler(Teacher.class),params); catch (SQLException e) if (list.size() 0) teacher = (Teacher) list.get(0);System.out.println(teacher.getTealimit();/ 老师登录if (teacher.getTealimit().equals(0) HttpSession session = request.getSession();session.setAttribute(teacher, teacher);response.sendRedirect(/examOL/teacher/main.jsp);/ 管理员登录if (teacher.getTealimit().equals(1) HttpSession session = request.getSession();session.setAttribute(teacher, teacher);response.sendRedirect(/examOL/admin/main.jsp); else response.setContentType(text ml;charset=UTF-8);PrintWriter out = response.getWriter();out.println(alert(用户名或密码有误,请重新登录!);history.back(););4.1.4系统主要模块页面整个系统都采用JSP+JavaBean+Servletm模式实现。JSP+JavaBean+servlet模式的运用实现了代码的重复利用;是系统程序易编写、易维护、易使用;并且可以在任何安装了Java运行环境的平台上使用而不需要重新编译。教师登录系统后,进入教师首页如下图4-5所示:图4-3 教师界面管理员登录系统后,进入管理员首页如下图4-6所示:图4-4 管理员首页不同用户登录系统后显示的界面都是简单都是一些功能的链接。外观是一个DIV+CSS的后台管理模版。4.1.5学生考试模块的实现页面考生可以通过首页登录进入选择考试页面,如上图所示。在该页面考生能查看考试科目和开考时间,可以修改个人的密码。修改密码成功后将自动注销重新登录。如果到了开始考试的时间“是否考试”中就会由“等待考试”变成“开始考试”的连接了,考生可以点击此处进入到考试页面。考试页面有倒计时显示,如果时间到了系统会自动提交。学生考试界面如下图4-5所示。 图4-5 考试页面功能实现代码如下:sql = SELECT * FROM test ,subject WHERE test.SubNum = subject.SubNum AND test.TesNum = + id;Paper paper = null;try List list = (List) qr.query(sql, new BeanListHandler(Paper.class);paper = (Paper) list.get(0); catch (SQLException e) e.printStackTrace();sql = select * from question where SubNum=+ paper.getSubNum() + + AND question.QueType = 选择题 + order By rand() Limit + paper.getTesSinCount();System.out.println(选择题 + sql);List sincount = null;try sincount = (List) qr.query(sql, new BeanListHandler(Question.class); catch (SQLException e) e.printStackTrace();sql = select * from question where SubNum=+ paper.getSubNum() + + AND question.QueType = 填空题 + order By rand() Limit + paper.getTesBlaCount();System.out.println(填空题 + sql);List blabount = null;try blabount = (List) qr.query(sql, new BeanListHandler(Question.class); catch (SQLException e) e.printStackTrace();sql = select * from question where SubNum=+ paper.getSubNum() + + AND question.QueType = 问答题 + order By rand() Limit + paper.getTesAnsCount();System.out.println(问答题 + sql);List anscount = null;try anscount = (List) qr.query(sql, new BeanListHandler(Question.class); catch (SQLException e) e.printStackTrace();4.1.6教师添加试题制作试卷模块的实现教师登录到系统后通过左边的管理菜单了解到自己拥有那些功能:题库信息查看、添加题库,试卷信息查看,添加试卷,阅卷管理等。题库添加:先选择所添加试题的科目和题型再进行添加。系统设置了选择题,填空题,问答题。教师可以在线制作试卷,设置考试的科目、时间、考试时间段、题型分布、分值分布、考题数量等,考题数量必须根据系统提示题库总数量设置,不能把考题数量超出题库的总数量。在线制作试卷页面如下图4-6所示。图4-6 在线制作试卷页面实现在线制作试卷代码如下:request.setCharacterEncoding(UTF-8);String SubNum = request.getParameter(subnum);String TeaNum = request.getParameter(teanum);String TesName = request.getParameter(TesName);String TesTotalper = request.getParameter(TesTotalper);String TesSinCount = request.getParameter(TesSinCount);String TesBlaCount = request.getParameter(TesBlaCount);String TesAnsCount = request.getParameter(TesAnsCount);String TesSinPer = request.getParameter(TesSinPer);String TesBlaPer = request.getParameter(TesBlaPer);String TesAnsPer = request.getParameter(TesAnsPer);String TesTime = request.getParameter(TesTime);String atarttime = request.getParameter(atarttime);String endtime = request.getParameter(endtime);String done = request.getParameter(done);System.out.println(SubNum);String sql = insert into test + (SubNum,TeaNum,TesName,TesTotalper,TesSinCount,TesSinPer,TesBlaCoun

温馨提示

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

评论

0/150

提交评论