试题库管理系统开发心得.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:4 大小:31KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

试题库管理系统开发心得.doc

试题库管理系统开发心得.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

试题库管理系统开发心得陈明(怀化培训基地信息教研室邮编:418000)[摘要]教考分离不失为提高职工培训教学质量的一种有效手段,试题库的建立又是教考分离实施的前提,本文就试题库平台的开发的难点提供关键代码。[关键词]格式文本存储随机抽题面向对象[正文]2009年我担任(试题库管理系统)的负责人,主要负责平台开发,试题库管理系统基本要求为:能随机对题库各种题型抽题生成试卷,同时能面向对象进行修改,基于本人的认知水平及时下网络技术的流行,我选择了VF+SQL模式,以便达到共享数据库,多机同时录入的效果。系统平台的开发难点主要在于(1)VF向SQL存储图片及格式文本,(2)随机抽题,(3)生成能面向对象进行修改的试卷即VF控制WORD.本系统于9月初研发完,经10、11月调试修改即将投入使用,本人在开发运用软件之路上的艰辛和快乐,体现在下列程序代码之中。现将部分程序代码呈现给广铁的同行,希望能对各位的程序开发有所帮助。一、VF向SQL存储图片及格式文本IFEMPTY(thisform.edit1.Value)thisform.command4.Visible=.F.=MESSAGEBOX("试题添加失败,没有题目!",0+48,"提示")RETURNelsenHandle=GetConnHandle()lIsRight=.T.IFnHandle>0=SQLSETPROP(nHandle,"Asynchronous",.F.)&&设置为同步连接=SQLSETPROP(nHandle,"Transactions",2)&&开始人工事务处理aa=ALLTRIM(Thisform.combo2.Value)ff=ALLTRIM(Thisform.combo1.Value)ictxtfile=Thisform.edit1.ValueSTRTOFILE(ictxtfile,"c:\playerhelp.txt")lcTextString=Strconv(Filetostr('c:\playerhelp.txt'),13)DOCASECASEEMPTY(thisform.TEXT2.Value)lcTextString1=thisform.text2.Valuea=MESSAGEBOX('本题无图片,单击"是"将添加试题入库,单击"否"将取消本题入库!',32+4,'系统提示')IFa=6cSQLString="INSERTINTOtbltk(km,lx,tm,tp)VALUES('&aa','&ff',?lcTextString,'')"ELSERETURNendifOTHERWISElcTextString1=thisform.text2.ValuelcTextString2=Filetostr('&lcTextString1')+chr(0)cSQLString="INSERTINTOtbltk(km,lx,tm,tp)VALUES('&aa','&ff',?lcTextString,?lcTextString2)"ENDCASEnResult=SQLEXEC(nHandle,cSQLString)IFlIsRight=.T.=SQLCOMMIT(nHandle)WAITWINDOW"试题加添成功!"NOWAITTIMEOUT2thisform.edit1.Value=''thisform.text2.Value=''ELSE=SQLROLLBACK(nHandle)=MESSAGEBOX("试题添加失败,请重新执行!",0+48,"提示")ENDIF=SQLSETPROP(nHandle,"Transactions",1)&&结束人工事务处理ENDIFENDIF二、随机抽题nHandle=GetConnHandle()IFnHandle>0cString="SELECT*FROMtbltkwheretbltk.km='&dd'andtbltk.lx='选择题'"cString1="SELECT*FROMtbltkwheretbltk.km=''"nResult=SQLEXEC(nHandle,cString,"curtk")nResult=SQLEXEC(nHandle,cString1,"curtk1")IFnResult<=0=MESSAGEBOX("读取题库信息发生错误,请重新登录!",0+48,"提示")RETURNENDIFSELECTcurtkCOUNTTOnDimeb(g1),c(4)B(1)=int(n*Rand(-1)+1)i=2dowhilei<=g1t=1a=int(n*Ra