毕业设计(论文)-电路分析的试卷自动生成系统设计.doc_第1页
毕业设计(论文)-电路分析的试卷自动生成系统设计.doc_第2页
毕业设计(论文)-电路分析的试卷自动生成系统设计.doc_第3页
毕业设计(论文)-电路分析的试卷自动生成系统设计.doc_第4页
毕业设计(论文)-电路分析的试卷自动生成系统设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

电路分析的试卷自动生成系统电路分析的试卷自动生成系统 摘要摘要 现在很多学校都推行“教考分离” ,普遍采用的方法是同学科教师之间交换 出卷。不过,传统的手工出卷方式存在很多弊端:题目录入在很大程度上属于 重复劳动,试题缺乏科学的评价体系,难易度不易把握等。论文就为大家介绍 一款试卷生成软件,平时由各科任课教师利用它充实题库,然后由教务部门进 行汇总,需要组织考试时利用软件的自动出卷功能从题库中抽取相应年级、难 度的试题,从而实现真正意义上的“教考分离” 。论文对“试卷生成系统”的开 发过程进行了详细的阐述,并提出了解决该问题的策略,该系统虽然不可能完 全克服其缺点,但现阶段对教师出试卷方面进行了充分的研究和探索,应尽量 地提高其性能,使计算机辅助教学更上一个台阶。 关键字关键字: 题库;录入;试卷生成 电路分析的试卷自动生成系统 ii thethe systemsystem ofof testtest paperpaper automaticautomatic creatingcreating ofof circuitcircuit analysisanalysis abstractabstract now many schools pursue “teaching and examination separated “.the method generally adopted is to exchange the paper between teachers of same discipline. however, tradition mode of setting paper has many drawbacks such as: the topic inputting based on repeated work, the examination questions lack the scientific appraisal system, difficulty grade is not easy to hold, etc. this text recommend for everybody one paper-create software, teachers of different discipline should utilize it enrich subject storage at ordinary times, and then is it gathered by educational administration department. when need to have an examination, system utilizing software function of auto paper-create collect corresponding grade paper subjects, thus realize real “teaching and examination separated “. this text expound the development course of“ the paper paper-create system “and bring forward the solve method of the problem, although this system can not overcome all shortcomings, it do plenty research work of “paper-create system”at present stage, we must do our best to improve its performance and make computer-assisted go up a step. key words: subject storage; inputting; paper-create 电路分析的试卷自动生成系统 iii 目录目录 第 1 章 绪论 1 1.1 研究背景 1 1.2 问题提出及研究意义 1 第 2 章 系统设计 2 2.1 系统完成的功能 .2 22 系统构架 2 第 3 章 系统设计 3 3.1 开发工具的选取 .3 3.1.1 delphi 5.0 概述 4 3.1.2 delphi 5.0 的特性 4 3.1.3 数据库连接方式选择.5 3.2 总体设计思想 .6 3.4.3 建立数据查询窗体13 3.4.4 数据库的动态链接 14 35 系统功能的实现 .15 3.5.1 图形装入 15 3.5.2 出错的捕获与控制 16 3.5.3 自动选题算法 16 3.5.4 试卷及答卷的组装 17 36 制作系统安装程序.17 结束语 .19 谢辞 .20 参考文献 .21 电路分析的试卷自动生成系统 1 第第 1 1 章章 绪论绪论 1.11.1 研究背景研究背景 高校教务管理工作中一项非常重要的工作就是考试管理工作,每学期各专业考试, 从组织出卷到试卷的印制及试卷的管理等工作非常繁琐且工作量很大,这种组织管理方 式不仅工作任务繁重而且试卷的标准化程度、难易程度、题量大小等各方面难以控制, 难以形成有效的试题库,不利于充分发挥历年来的优秀试题及试卷的作用,给试题和试 卷的管理带来很多问题和困难。鉴于这种情况,利用计算机进行试卷的自动生成并逐步 积累形成有效的试题库,对试题和试卷的管理将变的高效而便捷,对提高工作效率,使 试卷管理逐步走向正规化自动化将起到十分重要的作用。 1.2 问题提出及研究意义问题提出及研究意义 一般情况教师想出一份试卷,要么到庞大的题库里一道道的把题找出来,或是从几 本相关的书里把题一道一道挑出来。这样即费时又费力,而且很难保证试题的覆盖面和 把握好试卷的难度。正是为了能够帮助老师轻松的出一份高质量的试卷而开发了本软件。 为了达到预期的目标我们最终选择了 microsoft office word 做为本软件的终端输出。而一 个功能完善的试卷自动生成系统起码应该具有四部分的内容:题库维护,试卷生成,在 线考试以及考试分析。该系统是一个比较复杂庞大的系统,涉及的内容很多。而最主要 的就是题库维护和试卷生成部分。试卷自动生成系统的诞生,让老师们能及时准确的调 查学生某一阶段学习的情况,并且减少了大量的工作量。 电路分析的试卷自动生成系统 2 第第 2 2 章章 系统设计系统设计 2.12.1 系统完成的功能系统完成的功能 为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性 能需求: 1、 系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在 系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理 能力和响应时间能够满足企业对员工信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程中,应该充分考虑以后的可扩 充性。例如数据表中用户选择字段方式的改变,用户查询的需求也会不断的更新和完善。 所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通 过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的 加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更 新换代。 3、 系统的易用性和易维护性:要实现这一点,就要求系统应该尽量使用用户熟悉的 术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短 用户对系统熟悉的过程。 4、 系统的数据要求:1、数据录入和处理的准确性和实时性。2、数据的一致性与完 整性。3、数据的共享与独立性。 2 22 2 系统构架系统构架 开发这个系统的目的就是提高教师工作效率,实现考试信息管理以及考试流程的 系统化、规范化和自动化。系统最终实现的主要功能如下: (1) 题库管理设置部分:包括管理员对题库的增加、删除和修改操作。 (2) 考试科目的设置部分:包括管理员对考试科目的增加、删除和修改操作。 (3) 试卷的信息的设置:由管理员设置考试信息。 (4) 用户管理部分:由管理员浏览用户信息库里面的所有信息,并提供管理员添加用 户、删除和修改用户信息的功能。 电路分析的试卷自动生成系统 3 第第 3 3 章章 系统设计系统设计 3.1 开发工具的选取开发工具的选取 delphi 是全新的可视化编程环境,为我们提供了一种方便、快捷的 windows 应用程 序开发工具。它使用了 microsoft windows 图形用户界面的许多先进特性和设计思想, 采用了弹性可重复利用的完整的面向对象程序语言(object-oriented language)、当今 世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用 delphi 开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现 编程不再是枯燥无味的工作delphi 的每一个设计细节,都将带给您一份欣喜。 delphi 实际上是 pascal 语言的一种版本,但它与传统的 pascal 语言有天壤之别。 一个 delphi 程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上 即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入 您的程序。缺省的应用程序是一个空白的窗体(form),您可以运行它,结果得到一个空 白的窗口。这个窗口具有 windows 窗口的全部性质:可以被放大缩小、移动、最大最小 化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共 有的东西,为用户应用程序的开发打下了良好的基础。 delphi 已经为您做好了一切基础工作程序框架就是一个已经完成的可运行应用 程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码 而已。 在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接 收到用户输入后作何反应,窗口除了响应 windows 的基本操作(移动、缩放等)外,它只 是接受用户的输入,然后再忽略。delphi 把 windows 编程的回调、句柄处理等繁复过程 都放在一个不可见的 romulam 覆盖物下面,这样您可以不为它们所困扰,轻松从容地对 可视部件进行编程。 面向对象编程的概念 面向对象的程序设计(object-oriented programming,简记为 oop)是 delphi 诞生的 基础。oop 立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公 认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进 windows 编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写 容易。 电路分析的试卷自动生成系统 4 说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并 不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟。除非整个开 发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。 而 delphi 是完全面向对象的,这就使得 delphi 成为一种触手可及的促进软件重用 的开发工具,从而具有强大的吸引力。 一些早期的具有 oop 性能的程序语言如 c+,pascal,smalltalk 等,虽然具有面向对象的特征,但不能轻松地画出可视化对象, 与用户交互能力较差,程序员仍然要编写大量的代码。delphi 的推出,填补了这项空白。 您不必自己建立对象,只要在提供的程序框架中加入完成功能的代码,其余的都交给 delphi 去做。欲生成漂亮的界面和结构良好的程序丝毫不必绞尽脑汁,delphi 将帮助您 轻松地完成。它允许在一个具有真正 oop 扩展的可视化编程环境中,使用它的 object pascal 语言。这种革命性的组合,使得可视化编程与面向对象的开发框架紧密地结合起 来。delphi 提供了各种开发工具,包括集成环境、图像编辑(image editor),以及各 种开发数据库的应用程序,如 desktopdatabase expert 等。除此之外,还允许用户挂接 其它的应用程序开发工具,如 borland 公司的资源编辑器(resourse workshop)。 1.1 delphidelphi 5.05.0 概述概述 delphi 5.0 是 inprise 公司在 1998 年推出的 4.0 版本以后新开发的面向对象、可视 化的快速应用程序开发环境(rad-rapid application development)。 .2 2 delphidelphi 5.05.0 的特性的特性 高开发效率的 internet 应用的开发工具: delphi 5 增强了一系列功能,以便使企业 在 internet 上快速扩展现存的系统和构造 新系统。他们包括: internet express:通过简 化数据分发和优化数据交换,加速了 internet 和 xml 应用的开发。可以让开发人员构 建高速、 可维护和可伸缩的 web 服务器应用,向客户端浏览器及时提交动态数据; html 4:构造完全符合 web 标准的动态瘦客户端,并在 internet 上快速分发符合 internet 标准、易响应的客户端应用程序; midas 3:用于处理对 internet 有需求的应用程序。delphi 5 中的 midas 3 所构造 和交付的应用程序的交易量和用户数都具有伸缩性。 midas 支持所有的分布式计算标 电路分析的试卷自动生成系统 5 准(http、corba、com、mts), 并可将已有系统与电子商务无缝的集成在一起。 高效率的数据库开发工具: 为了利用数据库开发领域的最新技术标准,delphi 5 提供了下列新功能: adoexpress:快需访问所有类型的信息。用 microsoft 的 ado 和 ole db 技术, 为开发人员提供快速数据访问方法,以便为最终用户提供 最好的商业选择。他们被 delphi 5 打包在其组件构架中。开发人员能够 快速建立 internet 上的商业系统, 从 而将商业信息方便地传递给 internet 上的最终用户和客户群; interbase express:interbase 是快速、低维护量、占用较少资源的 关系型数 据 库。增值开发商、系统集成商和独立软件开发商能够利用 interbase 快速构建和分 发 一个高速的应用。 高效的企业级开发工具: delphi 5 包括一系列的增强功能,以提高大型企业级开发团队的开发效率。 它包括: teamsouce:一个新工具,使开发团队有效管理源代码的改变。 teamsouce 对已存 在的 源代码进行版本配置管理(象 pvcs),并以 一种高效的工作流模式简化了以往大 型开发团 队对源代码的管理。 borland translation suite:快速地将应用程序国际化或本地化, 以适应新的语 言 和文化环境。 高效率的开发工具: delphi 5 用以下特性缩短开发周期,提高程序员的开发效率: 集成开发环境的增强,其中包括:一个树型结构的 data module designer 和 data diagram 视图,以便于充分理解应用程序中的数据; project-wide 浏览便于更好地理解代码和浏览 vcl; to do list 依据时间表保护开发进度;一个新的控制面板和控制台 应用的向导; 高级调试工具:包括分布式开发的远程调试;多进程和跨进程的调试; 断点提示; 对组和活动点进行快速导航;fpu view 用于低级调试和简化 全部的可用性。 .3 数据库连接方式选择数据库连接方式选择 delphi 连接数据库的主要方式有两种:一是:bde ,二是 ado 。现在我们来大致比 较一下这两种技术的优缺点: bde(borland database engine)是 delphi 颇具特色的数据库连接管理技术。凭借 电路分析的试卷自动生成系统 6 窗体和报表,bde 可以访问诸如 paradox,dbase,本地 interbase 服务器的数据库,也可 访问远程数据库服务器上的数据库,如 oracle,sybase,informix 等 cs 数据库中的数 据库,也可访问经 odbc 可访问的数据库管理系统中的数据库。 ado(activex data objects)是微软提供的一项技术。通过 ado,可以方便的访问各 种类型的数据库,特别是 oledb 数据库。ado 已成为访问数据库的新的标准接口。从 delphi 6.0 开始 delphi 添加了对 ado 的支持,以便让用户能迅速实现对终端用户用来做 商业决策的数据库的一致性访问,结合 delphi 本身的开发式数据组件结构,程序员可以 很快地建立应用程序,用来把自己的商业数据库通过 internet 发送给客户,最终用户以 及整个销售环节。通过 ado,delphi 7.0 也能让用户快速访问关系或非关系数据库以及 e-mail 和商务文件系统。 这两者提供了几乎相同的功能,在进行产品开发时,势必要做一个精心的比较。虽 然 ado 技术提出的时间不长,并被定位为工业标准的,而且其在性能上由于当前没有良 好的数据库引擎支持,其性能还不够完美,但是,我们应该要注意到 borland 公司已经 宣布停止发展 bde 了,其性能被 ado 超越也是迟早的事,因此,在开发长期应用的产品 时,推荐采用 ado 技术。这样还有另一个好处是,在进行产品分发时,可以避开大量 bde 的链接库 dll 的分发。基于以上原因我们选择了 ado 做为我们的数据库访问组件。 3.23.2 总体设计思想总体设计思想 总体设计包括:试题库设计、各类代码库设计等。 试题库分专业建立,包括有:课程代码、试题类型、题目、参考答案等字段,其中课程 代码表示该题目所属课程,试题类型表示该题目所属题型(如选择题、填空题等) ,题目 用于存储试题本身,参考答案用于存储该题目的参考答案或评卷答案。 各类代码库包括:专业代码库、课程代码库、试题类型代码库等。 试题录入过程:首先选择专业,选定后系统根据专业代码打开相应的专业题库,然 后确定录入课程代码,进入录入状态;录入过程中可自由编辑、增、删试题;特殊公式、 符号或图形可通过其它软件进行编辑,再粘贴进来,操作简便灵活。试卷生成过程:弹 出一个对话框,用户在该对话框中确定是否要规定必选题,如需要确定必选题则弹出另 一窗口选择必选题,选定后返回,如无必选题则直接弹出试卷结构对话框,用户在该对 话框中确定生成试卷的各个题型及各题型所选题数或总分值,确定后,系统自动开始组 卷过程;组卷过程中,首先将某一题型中的必选题抽入试卷库中,题数或分值不足时, 则产生随机数序列,在该类型题目中未被选中的题目中抽取其它题目补充到试卷库中, 电路分析的试卷自动生成系统 7 直至该类型题目抽取满额为止,然后抽取下一类型的题目,如此反复进行,直到所有类 型题目抽取结束,至此全部试卷已组织完毕;按预先规定好的格式将试卷库中的试题复 制到指定的试卷文件中,试卷生成过程全部结束。 试卷打印过程:系统提供一种固定的试卷输出格式,但有些情况下,需要对试卷格式进 行调整或对试题进行重新编辑,所以系统另外给出一种自由格式试卷形式,由操作者根 据需要自行编辑、排版打印输出。 试卷生成流程 1.手动生成试卷流程图如图 3-1: 图 3-1 手动试卷生成流程图 2抽取现有资料的流程图如图 3-2: 电路分析的试卷自动生成系统 8 图 3-2 抽取现有资料的流程图 3.33.3 delphidelphi 5.05.0 开发数据库应用程序开发数据库应用程序 设计一个数据库应用程序包括以下三个部分的内容: 1.使用数据库; 使用数据库是数据库应用程序获得数据的来源。必须知道 delphi 中运用什么控件访 问数据库和 delphi 支持访问的数据库种类。 delphi5.0 中数据访问控件如图 3-3 所示 数据访问控件名称 主要用途 tdatasource 作为数据访问控件 ttable,tquery,storedproc 与数据控制控件 tdbgrid、tdbedit 等之间传送数据 的通道 ttable 通过 bde 存取数据库表中的数据,ttable 再与 tdatasource 进行连接,使得数据控制空件能有效地 从 ttable 中访问数据并能显示和编其中的数据 tquery 利用 sql 语言访问数据库表中的数据,并与 tdatasource 一起进行,实现数据浏览控件对数据库 的访问 tstoredproc 一般主要用来访问远程服务器中的存贮过程 电路分析的试卷自动生成系统 9 tdatabase 当应用程序要登录到一个远程服务器上的数据库时, 可以用控件来建立应用程序与数据库永久性的连接 tbatchmove 用于复制表中的结构或表中的记录 图 3-3 数据访问控件列表 delphi 支持的数据库种类如图 3-4 数据源(datasource) 特性描述 dbase 数据库(.dbf)数据库表是通过 dbase 数据库管理系统或 dbd 建立 的,每个表示一个独立的文件 paradox 数据库(.db)数据库是通过 paradox 数据库管理系统或 dbd 建立 的,每个表示一个独立的文件 ascii 文件(.txt)表示通过 database desktop 建立的,每个表示一 个独立的文件 本地 interbase 服务 器(.gdb) 数据库是通过 interbase 数据库管理系统建立的, 多个表包含在一个数据库文件中 sql 数据库服务器 (oracle,sybase,info rmix,microsoftsql server,interbase) 数据库是通过相应得数据库服务器提供的专用或通 用工具建立的,也可以通过 dbd 来创建数据库,并 通过 sqllink 访问数据库 图 3-4 delphi 支持的数据库种类 2.数据库结构; 用户获得的数据以及进行存储的数据在数据库中都是根据一定的组织形式保存的, 现在采用的数据库种类一般是关系型数据库。一个关系型数据库是由若干表组成的。 表(table):一个表就是一组相关的数据按行排列,像一张表格一样。 字段(field):在表中,每一列称为一个字段。每一个字段都有相应得描述信息,如 数据类型、数据宽度等。 记录(record):在表中,每一行称为一条记录。 索引(index):为了加快数据库德访问速度,许多数据库都使用索引。 3.设计用户接口。 用户接口是技术上的说法,说得通俗一点就是数据显示界面和数据更新界面。 电路分析的试卷自动生成系统 10 delphi 提供一组数据控制组件,用于显示数据库中的各条记录的各个字段,接收用户对 数据的各种更新。 3.43.4 利用利用 delphi5.0delphi5.0 创建数据库应用程序创建数据库应用程序 首先,我们来简单了解一下 delphi 是如何存取数据库的。 delphi 对数据库的操作主要是利用 bde(数据库引擎,borland database engine 的缩写) 来进行。当然,通过其他方式直接访问数据库,在 delphi 中也都是可以实现的。不过, 对于本地数据库来说,通过 bde 存取数据效率很高。对本地数据库如果能够熟练操作, 编写网络数据库也就容易上手了。尤其对初学者来说,写网络数据库的机会还是不如单 机本地数据库多。所以,我们把重点放在本地数据库上。 bde 是负责用户和数据库交流的中间媒介。事实上,应用程序是通过数据访问组件和 bde 连接,再由 bde 去访问数据库,完成对数据库的操作,而并非直接操作 bde。这样用 户只需关心 delphi 中的数据组件即可,不用直接和 bde 打交道。 数据库组件主要分为两类:“数据访问组件”和“数据控制组件” ,它们和数据库的 关系可用下面的关系图来示意: 图 3-5 通过 bde,几乎可以操作目前所有类型的数据库。 数据访问组件在 delphi 组件面板的 data access 组件页上可以找到。这里我们应当 注意:table、query 和 storedproc 三个控件,它们称为“数据集组件” ,用于和数据库 连接。学习者可以将这些控件视为“虚拟”的数据库,对它们的操作就可以认为是对数 据库的操作。 (1)datasource 控件是数据集组件和数据控制组件的连接媒介。数据控制组件是用 户操作数据库中数据的界面,只有通过 datasource 控件才能和数据集组件连接,从而对 数据进行显示、修改、维护等操作。 (2)table 控件是通过数据库引擎bde 来存取数据库中的数据的。通过 bde 将用 电路分析的试卷自动生成系统 11 户对数据库的操作(如添加、删除、修改等)传递给数据库。 (3)query 控件是利用 sql(structured query language,结构化查询语言)通过 bde 来操作数据库的,和 table 控件完成的功能相似,它只是采用了 sql 来实现。 (4)storedproc 控件是通过 bde 对服务器数据库进行操作的,常用于客户/服务器 (c/s)结构的数据库应用程序。 (5)database 控件一般用于建立远程的数据库服务器客户/服务器结构的数据库 应用程序和数据库之间的连接。 (6)session 控件是用于控制数据库应用程序和数据库连接的,主要用于复杂功能的 实现,例如:多线程数据库程序设计。 数据控制组件也可以称为数据显示组件或数据浏览组件。它们的主要功能是与数据 访问组件相页上。它们主要有:dbgrid 控件、dbnavigator 控件、dbtext 控件、 dbedit 控件、dbmemo 控件、dbimage 控件、dblistbox 控件、dbcombobox 控件、dbcheckbox 控 件、 dbradiogroup 控件、dblookuplistbox 控件、dblookupcombobox 控件、dbrichedit 控件、 dbctrlgrid 控件、dbchart 控件等。 此外,还有一些组件与数据库有关。例如,decision cube 是一组主要用于数据统计 工作的控件,以表格或图形等直观的方式表达统计结果。qreport 是用来输出报表的控件, 但是,根据经验来看,此控件不太适合中国人报表的习惯。此组件是 borland 公司购买 而来,性能不是太好,所以现在使用的不是很多。目前,有一些第三方控件提供的报表 控件很好用,也有一些国人自己制作的报表控件,很适合中国人的习惯。 还有一个组件页是 ado(activex data objects) ,主要是使用微软的 ole db 功能对 数据库服务器中的数据进行访问和操作。其主要优点是易于使用、高速度、低内存支付 和存储空间占用较少。ado 支持用于建立基于客户端/服务器和基于 web 的应用程序。ado 同时具有远程数据服务(rds)功能,通过 rds 可以在一次往返过程中实现将数据从服务 器移动到客户端应用程序或 web 页、在客户端对数据进行处理然后将更新结果返回服务 器的操作。ado 现在逐渐流行起来,ado 本身也很复杂,微软有专门的帮助文件来说明如 何使用 ado,学习者有兴趣可以找相关资料进一步学习。 .1 构造数据库用于存放用户数据构造数据库用于存放用户数据 不同的数据库在内部存储结构上有很大的不同,但 de-phi 的数据存取和控制构件封 装了数据库的内部结构,开发的程序向终端用户提供了相同的界面,而不用考虑具体的 数据库的内部结构。dephi 数据库应用程序并不直接同数据库打交道,而是通过一个名为 电路分析的试卷自动生成系统 12 bde(borland database engine)工具来处理各个数据库文件。bde 定义了各种数据库文件 的接口,如 dbase, paradox, oracle, sybase 等各种数据库,只有通过 bde, dephi 数 据库应用程序才能处理各种数据文件。因此,在编写程序之前,必须设置好数据驱动器 及有关参数。 配置 bde 的方法如下: 选择程序 borland dephi 5.0 bde administrator,开启 bde 配置程序,出现 bde 配置程序的主界面,其中 database 标签列出了当前 dephi 所有可以访问的数据源。对于 数据源,可以修改其参数,以符合数据源的实际。dephi 5. 0 用别名(aliase)来管理数 据源,一个别名可以包含访问一个数据库的所有信息,如数据库的名、用户名、口令等。 下面用 rsglda 来表示 d:rsgl 目录下的 paradox 数据库表,其操作步骤是: 1.选择()bject i new 命令,打开 new database alias 对话框,从中选择 dephi 的 数据库驱动器名,对 paradox 我们选择 srandard; 2.单击ok“,一个名为 standard1 的别名被建立; 3 修改 standard1 为 rsglda,并在 defination 页修改 path 为存储数据库表的目录, 并选择 object i apply 命令保存,则别名 rsglda 建立完毕。 确定了数据库结构和类型之后,下面来建立数据库表。步骤如下: 1.选择程序borland dephi 3.0 database desktop 或 dephiide 中选择 tools i database desktoi命令,就可以运行 database desktop 命令; 2.选择 file i new i table 命令,打开 creat table 对话框,输人要建立的表的 类型,本例选择 paradox 7 以建立一个 paradox 的数据库表,单击ok进人 crate paradox 7 表对话框; 3.在 field name 域输人要建立的数据库中每一字段的名称,在 type 域选择相应的 类型,在 size 域输人字段的宽度,最后在 key 域选择关键字段。关键字段表示该字段的 值对于每一个记录都是唯一的。paradox 表只能有一个关键字段,且该字段必须为表中的 第一个字段; 4.当所有字段输人完成后,单击 save as 按钮,打开 savetable as 对话框,选择 别名为 rsglda,表名为 rsgl. db 。 .2 实现对数据库中数据的控制实现对数据库中数据的控制 1规划程序总体设计结构主控窗体。 在 dephi 中,窗体是构造应用程序的基本结构单元,相当于传统程序设计中所说的 电路分析的试卷自动生成系统 13 模块。 2.数据维护窗体的建立 dephi 数据库应用程序基本上由两个部分组成:dataaccess 组件和 datacontrol 类组 件。dataaccess 类组件负责和 bde 进行数据交换并为 datacontrol 类组件提供数据,将 datacontrol 类组件中被修改的数据经 bde 传送到数据库文件中,其中和 bde 直接打交道 的组件为 dataset 组件。dataset 组件包括 table, query 等,每个 dataset 组件都和一 个数据库文件相连接,并且为 datasource 组件提供数据,而每个 datasource 组件也应 指定一个 dataset 组件。datasourcc 组件负责把从 dataset 组件中接收数据并提供给 datacontrol 类组件,把被修改的数据经 dataset 类组件传送给3de。所有的 dataaccess 类组件均为运行时不可见组件,隐藏在用户界面之后,而由 datacontrol 类 组件显示数据,并提供浏览、修改数据的工具。数据维护窗口由两个 dataac组件、若干 个 table 组件和 datasource 组件、若干个 datacontrol 组件以及几个 la-bel 组件组成。 其中 table 组件的 databasename 属性设置为 bde 中定义的别名 rsglda 厂 tablename 属 性设置为 d:rsgl rsgl. db, active 属性设置为 true; datasuece 组件的 dataset 域 设置为 table 组件的名。 .3 建立数据查询窗体建立数据查询窗体 dephi 5. 0 设置了 tquery 组件来完成查询工作,支持用户使用 sql 语言对系统建立 的数据库进行查询操作。de-phi 5. 0 的应用程序中,有多种方法编写和执行 sql 查询。 一种是静态方法,即把 tquery 构件的 sql 属性设置为 sql 命令文本。这样,当执行应用 程序时,dephi 执行所设置的查询,如果把 tquery 构件通过 tdataset 构件与数据控制构 件相连,查询结果显示在与 tquery 构件相连接的数据控制件中,静态查询只适合查询条 件固定的查询任务;另一种是动态方法,既在程序的运行过程中通过改变 sql 属性以完成 不同的查询任务。 1 打开一个新的设计窗体,设置其 name 属性为 form-cx, caption 属性为”数据 查询”;在窗体上放置一个组合框,其 caption 为”设置查询条件”; 2在组合框中放入三个 label 组件,两个(:ombobox 组件,两个 button 组件和一个 edit 组件。三个 label 组件的 caption 属性分别为”选择查询字段” , ”选择查询关系” , ”输入查询内容, ;一个(.ombobox 组件的 it 二域为可供用户选择的查询字段等;另一 个 combobox 组件的 items 域为可供用户选择的查询关系,等;edit 组件用来接收用户所 输人的所要查询的相应字段的内容; 电路分析的试卷自动生成系统 14 3在窗体上放置一个 tquery 组件,一个 datasource 组件。设置 tquery 组件的 databasesource 域为 rsglda, data-source 组件的 dataset 域设置为 queryl ;组合框中 的两个 button 组件的 caption 属性分别设置为”确定”和”取消” ,表示以用户所选择 的查询条件开始查询和取消刚才所输人的查询条件,开始新的查询工作;双击确定按钮, 进人确定按钮事件响应对话框,键人下列代码完成把用户所做的选择转化为相应的 sql 语句,然后设置 tquery 组件的 sql 属性,并执行,从而完成查询工作。 4在窗体上放置一个 tdbgrid 组件,一个 tdbnavigator 组件,设置 tdbgrid 组件 的tasource 属性为 datasourcel,设置 tdbnavigator 组件的 datasomce 属性为 datasalrcel,这两个组件用于把用户的查询结果显示输出; 5在窗体上放置一个 tbutton 组件,设置其 caption 属性为”返回” ,用以退出查 询模块,返回主窗体,双击”返回”按钮,进人”返回”按钮的事件响应程序编辑框, 输人如下代码: procedure tfomxx. button6click(sender: tobject) ; begin fomicx. close; fomunain. show; end; .4 数据库的动态链接数据库的动态链接 1.保存数据库配置信息 配置信息的界面如图 3-5,在此界面上添加了 table 控件,不需要设置它的任何属 性. 电路分析的试卷自动生成系统 15 图 3-5 配置信息界面 2登陆系统信息 登陆界面如下图 3-6,在此界面上也添加了 table 控件,不需要设置它的任何属性, 最好设置此 table 控件同配置信息界面中 tabe 控件名称。 图 3-6 登录界面 3 35 5 系统功能的实现系统功能的实现 .1 图形装入图形装入 在实现中我们首先遇到的问题是如何将图形装入数据库。但在 dephi 的 dbd 中并没 有提供直接装入图形的方法。并且还得考虑在执行中对图形进行动态的装入与更换。因 此,必须用程序来实现图形的装入。为了将一个指定的用 bmp 文件表示的图形装入 graphic 字段,采用的方法是:利 image 组件装入图形,并拷贝到剪贴板,然后再拷贝到 dbimage 组件。由于 dbimage 中的图形与 table 中的 graphic 字段有联系,所以此后只 要对 table 的当前记录进行更新即实现了图形装入。 设在字符串型的变量 fg 中存放 bmp 文件名,对 image,dbimage 及 table 组件所建立 的实例分别为 image 1,dbimage1,table i,则完成上述过程的相应程序为: imagel. picture. loadfromfile(fg); imagel. update; clipboard. assign (imagel. picture); table 1. edit; dbimagel. past rfromclipboard; tablel. post; 电路分析的试卷自动生成系统 16 .2 出错的捕获与控制出错的捕获与控制 为了提高系统的交互性与运行时的安全可靠性,系统对各类运行错误进行捕获与控 制,出错捕获是使用 object pascal 的 try except.结构实现的。例如,在题 库备份中,通过执行 batchmove 组件进行处理。一旦用户给出的源库名不正确,可由本 系统直接给出出错信息并进行相应的处理。以下的程序段实现题库备份并进行出错的控 制与处理。程序中 edbengineerror 表示出错类别,tablei,table2 分别表示源库与目的 库,其库名分别由编辑框 edit1,edit2 的输入确定。 try tablel.tablename:二 editl.text; tablet. tablename:=edit2. text; batchmovel.source:=tablel; batchmovel.destination:=tablet; batchmovel. mode:=batcopy; batchmovel. execute; except .3 自动选题算法自动选题算法 对自动选题,可先指定选题的范围,即指定课程、题型或章节。然后指定道数 j,使 系统在指定课程的指定范围或全部的试题中随机地选择指定道数的试题。 在系统中,对选题的范围设置一个 query,以该 query 的记录数(recordcount)为参 数,在 1 与该数之间生成一个随机数 k 并在 query 中找出第 k 个记录,若未重复的话, 将它移入试卷。将上述过程重复 j 次完成自动选题。相应程序如下: randomize; for 1:=1 to j do begin k:=random (query 1.recordcount); queryl.first; queryl.moveby(k); 检查是否重复,若否,则将它移入试卷库 电路分析的试卷自动生成系统 17 end; .4 试卷及答卷的组装试卷及答卷的组装 组装过程是将试卷库中属于同一类别(题型)的试题的正文及答案分别组合在一起, 作为一道大题的正文及答案分别移入试卷格式库及答库格式库中。为此设置组件 table 表示试卷 dbmelol ,dbmemo3 分别表示与该库的当前记录相联系的试题正文及答案,组装 的结果形成在 dbmemo2,dbmemo4 中。其过程大致如下: 使 dbmemo2 指向试卷格式库的第 i 道试题并装入大题号 i; 使 dbmemo4 指向试卷格式库的第 i 道题的答案并装入大题号 i; tablet. first ; j:=1; while not tablet. eof do begin if 当前试题属于该类别 then begin 将 dbmemol 中的行移入工作区装配小题号 j 与分值并追加到 dbmemo2 中; 将 dbmemo3 中的行移入工作区装配小题号 j 与分值并追加到 dbmemo4 中; ine(j); end; tablet. next; end; dbmemo2. update; dbmemo4. update; 上述过程完成了第 1 道题的装配。在整个试卷、答卷格式库装配完成后,可使用 rre-portsmish 中的 form 格式对应输出打印试卷及答卷。 3 36 6 制作系统安装程序制作系统安装程序 为了把用 dephi 5.0 制作的管理系统程序在多方面运用,我们为系统制作通用的安 装程序。制作方法如下: 电路分析的试卷自动生成系统 18 1.选择运行 win2000 开始程序is express dephi edition 软件,进人 installshield 的主画面,在 welcome to installshiledexpress 窗口选择 create a new setup project 选项,建立一个新的安装项目; 2 按”ok”后,进人对话框,要求输人项目名称、类型、所在路径等信息,设置好 后按”ok“,进人 installshield express 的主窗口; 3.主窗口显示一个 setup checklist,共有 16 个小的选项,分为 9 大类,供用户根 据需要作出相应的设置工作; 4.点选 application information 左边的小按钮,进人 setthe visual design 设计 窗口,输人 application name(应用的名称),application excutable(应用执行的程序), version(版本号),company(公司的名称),default destination directory(默认的目 的目录)等信息; 5 点取 main window 标签,设置主安装窗口的有关信息,如设置(main title 主标 题) ,logo bitmap (log。位图),background(背景色)等信息; 6.依次选择其他 checklist 选项直到完成整个设计过程。 电路分析的试卷自动生成系统 19 参考文献参考文献 1董良 等,深入浅出 delphi5,北京:清华大学出版社,2003 2周绪、管丽娜 等, sql server 20

温馨提示

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

评论

0/150

提交评论