authorware如何做考试系统
人气:0从目前
Authorware
的实际应用来看,大多数人还仅限于制作一些比较简单的多媒体课件。但
是很多软件在开发时都需要和数据库等软件结合,来对数据进行大量快速地处理。该文介绍了如何将
操作方法
- 01
摘要:从目前Authorware的实际应用来看,大多数人还仅限于制作一些比较简单的多媒体课件。但是很多软件在开发时都需要和数据库等软件结合,来对数据进行大量快速地处理。该文介绍了如何将Authorware和Access二者进行有效的结合,来开发制作在线考试系统。关键词:在线考试系统;Authorware;Access;ODBC1建立数据库我们采用Access数据库来建立数据表,然后让Authorware使用ODBC技术去访问表中的内容。在Access中建立信息库和试题库,库中各表的建立如下:信息库:学生信息表(编号,姓名(文本),学号(文本),成绩(数字))试题库:(在试题库中亦可根据需要添加试题表)试题一表(编号,题目类型(文本),题目(备注),答案(文本),分值(数字),标志(数字))试题二表(编号,题目类型(文本),题目(备注),答案(文本),分值(数字),标志(数字))试题三表(编号,题目类型(文本),题目(备注),答案(文本),分值(数字),标志(数字))要访问数据库首先要连接数据库,通过ODBC接口连接数据库,必须先设置数据源。本设计中设置数据源的方法是利用Au?thorware提供的外部函数文件tMsDSN.u32,这是32位的动态连接库文件。tMsDSN.u32中只有一个函数tMsDBRegister(),可以自动在32位ODBC控制面板中注册数据库。tMsDSN.u32文件在Authorware的安装目录中,用户在使用其函数tMsDBRegister()前要对其函数进行装载,并且要将该文件和程序文件一起打包发布。其次是操作数据库,在Authorware中提供了一个odbc.u32文件,此文件中提供了对数据库进行操作的几个函数,将其中的三个函数ODBCOpen、ODBCClose、ODBCExecute导入即可运用。ODBCOpen用于打开数据库,ODBCClose用于关闭数据库,ODBCExecute用于向ODBC的SQL解释程序发送一条SQL命令。对于数据库的各种操作均通过SQL语句去执行。2 Authorware中界面的制作图12.1登录系统界面的制作连接信息数据库计算图标内容如下:ODBChandle:=ODBCOpen(WindowHandle,"error","信息库","","")if ODBChandle=0 thendbType:= "Microsoft Access Driver(*.mdb)" --ODBC数据源驱动程序DSN:= "DSN=信息库;"--指定数据源名description:= "学生信息库;"--数据源描述FIL:= "FIL=MS Access;"--指定数据源的数据库类型DBQ:= "DBQ="^FileLocation^"信息库.mdb;" --指定数据库文件dblist:=DSN^description^FIL^DBQ--指定ODBC数据源名、描述以及与之相关联的数据库文件result:=tMsDBRegister(4,dbType,dblist)--配置数据源打开数据库源程序end if用显示图标制作一个登录界面,用交互图标作文本输入,需定义变量name、num,用来记录输入的名字和学号。利用系统变量EntryText和NumEntry把用户输入的姓名和学号分别储存到name、num中,代码为:name:=EntryText,num:=NumEntry。用户输入完信息后点击界面上的确定或重新输入按钮。确定计算图标内容如下:if name<>"" & num<>"" then--输入的姓名、学号若不为空ODBChandle:=ODBCOpen(WindowHandle,"error","信息库","","")--打开信息库sqlstr:="insert into学生信息表(姓名,学号)values("^name^","^num^")"student:=ODBCExecute(ODBChandle,sqlstr)--把刚才输入的学生的姓名、学号写入数据库中ODBCClose(ODBChandle)--关闭数据库else--输入的姓名、学号若为空SystemMessageBox(WindowHandle,"输入不能为空!","Warning",48)--给出提示GoTo(IconID@"登录界面")框需重新输入end if重新输入计算图标内容如下:GoTo(IconID@"登录界面")2.2试题系统界面的制作为了统计做题分值,需用到两个外部函数baSysFolder和CopyFile在本机建立临时数据库文件。建立临时数据库文件计算图标的内容如下:Result:=baSysFolder("temp")--获取本机上的临时文件夹路径,函数在Budapi.u32中CopyFile(FileLocation^"试题库.mdb",Result^"试题库.mdb",0)--建立临时文件,函数在Winapi.u32中连接试题数据库计算图标的内容如下:与连接信息库一样,只需把DBQ:= "DBQ="^FileLocation^"信息库.mdb;"改写成DBQ:= "DBQ="^Result ^"试题库.mdb;"即可。随机抽取试题分支中每套试题的界面如下:图22.2.1试题界面的制作(如图2)初始总成绩和题号计算图标的内容如下:score:=0n:=1用显示图标制作一个做题的界面,再利用交互图标在界面上制作3个交互按钮,各分支按钮内容的设置如下:提交计算图标的内容如下:hh:=SystemMessageBox(WindowHandle,"提交成绩后即将退出系统!确定要提交吗?","Confirmation",292)--点击提交按钮,会弹出提示框询问用户是否确定提交成绩if hh=6 then--用户若选的是yes按钮ODBChandle:=ODBCOpen(WindowHandle,"error","信息库","","")--打开信息库sqlstr:="insert into学生信息表(成绩)values("^score^")"student:=ODBCExecute(ODBChandle,sqlstr)--把做题总成绩写信息库ODBCClose(ODBChandle)--关闭信息库DeleteFile(Result^"信息库.mdb")--删除临时数据库GoTo(IconID@"退出系统")--进入退出系统end if下一题计算图标的内容如下:n:=n+1if(n>=1)&(n<=20)then GoTo(IconID@"填空题")else if(n>=21)&(n<=40)then GoTo(IconID@"单选题")else if(n>=41)&(n<=50)then GoTo(IconID@"多选题")else if(n>=51)&(n<=70)then GoTo(IconID@"判断题")elseSystemMessageBox(WindowHandle,"已完成全部测试题!可点击提交按钮提交成绩!","Information",64)--完成全部测试,提示用户可提交成绩end if上一题计算图标的内容如下:n:=n-1if……end if--与下一题计算图标中的内容一样,但没有else分句;在此分支中设置按钮的激活条件为n>=2,当题目号为1时,此按钮不可用接着系统根据n值在题型框架图标中选择相应的题型。2.2.1.1题型界面的制作每种题型的交互界面可根据此题型来制作,如填空题的界面制作如上图2,图中各图标的内容设置如下:读题计算机图标的内容如下:ODBChandle:=ODBCOpen(WindowHandle,"error","试题库","","")--打开试题库sqlstring:="select题目from试题一where编号=’"^n^"’"timu:=ODBCExecute(ODBChanlde,sqlstring)--根据n值读取题目ODBCClose(ODBChandle)--关闭试题库在显示填空题目的显示图标中用文本输入工具输入:{timu},利用交互图标作文本输入交互,用户根据显示的题目答题。以下计算图标中的flag变量是用于记录此题分值是否被加入过总分,flag:=0表示未被加入过,flag:=1表示加入过,题目原标志段中的值为0。做题交互分支中计算图标的内容如下:answer:=Entrytext --把输入内容储存在answer变量中ODBChandle:=ODBCOpen(WindowHandle,"error","试题库","","")--打开试题库sqlstr:="select标志from试题一where编号=’"^n^"’"flag:=ODBCExecute(ODBChanlde,sqlstr)--据n值取出该题目对应的标志值放在flag变量中sqlstr:="select答案from试题一where编号=’"^n^"’"daan:=ODBCExecute(ODBChanlde,sqlstr)--据n值取出该题目对应的答案值放在daan变量中sqlstr:="select分值from试题一where编号=’"^n^"’"fenzhi:=ODBCExecute(ODBChanlde,sqlstr)--据n值取出该题目对应的分值值放在fenzhi变量中if flag=1 then--若flag为1score:=score-fenzhi --先从总分中减掉该题的分值end ifif answer=daan then--若用户输入的答案与题目答案一致score:=score+fenzhi --在总分中加入该题分值setflag:="update试题一set标志=1 where编号=’"^n^"’"--把该题的标志值置成1ODBCExecute(ODBChanlde,setflag)end ifODBCClose(ODBChandle)--关闭数据库2.3退出系统界面的制作用显示图标制作一个退出的界面,利用quit()函数退出即可。3网络发布将程序打包为text.a7r文件,再用Authorware的Web Packager打包生成用于网络上浏览的text.aam,将生成的text.aam流文件放在服务器的考试系统目录下,最后使用任何文本编辑软件编写简单的html詹慧静.用Authorware7.0制作多媒体课件[M].北京:高等教育出版社,2009.[3]李智鑫.Authorware7.0中文版多媒体制作教程[M].北京:中国水利水电出版社,2006.[4]缪亮,付邦道.Authorware多媒体课件制作实用教程[M]. 2版.北京:清华大学出版社,2008.
加载全部内容