1.3研究方案 1)系统开发平台
本系统是在windows下开发,考虑到使用B/S结构时当网络不稳定会造成响应速度慢,使用C/S结构完成的在线考试系统,它不仅可满足用户的个性化设计,而且事务处理能力强大。采用MVC架构进行分层开发,使用Swing技术完成对界面的开发,包括登录界面、菜单界面、考试界面等等。
2)研究方法
本课题的研究方法是采用MVC分层设计模式,即“模型—视图表示—控制器”的思路来完成系统实现的。首先使用Swing技术完成对界面的开发,包括登录界面、菜单界面、考试界面等,然后对整个系统进行逐个模块开发工作;获取当前窗口的坐标,用一个Point实例来保存其x、y坐标,添加一个任务来周期性改变窗口坐标模拟晃动效果;将试题存储在questions集合中,从集合的随机下标中获取这个元素,同时将刚获取完的元素从集合中删除防止本套试题中出现相同的题目;用计时器Timer来进行考试的倒计时,时间到了之后强行交卷;将Question中的正确答案集合和用户答案集合进行equals然后保存用户正确题目的数量分数来得出成绩;编写一个共通的配置文件来解析user.txt文件以及question.txt文件信息,然后分别将其转化为User实例和Question集合并对其进行操作。
2.系统分析
2.1 需求分析
软件的需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素,即就是发现、求精、建摸、规格说明和复审的过程。为了发现用户的真正需求,首先应该从宏观角度调查、分析用户所面临的问题。也就是说,需求分析的第一步是尽可能了解当前用户的情况和需要解决的问题。
2.1.1 功能需求分析
本系统的用户可分为管理员和普通用户两类。
系统会自动判断用户的登录类型,根据用户的登录类型判断是普通用户还是管理员登录。
如果是管理员登录,系统会自动进入管理员界面,管理员可以对试题和用户进行管理,可以对试题库中试题进行修改和删除,添加试题等,同样也可以对用户进行相同管理。
如果是普通用户登录,即学生登录,会自动跳转到考试界面,学生可以根据考试界面的提示信息来进行答题,考生可以查看考试规则,选择开始答题,考生开始答题后计时器开始计时,考试根据随机出现的不重复题目来进行考试,当考试快要结束的时候,计时器会变动颜色来提示考生时间快要结束,时间结束之前考生可以自愿交卷,当时间结束之后,系统会提示考生考试时间已经结束,然后强制进行自动交卷,考试结束后系统会根据已有的标准答案进行在线判卷,考生可以立刻知道考试成绩,并可以查看考试成绩,当考生结束考试之后,系统不会再让考生重新考试。
2.1.2 数据存储分析
针对一般的系统可能会考虑选择用什么数据库来存储信息,例如本系统中,需要保存用户的信息,更需要保存试题的信息,由于考试系统需要保存大量的考试试题,因此我考虑用txt文件来存储相应的试题信息以及用户信息。
这种存储方式既便于操作又便于维护,但考虑到读写方式,不可以盲目存储,用共通的配置文件来解析用户文件以及试题文件信息,然后分别将其转化为对应的用户实例和试题集合并对其进行操作。
2.2 可行性分析
实用性原则:传统考试的弊端日益增多,在线考试也随之而产生,在线考试已渐渐被人们所接受,并有逐渐代替传统考试的趋势。考生通过用户名、口令进行登录,试卷可以根据题库中的内容即时生成,可避免考试前的压题,而且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率,在线考试还能充分的利用学校的现有资源,大大减轻教师的工作量,把老师从出卷、阅卷等一些繁重中做中解脱出来。
经济性原则:随着网络技术的发展,计算机软件技术的提高,硬件的性价比
也在不断提高,建立适合在线考试系统用户自身需求的平台,提供广泛的涵盖用户多种需求的功能,数据处理方式灵活满足需求,并确保其较好的拓展性和开放性;与此做这些事的同时,其花费与传统的考试过程相比,大大节省了人力物力;同时能够自主的对系统中大部分内容作更新、修改操作,节省了老师学生的宝贵时间,提高了信息更新、传播效率。
扩充性原则:系统的整体规划及框架设计是具可扩充性的,系统在设计开发中充分考虑了移植、扩展的问题。这是每个系统都要考虑的重要问题,本系统是基于Java开发的,众所周知,Java平台将面向对象系统扩展成包括程序和数据的网络计算机(CN),而这个平台的核心就是java平台成为万能开发平台,实现了Java程序“编写一次,到处运行”。本系统用分层的设计方法设计,细化模块可以很好的解决将来系统扩展中不改变基本架构的同时增加功能。前台页面的设计能保证系统在更新后不会破坏系统的整体结构。
安全性原则:Java设计时对系统的安全,特别是网络安全做了周密的考虑,通过字节验证、内存调用方式、资源使用权限等进行多次的安全管理。Java被认为是在任何系统上最安全的应用程序之一。由于Java垃圾收集器会做自动的垃圾收集(Garbage Collection),这里的垃圾指一些不会被再使用的对象,所以程序设计者不需费心,内存会被自动地管理,Java本身提供了许多面向对象的异常(Exccption)处理,所以程序在执行时期所发生的错误,都可以由程序自己来处理。
2.3 技术分析
本课题采用C/S开发模式,运用java语言J2SE版本开发,充分利用java语言的面向对象特点及其跨平台性,采用MVC分层设计模式,即“模型—视图表示—控制器”的思路来完成系统实现的。
Java平台是一种纯软件平台,它有三个版本Java SE、JavaEE、Java ME。 Java SE(Java Platform,Standard Edition)这个版本以前叫做J2SE,后来版本号从1.4直接跳到5.0,其实也就是1.5,所以就叫成Java SE 5.0。目前Java开发人员使用较多的版本是5.0,当然还有Java SE 6.0这个更新的版本。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java
应用程序。Java SE还包含了支持Java Web服务开发的类,并为Java EE这个版本提供基础。
一、Java语言与其他语言比较,具有以下特点: (1) 简单性
Java继承了C/C++的语法,丢弃了其中不常用又容易引起混淆的功能,特别是非面向对象的内容,取消了C语言的结构、指针、#define语句、多重继承、全局变量和函数、GOTO语句、操作符重载、自动类型转换等等。
(2) 面向对象
Java是一种纯面向对象的语言,具有封装、继承和多态的特性,无全局变量或函数,可以被用于面向对象这种现代软件工程。
(3) 分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URI,打开并访问网络上的对象,象本地一样。
(4) 解释型
Java写成的源代码需要被编译成高阶的字节码,它们与机器架构无关。然后,这种字节码在任何Java的运行环境中由Java虚拟机解释执行,保证了Java的与平台无关性和可移植性。解释执行与及时编译技术(JIT)的完美结合,提供了相当高的运算性能。
(5) 多态的支持
Java 是一种非常注重对象形态转换的语言,所以在编译时期就会做形态转换检查,在执行时期,Java也会做一些形态上的检查。
(6) 垃圾收集和异常处理
由于Java垃圾收集器会做自动的垃圾收集(Garbage Collection),这里的垃圾指一些不会被再使用的对象,所以程序设计者不需费心,内存会被自动地