




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东北林业大学毕业论文7中华人民共和国教育部林业大学毕 业 论 文 论文题目: 基于Java的在线考试系统的设计 学 生: 马xx 指导教师: 张 讲师 学 院: 工程学院 专 业: 电子信息工程2008级1班 2012年6月页眉东北林业大学毕业设计林业大学毕 业 论 文 任 务 书论文题目 基于Java的在线考试系统的设计 指导教师 张 讲师 专 业 电子信息工程00级3班 学 生 马 xx 2012年 6月 5日题目名称:基于Java的在线考试系统的设计任务内容(包括内容、计划、时间安排、完成工作量与水平具体要求)一、内容本文要设计的是一个基于Browser/Server模式的在线考试系统,该系统的设计主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。包括用户建立,用户登录, 开始考试, 交卷等几大功能模块。本文提出并实现了试题录入、在线考试和自动评分等一系列问题,实现了考生对客观试题的在线考试。二、计划、时间安排第七学期第18-19周 查阅、收集资料,撰写开题报告。第八学期1、01-02周 毕业实习;2、03 周 确定设计方案,开题答辩;3、04周 按要求确定课题实现的载体(硬件实现或者软件仿真);4、05-周 熟悉数据库技术、ASP技术、SQL语言以及其他关键技术;5、6-10周 按要求完成考生考试,用户管理,考试管理,试卷管理,题库管理,报表管理等功能;6、11-13周 按要求完成系统调试及设计文档撰写;7、14-16周 撰写设计说明书、准备答辩。三、完成工作量与水平具体要求1、能够实现考试系统的登录功能;2、能够实现考生考试的功能,如答题等;3、能够实现管理员后台管理的功能;4、能够实现对题库、试卷、报表的管理,如抽取考卷试题,上/下一题,交卷功能。其中: 参考文献篇数: 20篇以上(其中,外文文献3篇以上) 说明书字数: 论 文 字 数: 10000字以上 外文翻译: 一篇与本设计相关的文章(1000外文单词以上)专业负责人意见签名:年 月 日基于Java的在线考试系统的设计摘 要随着网络社会的普及与发展,在线考试已经成为现阶段研究开发的一个热点。它是基于Java语言的在线考试平台,目标是为了方便培训学员对近期学习效果的在线测评,客户端的配置可以极为简单,使考试不受地域的限制。该考试系统包括考生登录、在线答题、交卷功能、显示成绩、自动评分、考生信息管理、考试试题管理、题库管理等多个功能。在线考试系统可以实现考试的自动化,试题可从题库中随机抽取,这样就减少了作弊的可能,并克服了传统的“人工出题,考生考试,人工阅卷,成绩评估及试卷分析”考试模式耗时费力、容易出错的缺点。关键词:在线考试,java EE,Mysql,NES,MVC,JDBC,数据库。 Online examination system based on JavaAbstractOnline Examination has become a hot of the present research and development with the development and popularization of the network society. Based on Java Language, The Online Examination System, which is also called Online examination platform, aimed at facilitating the training students recent learning effect of Online assessment. Client configuration can be very simple , make examination is not subject to regional restrictions. The examination system includes the examinee login, online answer papers, send paper function, display scores, automatic rating scores, the examinee information management, examination papers management, management of multiple function. Online examination system can realize the automatic test and the test question can be randomly extracted from question database, which reduces the possibility of cheating and overcomes the faults of the traditional examination mode of demanding, easy to make a mistake, whose mode is artificial questions on the exam, the examinee test, artificial grade examination papers, assessment and examination paper analysis.Key words: Online Exam, Java EE, MySql , NES, MVC, JDBC, Database.目 录摘要Abstract1 绪论11.1 课题研究背景11.2 课题研究意义11.3 论文结构11.4 相关技术11.4.1 Core Java核心技术11.4.2 JDBC11.4.3 MVC架构11.4.4 Mysql11.4.5 Swing11.4.6 Hibernate12 系统需求分析52.1 系统设计的目标52.2 系统设计的功能性需求错误!未定义书签。2.3 系统的性能需求错误!未定义书签。2.4 对系统功能的规定错误!未定义书签。2.5 开发环境错误!未定义书签。3 系统设计53.1 系统总体设计错误!未定义书签。3.1.1 三层架构的总体设计13.1.2 增加网络层的四层整体架构13.2 基本设计和程序流程图错误!未定义书签。3.3 数据库设计错误!未定义书签。4 在线考试系统主要功能模块124.1 考生登录模块错误!未定义书签。4.1.1 欢迎窗口界面14.1.2 登录窗口界面14.1.3 主菜单界面14.2 考生考试模块错误!未定义书签。4.3 数据管理模块错误!未定义书签。5 结论24参考文献附录致谢基于Java的在线考试系统的设计 1 绪论1.1 课题研究背景信息化高速发展的今天,使得网络在整个社会的各个领域和部门得到了广泛的普及与应用。基于互联网的在线考试,以其巨大的发展前景,已经成为现阶段研究开发的一个热点。它是建立在国际互联网上的应用系统,客户端的配置可以极为简单,使考试不受地域的限制。一个完备的在线考试系统可以使用户在网上学习过后及时检验自己的学习效果,及时发现自己的不足,使得学习效率得到很大提高。在线考试系统中题目的生成、试卷的提交、成绩的批阅等都可以在网络上自动完成。只要形成一套成熟的题库就可以实现考试的自动化,节约大量的人力物力,并且速度更加快捷。在线考试系统,如:公务考试系统、公安部门人员考核系统、驾驶员网上考试系统、网络在线心理测评、职业测评等,在社会各行各业中得到了广泛的应用,大到国家机关、政府部门及军事机构对政务人员的考核,还有企事业单位对各部门员工的素质测评,小到个人网上性格测评、职业测评等等,均需用到在线考试系统。1.2 课题研究意义在线考试系统借助于完整的考试题库就可以实现考试的自动化,考试题可以从题库中随机抽取,这样就大大减少了人为作弊的可能性。而作为传统 “人工出题,考生考试,人工阅卷,成绩评估及试卷分析”的考试模式,既耗时费力,又容易出错,也会存在作弊的可能性。在线考试系统就可以避免上述传统考试模式的缺点。在线考试将逐步取代人工考试,广泛应用于社会的各个领域当中。软件系统应用到远程教育,我国远程教育的蓬勃发展,处于起步阶段。节约了大量的人力和物力。将给这个高速发展的社会带来极大的便利。1.3 论文结构本论文共有以下几个基本部分:第一部分主要介绍了本课题的研究背景和研究意义,以及研究所用到的相关技术知识。在线考试系统的研究具有广阔的应用前景,它的出现给现代社会带来了极大的方便;相关技术包括:Core Java核心技术、JDBC数据库和Java的连接技术、MVC架构的原理应用、Mysql和Swing技术等。这些技术给在线考试系统的设计提供了正确的参考标准。第二部分主要介绍了考试系统的需求分析。系统设计的目标,系统设计的功能性需求,系统的性能需求,对系统功能的规定以及开发环境。第三部分主要介绍了系统的总体设计结构和总体程序流程图。总体设计结构就是三层架构的整体结构设计,包括表现层、业务层和数据管理层。程序流程图主要分析了考试系统的执行流程:显示欢迎窗口界面定时自动切换到登陆界面输入正确的考生编号和密码,点击“登陆”按钮调用ClientContext对象的login方法,切换到主菜单界面点击“开始”按钮,切换到考生考试界面考生开始定时答题,做完第一题,点击“下一题”按钮考生答题结束,点击“交卷”按钮,执行交卷功能点击“分数”按钮,显示考试成绩点击“离开”按钮,退出考试,考试结束。这样的流程使代码运行过程更加清晰,从而实现了考试的登录、考生答题、答完交卷、系统自动提交成绩并显示等考试功能,完成了考试的自动化处理。第四部分主要介绍了在线考试系统的主要功能模块:考生登录模块、考生考试模块和数据管理模块。并带有相关功能实现的代码介绍。1.4 相关技术对于在线系统的设计涉及到了Java语言编程和数据库等相关方面的技术知识。1.4.1 Core Java核心技术Java语言是一种简单、面向对象、分布式、解释型、稳定、安全、结构中立、易移植、高性能、多线程的动态语言。简单是指Java采用类C/C+的语法风格,C+程序员可以很快就掌握Java语法。Java摒弃了C+容易引发程序错误的地方,如指针和内存管理。另外Java提供了丰富的类库。面向对象可以说是Java最重要的特性,Java语言的设计完全是面向对象的,它不支持像C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。Java致力于检查程序在编译和运行过程中的错误。Java将它的程序编译成一种结构中立的中间文件格式。在Java语言里,像指针和释放内存等C+功能被删除,避免了非法内存操作。当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java编译器产生的目标代码是针对一种并不存在的CPU-JAVA虚拟机,而不是某一实际的CPU。多线程功能使得在一个程序里可同时执行多个小任务。Java的动态特性是其面向对象设计方法的发展。 对象是指一个具体事物实例,Java 类是用来描述事物类型的。Java中的构造器声明在类内部, 方法名与类名一致的方法叫构造方法,构造方法不能声明返回值类型。构造方法可以包含参数,参数一般是创建对象实例必须依赖的条件(前提条件)。java方法参数的传递规则是基于值的传递,是变量值的复制。继承是用来表达概念上具体化延续的具体概念。子类继承父类的属性和方法,构造器不能继承,实例化子类,会递归分配所有父类的空间,子类构造器一定调用父类构造器。1.4.2 JDBCJDBC的英文全称是Java Database Connection。JDBC API(interface)是SUN提出的java程序访问数据库的标准。不同的数据库厂商实现这套标准。程序员通过一套API可以访问不同类型的数据。JDBC默认事务是自动提交的。也可以改为非自动提交(手动提交)。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。常用的接口:java.sql.Connection(连接),java.sql.Statement(语句),java.sql.PreparedStatement(预编译的语句),java.sql.ResultSet(结果集)。常用的类:DriverManage(驱动管理器),接口的实现类(ojdbc14_11g.jar)。1.4.3 MVC架构MVC是指:Module(业务模型),View(视图 (表现)),Controller(控制器)。MVC 架构应用如下:1) Module 业务模型:软件核心功能的抽象,封装软件核心功能。如:注册,登录,开始考试,交卷等。 2) View 视图 (表现):软件的界面视图,用来呈现用户数据状态,接受用户请求。界面中只包含界面显示处理逻辑。3) Controller 控制器:耦合界面与业务模型。响应处理用户请求,将用户数据和请求转发给业务模型,根据业务模型的处理结果更新转发视图界面。控制器中包含界面的控制逻辑。4) MVC 请求流程:用户访问View,发起请求,请求由控制器处理,控制器请求业务模型完成业务处理,控制器根据业务处理结果更新用户界面。5) MVC 登录流程实现:a.增加LoginFrame界面登录事件响应代码;b.在 LoginFrame界面增加控制器(ClientContext) 的引用和对象注入代码;c.创建控制器类ClientContext类,添加登录响应方法,添加界面对象引用和注入方法,达到控制器能够操作这些对象的目的;d.为登录界面增加方法,用来获取用户的ID(编号)和PWD(密码),务必将idField 引用到界面控件对象;e.增加业务处理模型接口 ExamService,并且提供登录方法;f.为ClientContext 增加业务层接口的引用;g.为MenuFrame界面增加更新用户信息的方法 updateView。1.4.4 Mysql数据库用来保存和管理数据,Mysql是数据库中最常见、最基本的一种,它具有体积小、速度快、建立成本低的优点,因此被广泛应用于Internet上的中小型网络中。目前主要流行的数据库有以下几种:Oracle,DB2(IBM),Sybase,MySql(Oracle),SQL Server(MS),PostgreSQL,Infomix等。在线考试系统属于中小型网络系统,适合采用Mysql语言。1.4.5 Swing在线考试系统的图形用户界面设计需要使用到Swing,Swing是利用AWT绘图功能,完整的重新绘制了一套控件系统,包括:表格, Tree,等待。Swing适合写应用软件。由于Windows对Swing支持不好,很少用Swing开发桌面应用程序。AWT 具有强大的绘图功能,它的应用控件 (按钮, 菜单) 很少,AWT 适合开发图形,不适合开发应用。AWT 使Java成功的技术是Applet。SWT 来自IBM 全新的图形用户界面(GUI)系统,包含少量的C代码,提供全部平台的支持。Swt基本实现了跨平台,代表产品是Eclipse。Swing的一些基本内容介绍:1) 简单窗口: JFrame 代表有框的窗口,其中必须放置一个面板; JPanel 代表空白矩形区域面板,在面板上可以添加控件/绘制图形。2) 图片加载: Class提供getResource方法,从package中加载,如: JFrameDemo.class.getResource(img.png); 使用该语句可以创建一个窗口,在里面显示一张图片。3) 布局管理:就是组件在容器(面板) 中的组件(Button)位置和大小。 A 空布局:(绝对位置布局)绝对布局管理,是指定位置和宽高的布局。如下: JFrame (w:574, H:390) |- JPanel (W:568, H:357) |- JButton OK (x:369 ,y:327 , w:92 ,H:21 ) |- JButton Cancel (x:466 ,y:327 , w:92 ,H:21 ) B 布局管理器:(相对位置布局) 绝对布局管理,就是组件的大小和位置有布局管理器控制,大多数布局均采用这种方式。(1)BorderLayout (边框布局):将一个面板,分为东南西北中,每个位置只能放一个控件,它会自动的向其他的四个方法填充。 -| | 北(North) | |- | | | | | | | 中 | | | 西 | Center | 东 | | | | | |-| | 南(South) | -|(2)FlowLayout (流布局):JPanel的默认布局是FlowLayout,即多个元素顺序排序, 一行满了,排下一行。如下所示: - | OKOKOKOKOKOK | | OKOKOK | | | -(3)GridLayout(表格布局):指定行数,列数,元素按照等宽的行列表格进行布局。(4)复杂布局:布局套布局实现复杂界面布局管理。1.4.6 HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。2 系统需求分析(内容太少)2.1 系统设计的目标系统设计目标就是要完成一个网络在线考试系统,方便学员对近期学习效果的在线测评。传统考试测评需要经过人工出题、考生考试、人工阅卷、计算成绩及试卷分析等多个过程,这样考试既耗时费力,又容易出错,也会存在作弊的可能性。在线考试系统就可以避免上述传统考试模式的缺点,在线考试系统借助于完整的考试题库就可以实现考试的自动化,考试题可以从题库中随机抽取,这样就大大减少了人为作弊的可能性。如此以来,学员每次测评就会很方便,而且节省时间。该考试系统包括了考生登录、在线答题、交卷功能、显示成绩、自动评分、考生信息管理、考试试题管理、题库管理等多个功能。定位于节省考试过程中的成本,方便培训机构对学员测评工作的管理。在线考试系统具有广阔的应用前景,它将逐步取代人工考试,适用于社会的各个领域中,并给这个高速发展的社会带来极大的便利。2.2 系统设计的功能性需求系统设计对考试功能的实现提出了需求,根据三层架构的整体设计思想,系统前台设计应用在表现层,系统后台设计应用在数据管理层。因此系统功能性可分为考生模块功能和数据管理模块功能,考生模块在表现层,数据管理模块在管理层。考生模块功能:考生登录(考生编号和密码)功能、在线答题功能、上/下一题功能、交卷功能和显示成绩功能等。只有考生信息文件中存在的考生才能顺利登录系统答题,这样确保了考试的安全性和可方便管理性,后来的考生可以通过注册,即把新考生信息加载到文件中。数据管理模块功能:主要是对考生信息文件和考试试题文件的安全管理,主要功能有:自动评分功能、考生信息管理功能、考试试题管理功能和题库管理功能等。数据管理功能通过导入考生信息文件和试题文件,然后解析这两个文件分别到Users集合和Questions集合中实现。2.3 系统的性能需求要求系统性能稳定,可执行多次考试,并能支持多名用户并发考试,保证相互之间不受影响。客户端响应时间要短,订单提交统计时间要短。以测试驱动开发, 步步为营, 逐步递归的方式对系统性能进行测试,确保稳定性,坚持编码-测试-Debug。2.4 对系统功能的规定为了使所有上网用户都能方便本系统,本系统应具备如下特点:方便操作,操作流程合理;支持没有计算机使用经验、计算机使用经验较少及有较多计算机使用经验的用户均能方便地使用本系统;有一定的容错能力;操作完成时有统一规范的提示信息;用户可自定义等。2.4 开发环境客户端要求:Windows XP操作系统或更高版本;开发环境:Eclipse或者是MyEclipse;开发工具:Jdk1.6,MySQL 5.1。3 系统设计3.1 系统总体设计3.1.1 三层架构的总体设计系统整体架构采用三层架构设计:图3-1 系统总体三层架构图整体架构有以下三层:1) 表现层:实现数据呈现和用户交互的功能。表现层所有的类:WelcomeWindow,LoginFrame,MenuFrame,ExamFrame,ClientContext。其中WelcomeWindow类是用来显示欢迎窗口界面的,运行该类可以显示一个欢迎考试窗口;而LoginFrame类是显示用户登陆界面的,该登陆界面可以让用户输入已注册的用户编号(id)和密码(Password);MenuFrame类是设计考试主菜单界面的,它包含四个图片按钮:开始(start)、分数(result)、考试规则(msg)、离开(exit);ExamFrame类用来显示考试框,框中包括考试标题、题目(题干和四个选项)、上/下一题按钮、定时计数器倒计时标签等,它就是考生考试做题的界面。以上的四个类属于“用户界面类”。而表现层最核心的类是ClientContext类,即客户端上下文,也是客户端控制器,它用来管理和控制以上的四个“用户界面”类。ClientContext类包括9个核心方法:用户登陆方法login(),显示登陆界面方法show(),退出考试方法exit(),开始考试方法start(),切换下一题方法next(),切换上一题方法prev(),交卷方法send(),定时器定时显示剩余时间方法timerStart(),显示考试分数方法result()。以上表现层的五个类都被封装到ui包中。 2) 业务层(业务模型):软件的核心功能。业务层所有的类:ExamIsOverException,IdOrPwdException,ExamServiceImpl,ExamService。其中ExamIsOverException类是处理异常类,即处理考试是否结束的类;而IdOrPwdException也是处理异常的类,即处理客户端输入的是用户编号还是密码;ExamServiceImpl类是考试业务模型的扩展类,它继承了考试业务模型类ExamService的属性和方法,当考试结束后,用来处理异常,即当点击其他按钮时的异常,会显示“考试已经结束”;以上的三个类还有ExamService类都被封装到service包中。 在service包中, 核心接口(抽象类)是ExamService类。它包含登录系统方法login,开始考试方法start(),需要在实现类中实现生产试卷的功能,保存用户答案到业务层方法saveUserAnswers,考试结束方法over()。 3) 数据管理层(数据持久化层), 是指提供数据的CRUD管理。CRUD是数据的增删改查管理。其中:C: 创建, R: 寻回, 查找, U:更新, D:删除。数据管理层是只关心数据操作, 不涉及业务功能。如: 查找用户。管理层所有的类:User,Question,QuestionInfo,ExamInfo,EntityContext。其中:用户序列化接口User类设置用户的属性(用户编号、名字、密码、电话号码和Email)、构造器和方法;试题Question类,Question对象代表一道试题,包括题干和四个选项以及正确答案;试题信息类QuestionInfo是问题和用户答案的值对象,表示界面上的一道题和对应的用户答案,是值对象。以上所有类被封装到entity包中。在entity包中, 核心类是EntityContext,即实体上下文,是软件的数据层,提供软件数据管理功能,如导入用户文件和试题文件,解析用户文件和试题文件,管理User和Question。熟悉了以上三层架构后,我们来了解一下总体执行过程:ClientContext类不仅可以控制调用用户界面设计类中的主方法,这是同一层的连接调用,而且它还可以连接调用下一层(业务层)的核心类ExamService中的主方法。业务层的核心类ExamService又可以连接调用下一层(数据管理层)核心类EntityContext中的主方法,然后执行相应功能。开始考试功能实现:1) 视图 MenuFrame 中增加事件监听addActionListener方法;更新ExamFrame, 增加updateView()。2) 控制器, 增加事件响应方法start()。3) 业务层增加:startExam()和getQuestion();开始考试业务描述: 开始考试时候, 抽取考卷试题, 每个level抽取2题,返回考试描述信息用ExamInfo类;考卷是有抽取的题目组成的线性表集合;获取试题是根据题目序号获取指定试题。3.1.2 增加网络层的四层整体架构图3-2 系统总体四层架构图和以上三层架构相比,多了一个网络层,除了网络层的其他三层和上述三层架构相同。现在着重介绍网络层:无持续状态连接协议的实现: 1) 无连接协议原理: 建立连接-发送请求-接收响应-断开连接。 优点: 充分重用服务器的网络服务能力; 缺点: 不能保持持久连接状态, 不能记住是否已经连接。 客户端模式: 建立连接-发送请求-接收响应-断开连接; 服务器模式: 建立连接-接收请求-处理-发送响应-断开连接。 2) 无连接协议的状态保持: 状态保持目的: 识别是否已经来过; (对齐) 采用令牌机制实现: 每次发送请求都带着令牌发送, 服务器检查令牌是否可用:如果不可用创建新的令牌, 服务器每次发送响应都包含令牌信息。服务器通过比较令牌是否在已登记的集合中来确定是哪个客户。3)网络服务端的实现:采用ExamServer类,即考试应用服务器ExamServer类;服务列表, 每个SID对应一个 ExamService 实例, 每个客户对应一个SID;等待客户端的连接,接收请求;根据用户请求req,找到对应SessionID 的考试服务对象; 一个考试服务对象对应于一个考试客户端(一个考生);如果请求req中没有SessionID 的getService()方法会创建新的SessionID和ExamService 实例;发送响应,断开连接;第一次访问服务, 需要创建新的service启动服务器。4)网络服务端测试:模式:建立建立-发送请求-接收响应-断开连接5)网络服务器启动代码:public static void main(String args) ExamServer server = new ExamServer(); Config config = new Config(perties); EntityContext entityContext = new EntityContext(config); server.setConfig(config); server.setEntityContext(entityContext); server.start(); 网络代理层的工作原理: 1) 客户端业务请求到网络代理客户端; 2) 网络代理将请求通过网络发送到服务器; 3) 服务器接收请求通过令牌识别客户端, 找到合适的业务层实例; 4) 服务器利用反射调用业务层实例的业务方法; 5) 服务器将业务执行结果发送给客户端代理; 6) 客户端代理将结果返回给客户端界面。软件实现应遵循以下原则:1) 完整实现桌面版为主要目标; 2) 实现网络代理功能为扩展目标;3) 以测试驱动开发, 步步为营, 逐步递归达到目的; 4) 坚持编码-测试-Debug;5) 完整尝试重新实现一遍。空行去掉3.2 基本设计和程序流程图开始导入用户和试题文件,初始化各个对象调用clientContext对象show方法,定时显示欢迎窗口界面,切换到登陆界面输入编号和密码,是否点击“登录”按钮? 否 登陆成功,切换到MenuFrame主菜单界面 是 是否点击“开始”按钮? 否 是 “分数”:还没有考试“离开”按钮考试规则调用start方法,切换到ExamFrame考试界面考试时间10分钟。做第一题后,点击“下一题”按钮,做第二题-,题目做完是否点击“交卷”按钮?等考试时间到 是弹出“交卷”对话框,是否真的交卷? 否 是交卷完毕,显示考试成绩分数框,点击“确定”按钮,切换到MenuFrame主菜单界面是否点击“离开”按钮? 否 是退出考试,考试结束图3-3 系统程序流程图3.3 数据库设计数据库设计是很重要的一部分,本文在线考试系统需要用到的两个数据库文件是UserFile(考生信息)文件和QuestionFile(试题信息)文件。传统的设计方式是不采用数据库技术,而采用第四章要介绍的数据管理功能方式EntityContext类,把这两个文件分别解析到Users集合和questions集合中,加载考生属性和试题属性,从而实现考生登录注册和随机从题库文件中抽取考试题的功能。但是采用数据库方式更为简单,方法如下:采用JDBC技术,即Java和数据库的连接(Java Database Connection)技术,来连接数据库,在MyEclipse环境下操作,并事先将mysql-connector-java-5.1.6-bin.jar包、jaxen-1.1-beta-7.jar包和dom4j-1.6.1.jar包载入到MyEclipse环境中,否则不能连接成功。复制三个文本文件user.txt、corejava.txt和perties到项目中,把这三个文件放在一个Config文件夹中;然后复制四个java文件到新创建的day2.exam包下:Config.java、EntityContext.java、User.java和Question.java文件。以上工作准备完毕后,按照以下说明来创建数据库:将文本文件UserFile(考生信息)和QuestionFile(试题信息)分别装载到Users和Questions集合中,这个任务通过数据管理类EntityContext来完成,也就是上面所说的“解析UserFile文件和QuestionFile文件到Users集合和questions集合中”;然后把集合对象生成为xml文件:users 生成了user.xml文件,questions生成了Questions.xml文件;把xml文件中的数据导入到数据表中,这事先要做一些准备:1).准备数据库环境:创建表users_mayongfei和表questions,表users_mayongfei用于存放user.xml文件导入的数据,而表questions用于存放Questions_mayongfei.xml文件导入的数据。2).准备java环境:导入ojdbc14_11g.jar包;准备perties文件,放在数据库项目的src目录下;将java文件ConnectionUtils.java放在day2.exam包中。代码有两个类:ImportUserTable类和ImportQuestionTable类。ImportUserTable类有两个方法:importUserTable方法和insertUsers方法。importUserTable方法的功能是读入指定的user.xml文件,增加到数据表users_mayongfei中,insertUsers方法的功能是把users集合中的对象插入到数据表users_mayongfei中;ImportQuestionTable类有两个方法:importQuestionTable方法和insertQuestion方法。importQuestionTable方法的功能是读入指定的Questions.xml文件,增加到数据表Questions_mayongfei中,insertQuestion方法的功能是把Questions集合中的对象插入到数据表Questions_mayongfei中;至此,数据库的设计工作已经完成。表3-1 考生信息表idnamepasswordphoneemail1000宁小娟123415864028376 1001马永飞1234151258097321002张三 1234136000846741003李四 123414986547454 4 在线考试系统主要功能模块4.1 考生登陆模块在第三章系统设计中已经提到,考生登陆界面主要有欢迎窗口界面、登陆窗口界面和主菜单界面三个界面,现在就逐一介绍。4.1.1 欢迎窗口界面欢迎窗口如下图,它的显示借助WelcomeWindow类来实现,具体就是:创建一个窗口,在里面显示一张图片。图4-1 欢迎窗口界面图(显示内容)欢迎窗口的显示需要用到Swing技术,它利用AWT绘图功能,完整的重新绘制了一套控件系统。代码的编写首先要导入javax中的Swing包,Swing包中有JPanel、JLabel、JWindow、JFrame和ImageIcon等对象类,其中JFrame代表有框的窗口,其中必须放置一个面板,JPanel代表空白矩形区域面板,在面板上可以添加控件或是绘制图形。欢迎窗口中图片的加载:Class 提供 getResource 方法, 从package中加载,具体通过以下代码实现:setSize(430, 300); JPanel pane = new JPanel(new BorderLayout(); ImageIcon ico = new ImageIcon( getClass().getResource(welcome.png); JLabel l = new JLabel(ico); pane.add(BorderLayout.CENTER, l); pane.setBorder(new LineBorder(Color.GRAY);setContentPane(pane);代码解释:setSize是用来设置窗口大小,长430,高300,可以自由选择大小;pane是JPanel类的对象,采用相对布局方法BorderLayout管理;getResource 方法获取图片资源,通过package加载,然后ico对象接收图片,JLabel类的l使得ico图像以标签形式显示;pane对象的add方法加载图片到窗口;pane对象的setBorder方法设置图片颜色为灰色。4.1.2 登陆窗口界面没有输入考生编号和密码时的登录界面图:图4-2 登陆窗口界面图 输入考生编号和密码后的登录界面图:图4-3 登陆窗口界面图登录系统的设计是在线考试系统设计中最为核心的一个环节,它涉及到考生的身份验证,事关考试的严肃性。所有具有考试资格的考生信息文件(user.txt)都被载入到登录系统中,因此考生必须输入信息文件(user.txt)当中的正确的考生编号和密码才能顺利的登录考试系统进行考试,这样就确保了考试的安全性。考生登录窗口的设计包括以下几个模块:1).初始化显示界面(绘制全部界面)主要内容有:设置界面标题为“登录考试系统”;设置界面大小,长300,高180;设置窗口框中间的内容面板,生成窗口框中间内容面板;设置默认关闭操作;最重要的一项是添加窗口事件侦听器,即:“关闭”按钮点击后调用ClientContext控制器的exit方法,退出登录界面。添加事件侦听器的代码如下:addWindowListener(new WindowAdapter() /窗口事件侦听器 public void windowClosing(WindowEvent e) /“关闭”按钮点击后调用的事件 clientContext.exit(LoginFrame.this); );2).创建窗口框中间的内容面板先创建一个JPanel对象p,采用相对布局管理器BorderLayout布局内容面板;然后在内容面板中添加JLabel标签“登录系统”,该标签布局在内容面板的上方;添加中心位置面板,将其布局在内容面板的中间位置,该中心位置面板用来放置考生编号面板和考生密码面板,考生编号面板左方添加“编号”标签和“密码”标签,右方添加文本框输入文本考生编号和密码;采用流布局FlowLayout方法,在内容面板下方添加“登录”按钮和“取消”按钮;同时也要添加事件侦听器,在两个按钮被点击的时候执行该事件,“登录”按钮点击的时候,调用控制器ClientContext的登录功能Login方法,“取消”按钮被点击的时候,调用控制器ClientContext的退出功能exit方法。3).为客户端控制器clientContext赋值为clientContext赋值,使clientContext引用的值不再为空,必须依赖的属性值注入方法。代码如下:private ClientContext clientContext;/默认值是nullpublic void s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沧州市人民医院肌力评定技术规范化操作考核
- 2025第二人民医院门诊麻醉技术考核
- 2025年衢州市卫生健康委员会衢州市妇幼保健院招聘编外人员1人模拟试卷及答案详解(全优)
- 邢台市中医院护士配置管理考核
- 沧州市中医院对比剂使用规范考核
- 北京市人民医院放射治疗技术演进与前沿动态综述题
- 邢台市中医院靶向药物治疗管理考核
- 2025第二人民医院老年病科住院医师晋升主治医师考核
- 2025湖南怀化学院高层次人才招聘100人模拟试卷有完整答案详解
- 2025年嘉兴市秀洲区教育体育局所属事业单位公开选聘工作人员2人考前自测高频考点模拟试题(含答案详解)
- 2025年辅警招聘考试试题库及答案(必刷)
- 烟花爆竹经营培训试题及答案
- 2025年医院精神科冲动伤人患者应急预案及演练脚本
- 车位退还协议书
- 手榴弹教学课件
- 工厂临时用工方案(3篇)
- 监理整改措施方案(3篇)
- 景区酒店融资方案(3篇)
- GB/T 9948-2025石化和化工装置用无缝钢管
- 下肢静脉血栓疑难病例护理讨论
- 黑色素瘤病理诊断
评论
0/150
提交评论