java大作业

  • 格式:doc
  • 大小:44.50 KB
  • 文档页数:4

首都师范大学信息工程学院硕士研究生《面向对象方法学》课程实践环节实验题目:联机测试系统基本要求:采用面向对象方法和Java 语言(或c++)开发一个基于GUI 交互方式的联机测试系统OLTS(Online Testing System)。

该系统维护着一个试题库(ItemLibrary),库中的试题(Item)至少包括单项选择题(SingleChoiceItem )、判断题(TrueFalseItem )和填空题(BlankFillItem)等3 种题型。

OLTS 启动后,随机地从试题库中抽取(pickup)一道试题,将试题显示在一个可滚动的屏幕区域供用户浏览(browse),并允许用户在GUI 界面中解答试题后提交(submit)答案(answer),然后系统自动批改(correct)用户的答案是否与标准答案(standardAnswer)相同;如此循环,直至用户选择退出系统。

退出系统前,用户随时可以查看自己本次累计的测试成绩(score)。

【功能需求】本实验要求设计与实现的OLTS 至少应支持如下功能:功能1、试题库维护试题库中的每一道试题都有一个整数类型的标识(id),作为操纵试题的惟一句柄。

每一试题都至少具有试题难度(difficulty)、预期答题时间(time)、题目内容(content)、参考答案(answer)、所占分值(score)等属性。

终端用户(教师)可以添加(add)新的试题、修改(update)已有的试题、删除(remove)某一道试题、根据试题的标识取一道试题(getItemById )、返回某一难度的所有试题(getItemByDifficulty)等。

在完成本实验时,可为试题增加其他的属性(例如覆盖知识点、区分度、作者、创建日期、最后更新日期等),或为试题库添加其他的功能(例如组合条件查询试题、按指定条件自动组卷等)。

设计时还需考虑日后可能增加一些新的题型,例如多项选择题(MultipleChoiceItem)、改错题(ErrorIdentificationItem)、程序填空题(ProgramClozeItem)等客观题型,甚至新增简答题(ShortAnswerItem)、应用题(EssayItem)等主观题型。

功能2、联机测试终端用户(学生)选择开始联机测试后,进入一个循环,依次完成由OLTS 从试题库中随机抽取的试题,直至用户选择退出OLTS。

每一道试题的测试过程如下:OLTS 从试题库中随机抽取一道试题后,将试题显示在一个可滚动窗口中供用户浏览,同时为不同类型的试题提供合适的答题方式,例如:标准型的单项选择题适合采用4 个广播按钮(Radio Button);多项选择题适合采用n 个检查框(CheckBox);填空题适合采用1 个文本字段(Text Field);判断题既可采用广播按钮,也可采用检查框。

终端用户答题并提交后,OLTS 依据参考答案判断结果是否正确,并汇总统计用户本次测试的成绩以供用户随时查询。

设计OLTS 时,可考虑随机在试题库中抽取试题,也可考虑先指定某一难度,然后围绕该难度的试题随机抽取。

学有余力的同学还可考虑根据试题规定的预期完成时间对用户进行提醒或限制(若试题的预期时间设置为0,表示无须提醒或无须限制)。

功能3、对象持久性OLTS 必须以关系数据库(RDB)为持久性(persistence)基础设施,实现试题库相关对象的持久性。

每次终端用户的联机测试记录则允许是瞬时的(transient)。

本实验指定使用Microsoft Access 作为支持持久性的RDB,Java 程序通过JDBC/ODBC 桥接驱动程序访问数据库。

每一位同学都必须在实验报告的安装文档install.doc 中描述如何安装和配置Access 数据库(其中须包含安装与配置的画面截图)。

请小心设计OLTS 的“对象-关系映射”(O/R Mapping),并请务必在你的设计文档design.doc 中详细描述你的O/R 映射方案。

功能4、图形用户界面本实验中,各位同学应在“以用户为中心”的思想指导下设计OLTS 的人机接口,以用户友好(User Friendly)为目标,创造性地自由设计各自的GUI 界面。

但这些GUI 界面必须至少运用到以下图形控件:(1) 同时支持层叠式(Cascading)下拉式菜单和工具条(Toolbar)按钮两种方式选择开始测试、统计分数、帮助信息等功能;(2) 支持在可滚动窗口中浏览试题;(3) 选择合适的交互形式支持用户答题。

学有余力的同学还可考虑如何支持上下文敏感的(Context-Sensitive)联机帮助(Online Help)系统。

其他需求本实验要求实现系统用户管理与权限控制。

启动OLTS 后,终端用户需登录方可进入系统;进入系统后教师用户既可以维护试题库,也可以执行联机测试。

学生用户只能联机测试。

每个教师或者学生只能看到和自己相关的科目。

如果数据库模式设计相同,同学之间可共享用于OLTS 调试或测试的试题库数据库(除此以外的文档和源程序禁止复制,否则视同抄袭!),不过你必须在实验室报告中注明是谁建立了这个数据库,并且对建立数据库的同学表示致谢。

一、提交实验报告每一位同学都须独立地完成本实验,并提交实验报告。

注意你的实验报告不应只包含源程序代码,还应包括一个面向对象程序的设计文档、编译与运行程序的脚本、各种测试用例等,至少还要包括一个readme.txt 文件描述你自己的姓名、学号、email、电话等基本信息。

你的实验结果全部存放在一个名为“学号+姓名”(中间不要任何空格)的文件夹中,并在指定时间提交(提交时间另行通知)。

每一份实验报告提交结果应按如下方式组织:1) 在子目录src 中存放源代码,包括:系统主程序的源代码。

程序用到的其他源码(取决于你的设计),均存放于程序包olts 中,其下可设计其他的子程序包。

2) 在子目录bin 中存放由源代码编译出来的可执行程序(或Java 字节码)。

3) 在工作目录的根目录中直接存放编译、运行与调试有关文件,包括:编译所有源代码的脚本文件(批命令)build.bat。

运行系统的脚本文件OLT.bat。

其他用于调试、测试程序的脚本、配置文件、测试用例等(测试用例众多时可安排在单独的子目录中)。

4) 在工作目录的根目录中直接存放其他文档,包括:描述你的面向对象用例,分析,设计结果的Word 文档design.doc。

描述程序安装与数据库配置过程(含你在安装与配置时的截图画面)的Word文档install.doc。

描述程序运行测试用例的截图与解释的Word 文档test.doc。

关于实验完成人基本信息、提交结果描述、实验心得等的补充说明文档readme.txt。

如果在本实验的堂上交流时你被随机地抽点到,建议你按以下次序展示你的实验结果:(1) 展示你的测试用例演示程序的运行效果截图。

(2) 介绍自己对问题的理解以及程序的设计,要求使用UML 展示你的设计结果!(3) 展示源程序清单。

(4) 接受老师和其他同学的提问。

二、实验结果评价任课教师将将从以下多个角度评价你的实验结果,因而它们也是你完成该实验需要重点注意的地方:(1) 源程序中标识符命名、程序版面、程序注释等影响程序可理解性的要素,以及是否能熟练地运用注释。

本实验要求至少遵循Sun 公司制订的Java编码规范(参见/docs/codeconv/),完成后的代码必须使用JDK附带的文档工具javadoc 根据源程序中的文档化注释生成相应的文档(可根据自己的英文水平自由选择使用中文或英文书写文档化注释)。

(使用c++者可以套用本条规定)(2) 程序结构的设计是否合理:从大的方面看,程序体系结构的层次(表示层、业务逻辑层、持久层等)划分清晰;从小的方面看,程序中对类或方法的抽象符合面向对象与结构化程序设计思想,程序的接口(包括对象接口和方法接口)的设计应合理。

(3) 为应付未来的大型程序设计任务,在实验中是否能正确地运用package 机制(模块)组织你的程序。

(4) 是否在人机交互设计中体现了以用户为中心的思想,并且是否能正确地运用图形界面组件将这种思想具体化。

(5) 是否正确设计了有效的O/R 映射方案,并且运用JDBC(或ODBC)以合适的方式实现了这一持久性方案。

(6) 为尽可能提高程序的正确性,测试用例的选择是否完善、有无其他措施有助于提高程序的正确性。

(7) 源程序中对异常的处理是否充分,可执行程序的健壮性如何(在异常情况下工作的能力)。

(8) 程序对未来变化的适应性如何,譬如是否容易修改或不必修改就应付可能发生的变化(譬如在试题库中增加对新题型的支持),是否方便在不同的环境下复用程序或程序中的构件。

(9) 作为一个完整的实验结果,文档和源程序文件的组织是合理。

(10) 其他可能影响程序质量的要素。

如果实验结果未达到以下要求,将不会取得80%分或以上的成绩:程序编写规范(标识符命名、空白的运用、文档化注释等)。

程序采用典型的3 层(3-tier)结构,其中的表示层(Presentation Tier)、业务逻辑层(Business Logic Tier)和数据层(Data Tier)之间划分清晰。

正确设计了对象的抽象(对象职责分配)、对象类之间的关系。

实验报告的提交内容完整,组织结构清晰。

程序可以运行,并通过简单的测试。

如果实验结果想取得100%分的成绩,至少需在以下几方面有3 个或以上的做得比较出色:在程序中使用了面向对象程序多态性(polymorphysm)的特点和设计模式的思想,程序具有表示独立性。

程序的人机交互设计思想合理。

程序的O/R 设计方案合理,并且能运用JDBC 正确地实现该方案。

正确运用异常处理机制分离正常与异常代码,提高程序在异常条件下的健壮性。

至少正确地运用了一个设计模式(design pattern)去解决程序面临的特定问题,并且在设计文档design.doc 中描述了运用该设计模式的思路。

其他重要的评价依据!本实验允许同学之间共享试题库的数据库。

如果你在实验过程中使用了他人建立的数据库,而在实验室报告中未注明是谁建立了这个数据库,并且对建立数据库的同学表示致谢,则会因缺少一颗感恩的心而被扣分。

用于描述OLTS 测试用例运行的技术文档test.doc 必须针对每一测试用例嵌入程序运行画面的截图,否则将被视作程序无法正常而被扣分。