基于Delphi的试卷生成系统的设计与实现

时间:2022-07-08 11:05:38

基于Delphi的试卷生成系统的设计与实现

摘要:在分析试卷生成系统的功能需求之后,该文提出了基于Delphi的试卷生成系统的设计思路,阐述了该系统的总体架构及所采用的关键技术,该系统能够实现手动和自动组卷两种方式,最后给出试卷生成模块的具体实现方法,用户通过身份验证进入本系统,根据其权限限制实现自己相应的操作。

关键词:试卷生成系统;Delphi;关键技术

中图分类号:TP315文献标识码:A文章编号:1009-3044(2010)05-1140-04

Design and Implementation of Paper Generation System based on Delphi

LING Hui-wen1, YIN Chang-qing2

(1. Dingnan Municipal State Taxation Bureau of Jiangxi Province, Dingnan 341900, China; 2. School of Software Engineering, Tongji University, Shanghai 201804, China)

Abstract: In the analysis of the functional requirements about paper generation system, this paper presents design ideas of paper generation system based on Delphi, expatiates the overall architecture and key technology used in the system, at the same time, it implements manual and automatic test paper. Finally, it gives out a concrete realization of the module, and users can realize their corresponding operation according to their limit after they are authenticated into this system

Key words: Paper Generation System; Delphi; Key Technology;

1 概述

考试是教学管理中的一个重要环节,考试不仅要对学生的学习情况进行评价,而且还要对任课老师的教学质量进行评价,为了使评价公正、准确、需要合理的组卷。传统的手工出卷在试卷的标准化程度、题量大小、覆盖面等方面都难以控制,不可避免由不同老师出卷而产生试题的难度、重点、内容的差异,这样的试卷很难做到考试的公平性、合理性、不利于对教学质量的统一评估。随着计算机辅助教学研究的发展,利用计算机生成试卷将解决试卷质量的控制问题。同时,利用计算机进行试卷的自动生成并逐步积累形成有效的试题库,将使试题和试卷的管理变得高效而便捷,有利于提高工作效率,逐步走向正规化、自动化。基于上述考虑,本文利用Delphi语言开发了一个试卷生成系统,通过本系统,一般用户可根据自己的出卷形式进行出卷,如用户可以选择在某些章节范围内进行出卷,也可指定试卷的题型以及试卷的总分等等,还可以预览已有的试卷及其答案、查看题库内的题目等,同时可设置与修改自己的密码;而系统管理员需要对系统进行维护,维护包括用户的管理、试卷与题库的管理,以及数据库的管理。

2 系统分析

本系统是一个完整独立的系统,需要有用户登录、主窗口、试题的修改与插入、试卷的生成与输出、用户管理、数据库备份等。用户通过身份验证进入本系统,根据其权限不同完成相应的操作。

2.1 主要功能模块

本系统主要分以下几个模块:

1)试卷管理。实现试卷生成与输出功能,以及现有试卷的预览与删除功能。

2)试题管理。实现试题的插入、查看、修改以及删除等功能。

3)用户管理。实现用户密码修改、用户的添加、删除,以及权限设置等功能。

4)后台管理。实现数据库的备份与还原。

整个系统的功能模块图如图1所示。

2.2 系统要求

1)能够自动生成试卷,本能进行试卷的打印;

2)能够对试题进行添加、删除、修改;

3)能够进行权限设定,只有系统管理员才有权限修改试题分值,操作人员只能修改试题选择与否等基本信息;

4)界面美观大方,方便实用。

2.3 实验方案

本系统以Delphi为开发工具,后台数据库使用的是ACCESS 2000,Delphi连接数据库的主要方式有两种:一是BDE,二是ADO。

BDE(Borland Database Engine)是Delphi颇具特色的数据库连接管理技术。凭借窗体和报表,BDE可以访问诸如Paradox,dBASE,本地InterBase服务器的数据库,也可访问远程数据库服务器上的数据库,不过使用BDE连接数据库速度较慢。

而ADO(ActiveX Data Objects)是微软提供的一项技术。通过ADO,可以方便的访问各种类型的数据库,特别是OLEDB数据库。ADO已成为访问数据库的新的标准接口。从Delphi 6.0开始Delphi添加了对ADO的支持,通过ADO连接数据库,可以获得对数据库更大范围的控制。

根据本系统的特点和上述特点,本系统选择ADOConnection做为系统的数据库连接组件。

3 关键功能模块设计与实现

3.1 试卷管理模块

试卷管理模块,主要实现试卷的预览,试卷的输出,以及删除试卷等功能,经过一番分析与设想,本文将试卷管理模块分成两部分来完成:一、用户可从现有试卷中抽取一份试卷,前提是用户能够对现有试卷及其答案进行预览;二、用户可通过指定章节范围从题库中随机抽取试题生成试卷并输出,同时,为满足用户需求,在该部分中增加了某些功能,即允许用户设置试卷总分,以及各题型的分值。为了体现本系统的实用性,该功能模块选择以Microsoft Office Word输出试卷或是预览试卷。

实现以WORD输出与预览试卷的关键代码如下:

const

BF_Name:array[1..10] of String=('一、','二、','三、','四、','五、','六、','七、','八、','九、','十、');

JG:String=' ';

var

ItemIndex:OleVariant;

NewDocument:_Document;

FZ,TL,BF,STH,i,WTS,YTS:integer;

temp,AppPath,BGName:string;

procedure SetFont(aBold,aItalic,aShadow,aSize:integer);

begin

SJ_WF.ConnectTo(SJ_WD.Sentences.Get_Last.Font);

SJ_WF.Name:='宋体';

SJ_WF.Bold := aBold;

SJ_WF.Italic := aItalic;

SJ_WF.Shadow := aShadow;

SJ_WF.Size := aSize;

end;

begin

AppPath:=ExtractFilePath(Application.ExeName);//取得本程序的路径

//显示进度窗口

RateProcess_F.Show;

RateProcess_F.CZ_P.Caption:='正在链接Microsoft Office Word......';

RateProcess_F.Rate_Gauge.MaxValue:=SJT_ADOQ.RecordCount+25;

RateProcess_F.Repaint; //重绘窗口,否则显示不出新设置的控件属性

try

SJ_WA.Connect;

except

MessageBox(handle,'无法连接,也许没有安装Word','连接出错', MB_Ok or MB_ICONERROR);

RateProcess_F.Close;

Abort;

end;

RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10;

//建立一个新文档

NewDocument:=SJ_WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);

RateProcess_F.CZ_P.Caption:='正在新建Microsoft Office Word 文档......';

RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5;

RateProcess_F.Repaint;

//建立WordDocument连接, 用第二种方法不容易出错

SJ_WD.ConnectTo(NewDocument);

SJ_WD.Windows.Item(ItemIndex).Caption:='数据库原理与应用期末试卷';

//此文档的第一个窗口的标题

RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5;

RateProcess_F.Repaint;

//因为Word进行拼写检查需要很多时间,所以首先关闭检查

SJ_WA.Options.CheckSpellingAsYouType := False;

SJ_WA.Options.CheckGrammarAsYouType := False;

//设置Word的字体

SetFont(1,0,0,22);

//设置段落对齐方式

SJ_WD.Range.InsertAfter('数据库原理与应用期末试卷'+#13);

RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5;

RateProcess_F.Repaint;

//SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment:=wdAlignParagraphLeft;

SJ_WD.Range.InsertAfter('学校___________ 班级________姓名___________ 得分_____ ' +#13);

SetFont(0,0,0,14);

……

3.2 试题管理模块

试题管理模块,能够实现对各类型的试题进行插入、删除、修改、保存刷新、取消等功能及对章节维护界面的章节进行添加 删除 修改的功能。选择题界面如图2所示。

关键代码如下:

“插入”代码:

procedure Tstglform.INSERT_TBtnClick(Sender: TObject);

begin

XZ_TS.Enabled:=true;

TK_TS.Enabled:=true;

JD_TS.Enabled:=true;

if STGL_PC.ActivePage=XZ_TS then

stglform.XZT_ADOT.Insert;

if STGL_PC.ActivePage=TK_TS then

stglform.TKT_ADOT.Insert;

if STGL_PC.ActivePage=JD_TS then

stglform.JDT_ADOT.Insert;

end;

“删除”代码:

procedure Tstglform.SC_TBtnClick(Sender: TObject);

begin

XZ_TS.Enabled:=false;

TK_TS.Enabled:=false;

JD_TS.Enabled:=false;

if STGL_PC.ActivePage=XZ_TS then

begin

if messagedlg('确实要删除该记录吗?',mtconfirmation,[mbYes,mbNo],0)=mrYesthen

stglform.XZT_ADOT.Delete//显示信息框,提示读者是否真想删除该试题

else

stglform.XZT_ADOT.cancel;

end;

if STGL_PC.ActivePage=TK_TS then

begin

if messagedlg('确实要删除该记录吗?',mtconfirmation,[mbYes,mbNo],0)=mrYesthen

stglform.TKT_ADOT.Delete

else

stglform.TKT_ADOT.cancel;

end;

if STGL_PC.ActivePage=JD_TS then

begin

if messagedlg('确实要删除该记录吗?',mtconfirmation,[mbYes,mbNo],0)=mrYesthen

stglform.JDT_ADOT.Delete

else

stglform.JDT_ADOT.cancel;

end;

end;

“修改”代码如下:

procedure Tstglform.XG_TBtnClick(Sender: TObject);

begin

XZ_TS.Enabled:=true;

TK_TS.Enabled:=true;

JD_TS.Enabled:=true;

if STGL_PC.ActivePage=XZ_TS then

stglform.XZT_ADOT.Edit;

if STGL_PC.ActivePage=TK_TS then

stglform.TKT_ADOT.Edit;

if STGL_PC.ActivePage=JD_TS then

stglform.JDT_ADOT.Edit;

end;

4 小结

本文所设计的试卷生成系统 ,不仅真正提高了试卷的保密性、科学性、规范性、实用性 ,而且实现了资源共享和全方位的试卷生成。用户只要输入最基本的考试要求,系统就能自动地按一定的算法生成一份满足需求的试卷,从而在师资紧张的情况下做到了考教分离,减轻教师的工作量。

参考文献:

[1] 罗小平.Delphi精要[M].北京:电子工业出版社,2004.

[2] 林华聪,余剑锋.Delphi6[M].北京:冶金工业出版社,2002.

[3] 宋坤,邹天思.Delphi数据库系统开发完全手册[M].北京:人民邮电出版社,2006.

[4] 丁晓香,赵维东.试题库管理系统[J].哈尔滨师范大学自然科学学报,2004(2).

[5] 沈丽容,黄庆柏.基于PB的通用自动组卷系统开发[J].计算机与现代化,2007(9).

上一篇:浅谈网络数据库安全研究与应用 下一篇:曲柄滑块机构的计算机辅助分析