您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 在Authorware中使用数据库Access
在Authorware中使用数据库Access初学Authorware时,总会因为自已能够做出一段考试程序而兴奋不已!可是时间长了却发现,用这个软件制作出的考试程序,题目都是固化在程序内部的,如果用户想更新试题,就只能是到源程序中去修改程序。这给制作者和使用都造成了很多的麻烦。那么,有没有办法使题目和程序“分居”,让教师随意地修改试题而不必动源程序呢?其实,在Authorware中,用户可以通过系统提供的ODBC(OpenDatabaseConnectivity开放式数据库连接)与一些常用的数据库(例如Access)连接,用独立于程序的数据库来放存放试题,这样就实现了试题和程序的“分居”。下面,我们就一起来让Access与Authorware联姻!一.建立试题库在d:\test目录下建立一个名字为test.mdb的数据库文件,其中建立三个表:填空题、选择题、判断题,分别用于存放填空题、选择题、判断题的题库。每个表的字段和内容如图1所示。表中的每条记录对应着一道考题,记录的内容和记录的数量可以由教师根据需要自行设计。图1二.创建数据源利用“tMsDSN.u32”文件提供的“tMsDBRegister()”函数,可以在程序中自动创建ODBC数据源。“tMsDSN.u32”文件在Authorware的安装目录中存在,用户在使用前要对其进行装载,并且要将该文件与程序文件一起打包发布。例如,想把d:\test\test.mdb设定为程序的数据源,数据源名称定为“testinfo”,则可以用以下的语句完成:dbReqType:=4dbType:=MicrosoftAccessDriver(*.mdb)dbList:=DSN=testinfo;dbList:=dbList^Description=试题库;dbList:=dbList^FIL=MSAccess;dbList:=dbList^DBQ=^d:\\test\\test.mdbresult:=tMsDBRegister(dbReqType,dbType,dbList)这样,一条红线就将程序和d:\test\test.mdb联系起来了!在这里,如果在局域网环境下,想将教师机(假如教师机的标识为teacher)中的文件夹test下的test.mdb文件设为数据源,那么可以先将test文件夹共享,然后把语句dbList:=dbList^DBQ=^d:\\test\\test.mdb改为dbList:=dbList^DBQ=^\\\\teacher\\test\\test.mdb即可。三.从题库中读试题1、在程序访问数据库之前,要先将相应的数据库文件打开。例如,要将上文中定义的数据源“testinfo”所指向的文件test.mdb在程序中打开,则可以用以下的语句实现:DatabaseName:=testinfoODBCError:=ODBChandle:=ODBCOpen(WindowHandle,ODBCError,DatabaseName,,)变量DatabaseName用于指向特定的数据源,在此处的取值为“testinfo”。2、读取题库中试题的总数。这里,我们以读填空题的题库为例。用到的语句如下:--读取填空题题库中试题的总数,并将总数存放在变量total中。SQLString:=selectcount(*)from填空题total:=ODBCExecute(ODBChandle,SQLString)若想读取选择题题库中试题的总数,那么只需将语句“SQLString:=selectcount(*)from填空题”改为“SQLString:=selectcount(*)from选择题”即可。3、随机地在题库中选择一道题。以填空题为例,读取试题的“题干”和“正确答案”并存放到变量tigan和Rightdaan中。用到的语句如下:--随机产生一个试题的编号bianhao:=Random(1,Total,1)--在试题库中读编号对应的试题的题干和答案,并存于变量tigan和rightdanan中.SQLString:=selectdistinct题干from填空题where填空题.编号=^bianhaotigan:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinct答案from填空题where填空题.编号=^bianhaorightdaan:=ODBCExecute(ODBChandle,SQLString)这样,就可以在程序中,通过显示变量tigan的值来显示题目,通过变量Rightdaan来判断用户输入的答案是否正确,从而实现更进一步的交互功能。选择题的读取,则可以用下面的一组语句:--随机产生一个试题的编号bianhao:=Random(1,Total,1)--在试题库中读编号对应的试题的题干、备选答案A、B、C、D、正确答案,并存于变量xtigan、aa、bb、cc、dd和xrightdaan中.SQLString:=selectdistinct题干from选择题where选择题.编号=^bianhaoxtigan:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinctAfrom选择题where选择题.编号=^bianhaoaa:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinctBfrom选择题where选择题.编号=^bianhaobb:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinctCfrom选择题where选择题.编号=^bianhaocc:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinctDfrom选择题where选择题.编号=^bianhaodd:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinct答案from选择题where选择题.编号=^bianhaoxrightdaan:=ODBCExecute(ODBChandle,SQLString)判断题的读取:--随机产生一个试题的编号bianhao:=Random(1,Total,1)--在试题库中读编号对应的试题的题干和答案,并存于变量ptigan和prightdanan中.SQLString:=selectdistinct题干from判断题where选择题.编号=^bianhaoptigan:=ODBCExecute(ODBChandle,SQLString)SQLString:=selectdistinct答案from判断题where选择题.编号=^bianhaoprightdaan:=ODBCExecute(ODBChandle,SQLString)四.呈现试题试题存放到变量中以后,就可以在“呈现试题”的展示图标中,通过显示相应变量的值来呈现题目。试题呈现界面可以参考图2进行设计:图2至此,d:\test\test.mdb这个数据库文件就成功地嫁到了程序中!并且程序打包发布后,用户还可以随意地修改数据库中的内容而不影响程序的运行!增强了试题的灵活性。五.设计交互式的程序结构1、设计程序时,可以参考图3所示的程序结构。图32、在填空题的交互分支“*”中,设置一个计算图标“判断并反馈”,其中的内容如下:ifEntryText=rightdaanthenresp:=你真棒!elseresp:=再试一试吧!GoTo(IconID@呈现试题)endif其功能是程序对用户所输入的内容进行判断,如果用户所输入的答案正确,则反馈信息是“你真棒!”,程序向下执行;否则反馈信息是“再试一试吧!”,并且让用户重新回答。3、在选择题的交互分支中,设置了四组按钮类型的响应。每组响应中也是设计了一个计算图标“判断并反馈”,以“A”组为例说明其中的语句:useranswer=“A”ifuseranswer=prightdaanthenpresp:=你真棒!elsepresp:=再试一试吧!GoTo(IconID@呈现试题2)endif其功能是:如果用户选择了答案A,并且A是正确答案,那么反馈信息是“你真棒!”,程序向下执行;否则反馈信息是“再试一试吧!”,并且让用户重新选择。在B、C、D分支中,只需把语句useranswer=“A”中的“A”改为相应的“B”、“C”、“D”即可。4、判断题的程序结构与选择题类似,只是在“正确”和“错误”这两个分支的计算图标中,第一条语句useranswer=“A”要做相应的修改,即:“正确”分支:改为useranswer=“T”;“错误”分支:改为useranswer=“F”。这样,一组简单的交互试题就设计完成了。在每道题的设计中,用户也可以增加限定交互次数或限定交互时间的响应,用来限定用户可以尝试的次数或时间。以上,对如何综合利用Authorware和Access设交互试题进行了简单的阐述。对此感兴趣的读者可以试着将程序进一步深化,尝试把学生的成绩写入到教师机的数据库中。这样就可以实现在局域网内考试,教师机收分的功能了!
本文标题:在Authorware中使用数据库Access
链接地址:https://www.777doc.com/doc-4586897 .html