利用Authorware 制作选择
第一部分
9.1 简单介绍
可以做到随机取题,题目还可以分级,随机分配答案,自动判断对错,自动计分,不需要使用数据库。
9.2教材说明
选择题是一种比较常见的测试题型,适用于各
各学科。
选择题包括单项选择、多项选择题。判断题也适用于选择题的
要求。每个选择题应是根据辅导教材中有关内容的分析整理、编制而成,避免出现直接照抄书本的试题。选择题应该符合以下设计要求:
(1)题干应是一个完整的句子或问题,而不是一个以逗号结尾的不完整的句子;
(2)题干和备选项都应该是肯定的,而不是否定的,不应使用双重否定来误导考生,或先是一个错误的表述再加一个肯定的说明;
(3)避免使用特定的限定副词,例如“决不”、“总是”等;
(4)为每一个选择题提供四至五个备选答案,每一个备选答案均应有一定的干扰性,最好是利用经常会出现的错误设计干扰项,各选项以A、B、C、D、E为序号排列;
(5)避免使用“以上均不是”和“以上均是”的备选答案;
(6)数字型的选项按升序排列;
(7)判断题的答案正确用“?”表示,错误用“×”表示。
9.3 设计思路
用TXT文件保存题库,保存的时候按一定的格式输入,即每题占六行,第一行是题目,第二行是正确答案,第三行至第六行是三个备选的答案,后面的题目也按这样的格式输入,中间不留空行。在Authorware中用ReadExtFile()函数读取题库,用LineCount()函数判断题库的总行数,把它除以6就是题目总数。用Random()函数实现随机取题和随机分配答案。
9.4 素材准备:
收集题库,整理好文本文件,格式化好其中的文本。
9.5 程序制作
1(程序流程图
先来看看制作好的主流程是怎么样的,如图9.1所示。
图9.1 程序流程图
主流程大概分成了三部分,一是界面及初始化部分,二是选择难度及出题部分,三是判断对错部分。
第九章 选择题 第二部分
本篇选自《Authorware 7.0课件制作实务》,网上购买:当当网 华储网
3(制作步骤
下面分三部分来讲讲制作过程,选择题首先要有个界面,然后在上面再安排好一些按钮,提示语等等部件的位置,这在开头就要
好,如果在做的过程中再来改变的话,有时会造成一些不必要的麻烦,特别是界面上安排了好多热区的话,要全部调整热区的位置可不是一件什么开心的事。
?上面主流程中的第一部分
界面及初始化部分包括了三个图标,最上面的说明图标没什么东西,只有个版权
说明,下面的“面板.gif”就是作者做的一个面板
图上那些有选择定位点框着的字和图片是在Authorware中加上去的,整个面板分成了三部分,一是题目及答案部分,在中间的大部分位置,二是控制部分,在右边,三是提示语出现部分,在最下面的空位。
注意看题目框及答案选择框,里面好象有一些空白的选择定位点框着,其实那里面是有内容的,都是一些用花括号括起来的变量,用来显示题目和可选答案的,
只不过程序没有运行,它们没有可显示的值罢了
上图的变量timu在后面的出题过程中会把选中的题目附值给它,外面的花括号,是表示在【显示】图标中显示变量的值,这样在这里就会显示出题目的内容,下图的display是一个数组,用来
显示的可选答案,在B的选择框里应该就是{display[2]}了,C框是{display[3]},D框是{display[4]},后面选题过程中会把分配好的可选答案附值给这四个数组项,在这里就可以显示出来供学生选择了。
“初始化”【计算】图标的内容因为跟后面的图标内容有关,所以先不讲。
上一节 下一节
第九章 选择题 第三部分
本篇选自《Authorware 7.0课件制作实务》,网上购买:当当网 华储网
?界面有了,关键就是要怎样把题目显示出来给学生做,这就是第二部分的功能了。
在“出题”那个交互结构中,里面包括了八个按钮交互,分别是三个单选按钮,用来选择题目难度;一个“OK”按钮,用来根据选择的难度读入相应的题库;一个“重选”按钮,方便进行难度的重新选择;一个“开始”按钮,用来开始出第一题;一个“下一题”按钮,用来出下一题;一个“退出”按钮,用来退出程序。
实现出题这一步的思路是:首先把不同难度的题目存放到不同的TXT文、件中,用1.txt、2.txt、3.txt命名,数字越大难度越高。然后在选择难度的单选按钮中,记录选择的是1、2还是3,在按下“OK”按钮时,根据刚才选择的数字,从磁盘上读入相应的题库,存入一个变量中;当按下“开始”按钮时,用Random()函数从刚才的变量中选择题目,然后在变量中把这个题目删除,防止下次选到重复的题目;按“下一题”按钮时,再次用Random()函数选题。
?首先来介绍三个单选按钮如何设计
这三个单选按钮是互斥的,也就是说只能有一个被选中,在设计时,就要保证在单击一个单选按钮时,其它两个按钮要显示未选中的状态,要做到这一点,只要在一个单选按钮被选中时,把其它两个按钮的checked属性值设为0,以难度为“高”的单选按钮为例,它下面的【计算】图标中的代码如下: Checked@"中":=0
Checked@"低":=0
同理,当单击“中”单选按钮时,应执行:
checked@"低":=0
checked@"高":=0
当单击“低”单选按钮时,应执行:
checked@"高":=0
checked@"中":=0。
?然后是“OK”按钮
当选完难度后,按“OK”按钮读入题库,先用一组判断语句判断是哪个单选按钮被选中(也就是哪个单选按钮的checkecd属性是等于1),然后用ReadExtFile()函数读入相应的题库,具体代码如下:
--使OK按钮失效
okClick:=1
--使选择难度的单选按钮失效
ok:=1
--使开始按钮有效
start:=1
--开始选择读入相应题库
if Checked@"高"=1 then
nandu:=3
else
if Checked@"中"=1 then
nandu:=2
else
nandu:=1
end if
end if
tiku:=ReadExtFile(FileLocation^"题库\\"^String(nandu)^".txt")
nandu变量保存选择的难度,tiku变量保存读入的题库,ReadExtFile()函数读入磁盘中的文件内容,它要求完整路径作为参数。FileLocation系统变量记录的是当前程序所在的文件夹的完整路径,string()函数把当前数据类型转换成字符串类型。如果nandu的值是1的话,FileLocation^"题库\\"^String(nandu)^".txt"的意思就是:当前程序所在文件夹下的“题库”文件夹下的1.txt。
?读入了题库
按“开始”按钮就开始出题了。出题的思路是:LineCount()函数判断题库的总行数,把它除以6就是题目总数。用Random()函数实现随机取题和随机分配答案。具体代码如下所示:
--记录题库的总行数
tikuLine:=LineCount(tiku)
--如果题库中已经没有题目了,转到题库空图标去处理
if tikuLine=0 then
start:=0
timuNext:=0
GoTo(@"清空屏幕显示")
end if
--随机取题,因为题库中每题加上答案是占5行,所以tikuLine要除以5 getnum:=Random(1,tikuLine/5,1)
--保存正确答案
right:=GetLine(tiku,getnum*5-3) --读入选择答案
ans:=Array(0,4)
ans[1]:=GetLine(tiku,getnum*5-3) ans[2]:=GetLine(tiku,getnum*5-2) ans[3]:=GetLine(tiku,getnum*5-1) ans[4]:=GetLine(tiku,getnum*5) --读入选择的题目
timu:=GetLine(tiku,getnum*5-4) --删除已经选择的题目及答案,防止重复选题
tiku:=DeleteLine(tiku,getnum*5-4,getnum*5)
--随机分配答案
--用于屏幕显示的数组
display:=Array(0,4)
--每次用随机取得的num,把ans数组中对应的元素传给display数组, --再用ans数组中的剩下的最后的一个元素覆盖刚才的ans[num],保证每个答案都被选择一次
repeat with i:=1 to 4
num:=Random(1,4-i+1,1)
selex:=ans[num]
ans[num]:=ans[4-i+1]
display[i]:=selex
end repeat
GoTo(@"判断对错")
关键是随机分配答案的算法,这里用了一个循环语句来实现: display:=Array(0,4)
repeat with i:=1 to 4
num:=Random(1,4-i+1,1)
display[i]:=ans[num]
ans[num]:=ans[4-i+1]
end repeat
display是保存并显示候选答案的数组,ans是暂时保存候选答案的数组,在循环中,首先从候选的四个答案中随机选择一个传递给display[1],然后在ans数组中用最后一个答案覆盖刚才选出来的答案,这样ans中的前三个答案就是还没有选择过的答案,下一次的循环就只要在ans的前三个答案中选择就行了,选择的结果传递给display[2],然后还是用当时的最后一个答案(也就是ans[3])覆盖刚选的答案,那ans的前两个答案就是还未选择的答案,第三次循环就只要从这两个答案中选择就行了,第四次循环也是如此。
至此,选题完毕,最后用GoTo(@"判断对错")转到判断对错的交互,等待用户的选择。
上一节 下一节
第九章 选择题 第四部分
本篇选自《Authorware 7.0课件制作实务》,网上购买:当当网 华储网
?但是因为这个选题的过程在后面还要调用到,所以选题的这个【计算】图标并没有直接放在“开始”按钮下面,而是在“开始”按钮下用GoTo函数跳转,其中代码如下:
timuNext:=1
click:=0
GoTo(@"选题")
而“选题”【计算】图标则放到了“退出”按钮下面的Quit()函数的后面,这样在程序运行中可以保证在没有调用“选题”图标时,该图标永远不会被运行到,如图9.5所示。
图9.5 【群组】图标“退出”中的内容
这是“退出”按钮下面的内容,按“退出”按钮后,只会运行“quit”【计算】图标中的quit( )退出程序,不会运行到后面的图标,后面的图标都是在程序中由【计算】图标来调用的。
?单击“开始”按钮就可以开始出第一题,但是在完成第一题后,第二题就不能叫开始了,所以这时候需要一个“下一题”的按钮,其实它的作用和“开始”按钮是一样的,都是从题库中随机出题,所以它的内容基本上和“开始”按钮是一样的,
图9.6 【群组】图标“下一题”中的内容
其中的【计算】图标“下一题”中的代码为:
--使四个热区失效
click:=0
GoTo(@"选题")
在前一题完成后会出现一个对或错的提示,所以在做下一题前要先用一个擦除图标把这些提示擦除掉;然后“下一题”的【计算】图标中基本上也是用goto函数跳转到“选题”图标去出题。
上一节 下一节
第九章 选择题 第五部分
本篇选自《Authorware 7.0课件制作实务》,网上购买:当当网 华储网
?完成“选题”后,就要跳转到“判断对错”的交互去等待用户的选择。
?这个交互只有四个热区交互,对应了屏幕上的A、B、C、D四个选择,主要作用是判断用户选择的答案是否正确,并出示相应的提示。这四个【计算】图标中的内容依次是:
【计算】图标“A”中的内容:
--使四个热区失效
click:=1
if display[1]=right then
GoTo(@"right")
else
GoTo(@"wrong")
end if
【计算】图标“B”中的内容:
--使四个热区失效
click:=1
if display[2]=right then
GoTo(@"right")
else
GoTo(@"wrong")
end if
【计算】图标“C”中的内容:
--使四个热区失效
click:=1
if display[3]=right then
GoTo(@"right")
else
GoTo(@"wrong")
end if
【计算】图标“D”中的内容:
--使四个热区失效
click:=1
if display[4]=right then
GoTo(@"right")
else
GoTo(@"wrong")
end if
四个热区交互的内容基本上一样,第一句都是使四个热区失效(因为已经选择了答案,不能再选第二次),后面的判断语句是用选择的相应答案与正确答案比较,对就goto(@“right”),出示对的提示,错则goto(@“wrong”),出示
错的提示。
上一节 下一节
第九章 选择题 第六部分
本篇选自《Authorware 7.0课件制作实务》,网上购买:当当网 华储网
?“right”与“wrong”图标都在刚才的“退出”按钮下,内容如图9.7所示。
对错提示的内容 图9.7
主要就是一个提示的画面。“right”图标下还有一个加分的【计算】图标,作用是对成绩进行累加,内容如下:
if nandu=1 then
fenshu:=fenshu+10
else
if nandu=2 then
fenshu:=fenshu+20
else
fenshu:=fenshu+30
end if
end if
变量fenshu保存总分,if语句用根据选择的难度来进行加分。这个分数显示在开始的面板上
至此,整个选择题完成。
9.6 制作小结
使用文本文件也可以代替数据库来存放数据,关键是要设计好数据的格式。
上一节