通用试卷生成系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计(论文)任务书题目:通用试卷生成系统
一、原始依据(资料)
在各学校开始逐步引入计算机的今天,试卷作为考察教学成果的重要手段之一,一直没有得到较好的改善,试卷的编辑、整理工作占了很大的工作量。
传统的手工出卷过程,存在不少弊端.如出现不必要的重复劳动,造成人力资源及时间上的浪费;缺乏科学的衡量、评价及统一试卷难易度、试卷质量的有效手段;存在自教自考,考前漏题的情况;试卷容易出现错漏缺现象,引起不必要的麻烦。
针对这些情况,我们进行总结分析,开发出了《通用试卷生成系统》。
本系统希望利用计算机强大的数据处理功能,由计算机逐步代替传统的人工出卷,并且规范出卷程序,使出卷工作更加科学化、现代化,使教育工作更上一层楼。
二、设计(论文)内容和要求
1. 设计要求:
在掌握数据库基础理论知识和基本技术及数据库管理程序开发的步骤的基础上,运用Delphi集成开发环境和数据库技术开发出实用、高效的通用试卷自动生成系统。
2. 开发平台:
a)WINDOWS
3. 开发环境:
a)Delphi
4. 论文要求:
a)语言简洁,论述清楚
b) 论文格式符合毕业论文的要求
三、主要参考资料
[1] 张春林等《Delphi7 数据库系统设计与开发》
清华大学出版社 2003.10
[2] 黄明等《Delphi7 信息系统设计与开发实例》
机械工业出版社 2005.3
四、同组设计者
潘玉丹
设计(论文)进度计划表
毕业设计(论文)开题报告
③
摘要
运用可视化Delphi开发出试题自动生成系统.利用其提供的各种面向对象的开发工具, 建立系统应用原型,然后进行需求迭代,不断修正和改进,直到形成满意的可行系统。
该系统结构良好、使用方便,题库数据输入简单,系统能够实现人工选题和随机抽题两大功能. 包括后台数据库的建立、维护以及前端应用程序的开发两个方面。
该系统有安全的用户登录模块、方便快捷的浏览界面、易于操作的功能模块。
本文的分析基于知识点的试题库结构基础上,阐述以知识点难度系数和题型为主要控制参数的组卷算法的建立与实现方法。
该系统的运用不仅提高了教师的工作效率,而且可以实现真正意义上通用性。
关键词:通用试卷;知识点;自动组卷; Delphi; SQL Server;
this paper describes the design of the structure of the test question database and the method of the foundation realization of arithmetic of organizing examination paper with the main controls parameters of content of exam and coefficient of difficulty and the structure of test question
the examination base is developed by the use of visual tool DELPHI7.0 and can be used in wide range of applications
This program is about a manage system in miniature of house resource. It adopt the Client/Server model including backstage supporter foundation and maintain and front two respects of development of application program of data base mainly. Through so analyse the situationing, I use DELPHI 6.0 developing instruments and utilize its various kinds of developing instruments which face the target offered, it set up and use by prototype systematically within short time at first, then, Carry on demand change and take the place of, revise and improve constantly, until forming the user satisfied feasible system to initial prototype system.This system has secure user entry, convenient scanning and easy using query 、append and so on. I believe it will meet the corporation’s satisfaction.
关键词:(小四号、黑体、左顶格)
(内容采用小四号、宋体、接排,各关键词之间用分号隔开)
(模板一)
ABSTRACT
(采用三号字、Times New Roman字体、加粗、居中、与内容间空一行)
(内容采用小四号Times New Roman字体)
Key words:(小四号、Times New Roman字体、加粗、左顶格)
(内容采用小四号、Times New Roman字体、接排、各关键词之间用分号和1个
空格隔开)
(模板二)
目录
(三号、黑体、居中、“目录”两字间空四格、与正文间空一行)
1(空一格)☆☆☆☆☆(小三号、黑体) (1)
1 概述
2 数据库理论基础和开发工具
2.1 数据库理论基础
2.1.1 数据库管理系统
2.1.2 数据库系统设计
2.1.3 数据库设计范式分析
2.2 数据库开发工具
2.2.1 Delphi 7.0具体特点
2.2.2 基本数据库组件
2.2.3 Delphi 7.0 一些控件
2.3 在Delphi中通过BDO 连接数据库
2.3.1 BDE概述
2.3.2 BDE原生对象
2.3.3 BDE组件概要介绍
2.4 SQL语言在Delphi中的应用
2.5 本章小结
3 通用试卷生成系统的定义3.1 问题的定义
3.2 可行性分析
3.3 需求分析
3.3.1 题库管理
3.3.2 试卷管理
3.3.3 权限管理
4 系统的框架分析和设计
4.1 系统总体结构设计
4.2 试题设计流程
4.3 数据模块窗体及BDE的设置4.4 前台用户部分模块设计
4.4.1 用户登录窗口设计
4.4.2 主界面设计
4.4.3 权限管理
4.5 数据库后台设计
4.5.1 数据库表的设计思路
4.5.2 数据库部分表的列举
4.6 试卷生成
4.7 自动生成试卷向导模块设计4.8 算法概要
4.8.1 随机策略
4.8.2 补偿策略
4.8.3 算法描述
4.9 试卷预览
4.10 本章小节
5 总结
参考文献
参考文献…………………………………多少页
(模板三)
1(空一格)☆☆☆☆☆(小三号、黑体、左顶格)
1 概述
/////////////未改
随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
在计算机飞速发展的今天,简化试卷的手工操作势必所然,。
所以如何设计好仓库管理系统,尽可能地减少仓库管理的重复性和低效性就成为当前最为重要的问题。
图书仓库管理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分。
另外,员工信息和供应商信息管理也是仓库管理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加实用。
通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今图书仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。
2 数据库理论基础和开发工具
2.1 数据库理论基础
数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。
数据库技术能使Internet应用超越具有早期应用特点的简单的发布。
同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。
这些技术没有脱离经典数据库技术的要求。
它们只是加重了数据库技术的重要性。
数据库的设计和开发及包括艺术有包括工程。
理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。
把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。
数据库的目的是帮助人们跟踪事务。
经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。
最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。
数据库也被越来越多地应用于
生成和维护多媒体应用程序上。
2.1.1 数据库管系统
数据管理系统(DBMS)是用描述、管理和维护数据库的程序系统,是数据库系统的核心组成部分。
它建立在操作系统的基础上,对数据库进行统一的管理和控制。
其主要功能有:
1)描述数据库:描述数据库的逻辑结构、存储结构、语义信息和保密要求等。
2)管理数据库:控制整个数据库系统的运行,控制用户的并发性访问,检验数据的安全、保密与完整性,执行数据的检索、插入、
删除、修改等操作。
3)维护数据库:控制数据库初始数据的装入,记录日志,监视数据库性能,修改更新数据库,重新组织数据库,恢复出现故障的数
据库。
4)数据通信:组织数据的传输。
2.1.2 数据库系统设计
在软件需求分析阶段,搞清楚了软件“做什么”的问题,形成了目标系统的逻辑模型。
现在我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求。
首先,我们需要描述的是系统的总的体系结构
(1)数据库模块设计:系统的概要设计中最重要的就是系统模块
化设计。
模块化是指解决一个复杂问题时自项向下逐层把软
件系统划分成若干个模块的过程。
每个模块完成一个特定的
功能,所有的模块按某种方法组织起来,成为一个整体,完
成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高
可读性、可维护性,但模块的划分不能是任意的,应尽量保
持其独立性。
也就是说,每个模块只完成系统要求的独立的
子功能,并且与其他模块的联系最少且接口简单,即尽量做
到高内聚低耦合,提高模块的独立性,为设计高质量的软件
结构奠定基础。
(2)数据表设计:数据表的设计是指设计数据库中表的结构,
数据表的逻辑结构包括:属性名称,类型、表示形式、缺省
值、是否关键字、可否为空等。
关系型数据库要尽量按关系
规范化要求进行数据库设计,但为了使效率高,规范化程度
应用环境和条件来决定。
数据表设计不仅要满足数据存储的
要求,还要增加一些如反映有关信息、操作责任、中间数据
的字段或临时数据表。
(3)存储设备和存储空间组织:确定数据的存放地点、存储路径、存储设备等,备份方案,对多版本如何保证一致性和数据的
完整性。
(4)数据使用权限设置:针对用户的不同使用要求,确定数据的
用户使用权限,确保数据完全。
2.1.3 数据库设计范式分析
建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。
一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。
我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。
但如果直接按照这种方式建库显然还不能算最佳。
对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。
在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(data element),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。
规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。
在规范化理论中表是二维的,它有如下四个性质:
在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。
表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同的合同记录)。
在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。
在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。
在这五种范式中,一般只用前三种,对于常用系统就足够了。
而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(first normal form,简称1st NF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。
这个去掉重复项的过程就称之为规范化处理。
在本文所讨论的开发方法里,1st NF实际上是没有什么意义的。
因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1st NF。
第二范式(second normal form,简称2nd NF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primary key),其它数据元素与主关键字一一对应。
例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。
通常我们称这种关系为函数依赖(functional depEndence)关系。
即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(third normal form,简称3rd NF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。
也就是说对于一个满足了2nd NF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
2.2 数据库开发工具
Delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。
在Delphi中,每一个类的祖先都是Tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。
这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。
实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。
2.2.1 Delphi 7.0具体特点。
2.2.2 基本数据库组件
用Delphi 7.0 开发数据库应用,重点是和各种数据库组件打交道,数据集是一组离散的数据记录的集合。
在Delphi中,数据集有3种表现形式:表,查询,存储过程;3种形式的数据集分别用Ttable,Tquery,TStoredProc来操纵。
而Ttable,Tquery,TStoredProc的直接上级是TDBDataSet,TDBDataSet而是从TDBEDataSet派生的,而TDBEDataSet又是从TDataSet派生的。
这些数据集之间的继承关系如。
示
--------------数据集的关系
TdataSouce对象用于在DataSet对象(包括Ttable,Tquery,TStoredProc)和数据感知组件之间提供一个连接的纽带,以便在窗体上显示数据库中的数据,在数据库中导航定位与编辑数据集中的数据。
数据感知组件负责数据库的显示,并把用户对数据的修改传回。
这里面的绝大多数组件,如DBEdit,DBText,DBMemo,DBComboBox等的功能和对应的非数据感知组件相同。
结合自己的系统,我使用了以下的数据库应用的逻辑三层的结构:如下图所示:。
逻辑三层结构
2.2.3 Delphi 7.0 的一些控件
(1)数据控制类DataControl
(2)数据访问类DataAccess
2.3 在Delphi中通过BDE连接数据库
2.3.1 BDE 概述
2.3.2 BDE原生对象
2.3.3 BDE 组件概要介绍。
(很多个组件的介绍与功能Table.query.stro,dateset,connrct,command等)
2.4 SQL 语言在Delphi中的运用
在Delphi中使用SQL语言非常方便,一般来说,都是通过Tquery组件来使用SQL语言的。
可以在TQuery组件的SQL属性中设置SQL语句。
设计程序时,在该组件的属性对话框中选择SQL属性,单击带省略号的按钮,就可以打开String List Editor对话框,然后我们就可以在对话框中添加SQL语句。
还可以使用Delphi的SQL Builder来自动生成SQL语句,这样可以避免手工编写SQL而可能造成的语法错误。
静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。
动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句:
Select * From Students Where StudentCode =: StudentCode;
其中的变量StudentCode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条SQL语句才能正确执行,每次运行应用程序时可以为该参数变量赋
予不同的值。
为参数赋值有三种方法:
①根据参数在SQL语句中出现的顺序,设置TQuery部件的Params属性值为参数赋值。
②直接根据SQL语句中各参数的名字,调用ParamByName方法来为各参数赋值。
③将TQuery部件的DataSource属性设置为另一个数据源,这样将另一个数据源中与当前TQuery部件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。
利用这种方法也能实现所谓的连接查询,创建主要—明细型数据库应用。
在程序运行过程中,要想设置TQuery部件的SQL属性,必须首先调用Close方法,关闭TQuery部件,然后再调用Clear方法清除SQL属性中现存的SQL命令语句,最后再调用Add方法为SQL属性设置新的SQL命令语句。
例如:
Query1.Close {关闭Query1)
Query1.SQL.Clear {清除SQL属性中的SQL命令语句}
Query1.SQL.Add('Select * From Students');
Query1.SQL.Add(' Where Name ="Lucy" ');
在为TQuery部件设置SQL属性时调用Close方法总是很安全的,如果TQuery部件已经被关闭了,调用Close方法时不会产生任何影响。
在应用程序中为SQL属性设置新的SQL 命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,如果不调用Clear 方法,便调用Add方法向SQL属性中设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。
在这里要特别注意的,一般情况下TQuery部件的SQL属性只能包含一条完整的SQL语句,它不允许被设置成多条SQL语句。
当然有些数据库服务器也支持在TQuery部件的SQL属性中设置多条SQL语句,只要数据库服务器允许这样,我们在编程时可以为SQL 属性设置多条SQL语句。
在为TQuery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,可以有多种方式来执行SQL程序。
在设计过程中,设置完TQuery部件的SQL属性之后将其Active属性的值置为True,这样便可以执行SQL属性中的SQL程序,如果应用中有与TQuery部件相连的数据浏览部件( 如TDDGrid TDBEdit等)那么在这些数据浏览部件中会显示SQL程序的执行结果。
在应用程序运行过程中,通过程序调用TQuery部件的Open方法或ExecSQL 方法可以执行其SQL属性中的SQL程序。
Open方法和ExecSQL方法是不一样的。
Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集,而ExecSQL方法还可以用来执行其它常用的SQL语句(如INSERT, UPDATE, DELETE等命令),例如:
Query1.Open (这样会返回一个查询结果集)
如果调用Open方法,而没有查询结果时,会出错。
此时应该调用ExecSQL 方法来代替Open 方法。
如:
Query1.ExecSQL (没有返回结果)
当然在设计应用程序时,程序设计人员是无法确定TQuery部件中的SQL 语句是否会返回一个查询结果的。
对于这种情况应当用Try…Except模块来设计程序。
在Try 部分调用Open 方法,而在Except部分调用ExceSQL方法,这样才能保证程序的正确运行。
Delphi中用ADOQuery来使用SQL语句同样十分方便。
在ADOQuery组件中首先通过ConnectionString属性值来联接数据源,然后就通过双击SQL…属性值来写入SQL语句。
在Delphi中调用数据库,就可以调用ADOQuery组件,通过修改其中的SQL…属性中的SQL 语句来实现对数据库的各项操作。
值得注意的是,ADOQuery组件只有在激活的情况下才可以被正确地使用,这样就提出了一个问题,也就是说,在每次修改ADOQuery组件的SQL…属性时都必须先行进行关闭,待清除掉SQL…中所有的SQL语句后才可以添加新的SQL语句。
而且,在每一次修改完成以后,还应该记得重新将ADOQuery激活。
其它的使用方法与TTQuery有许多的相似之处。
2.5 本章小节
本章主要介绍了数据库的理论基础、数据库的开发工具Delphi和SQL 语句在Delphi中的使用方法,数据库理论基础分析了数据库的设计过程中要遵守的规则和设计方法。
数据库开发工具主要介绍了Delphi 的特点和Delphi的DBE控件组,另外还简要介绍了SQL 在Delphi 中的运用。
3 通用试卷生成系统的定义
3.1 问题的定义
随着教育教学改革的不断深入,/教考分离!试卷规范化!
标准化的呼声越来越高"如何实现之是许多教育工作者潜心
探讨的问题"而伴随着国家对教育发展投入的力度不断加大
和全社会信息化水平的不断提高,各级各类学校基本具备了实
现现代化信息管理的物质基础"因此,采用计算机信息管理系
统来解决/教考分离!试卷规范化!标准化的问题是一种行之
有效的方法"它不仅可以减轻人员的重复劳动,提高工作效
率,更是各学校实现考务自动化,管理数字化!信息化的标志"
基于上述原因,本文给出了一个通用试卷生成系统的设计
方案"
其系统应包含以下特点与功能:
1、用SQL Server数据库,NT4.0或者Windows98操作系统以上。
题
库可以自由维护、扩充,题库大小只受物理限制的存储容量。
2、限分明的管理操作系统,支持按操作者及题库权限进行操作,确
保题库的公共性与私有性。
3、题支持单项选择题,判断题,填空题,编程题等题型,用户可以
自由设置题型,试题内容包括内容,标准答案等属性,提供可以
自由设置的试卷分类;多种试卷生成方式,可以设定参数自动生
成或者手工选择试题,题库中自动抽取指定数量的试题或手工选
取试题,也可以从某题库中每个题型各抽取多少分的试题,或者
从多个题库中分别抽取指定数量的试题合成试卷,试卷生成的方
式可以带答案、解答。
4、义的试卷可以重新编辑、排序、删除、调整,可以自动生成一份
文档,也可以把现有的文档资料存到系统里,内容不受限制。
3.2 可行性分析
通用试卷生成系统是一个具有题库管理功能和出卷功能系统。
可以将该系统分为题库管理系统和出卷系统两个模块来做,其中出卷系统又分为手工出卷和自动出卷两个子模块。
题库管理模块应具有:查看题库,修改题库、新增题目、删除题目、章节管理、题型管理的功能。
手工出卷让用户自己选择试题,当用户选择的试题存在重复(例如,同一道题选择了两次)或者有内容冲突(例如,同一知识点,在选择题中出现,又在填空题中出现)时,要能提示用户。
自动出卷则是通过用户选择的生成试卷的条件,随机地选择试题,自动完成试卷的生成。
这种试题库系统的基本思想是按照“知识点”来构建试卷,主要是思路是依据教学大纲的要求,以课程的主干内容为主线,先把教学内容细致分解为一个个知识点,然后按大纲对各个知识点的要求掌握的层次,与题型、题量、难易度及各知识点间的馆包容性结合起来,作为该试题库系统构建试题的基本原则,以便计算机自动生成每份试卷、在考查点的分布上具有较强的科学性。
要实现基于知识点的试题库系统的试卷建构,首先必须研究从知识点角度对试题如何进行分类,并结合试题的类型赋予各种特征参数,使试题库编程符合科学化与规范化的要求。
因此,参数的设置是否合理,对能否体现基于知识点建构试卷的思想.所建构试卷的质量,编程的工作量及运行效率都是直观重要的。
试卷生成模块是整个题库管理系统的核心。
本系统的组卷是采用交互方式,即用户在输入各种要求后,系统会自动生成一份符合要求的试卷。
组卷过程中系统会向用户依次询问以下信息:
(1)要生成的试卷满分分数
(2)是否考所有章的内容,若只是考部分章内容,还应输入所考章的章号;。