CSDN博客

img lwcsoft

用Authorware制作考试程序

发表于2003/10/12 23:54:00  2154人阅读

分类: 原创

Authorware制作考试程序

文/图 幽雀

Authorware是一个非常优秀的多媒体开发工具,虽然现在的多媒体开发工具层出不穷,但Authorware以其简单易学易用、功能强大、无需太多的编程即可制作出具有交互功能非常强的多媒体产品,在教学应用的多媒体开发中,深受教育工作者的喜爱。用Authorware制作的考试程序,虽然比不上专业的考试软件,但它以制作简单、操作简单、无需进行软件操作培训,也不用花费一笔资金去购买或制作专用考试系统,在教学工作中还是有很大实用价值。

本文将通过实例进行讲解,帮助你逐步掌握用Authorware制作考试程序整个流程。这里要求你对Authorware有相当的了解,因为本文要用到较多Authorware的函数,而且不对用Authorware制作的细节做详细讲解。下面进入正题,我们实例讲解一个“初级中学微机考试系统”制作过程,这个作品运行后的界面如图1、图2、图3所示。

一、     程序分析

考试的对象是面向初中的学生,因为各地方采用的学制不同,所以程序结构有所差异。本程序是采用五四制,初中为四个学年,那实例程序共有四大模块,每一学年为一模块,点击相应的学年进入每一模块,每一模块会有三个分支,分别是:答题、检查、交卷。下面介绍每一分支具体的工作。请结合图一—图十理解本程序。

1、答题部分,也是核心部分,考虑Authorware本身,因为它对文件的读写能力并不是很强,所以实例程序采用纯文本文件存储试题及答案,试题形式只有选择题和判断题,本实例程序选择题采用单项选择题,如果采用多项选择题,那整个程序结构会有很大的不同。点击答题按钮进入答题部分,首先进行单项选择题,然后是判断题,具体工作要用函数功能完成,读取试题文件并显示(包括试题及选项)每个选项对应一个按钮,按钮实现的功能为:读取下一道试题及选项并把上一道试题的答案写入临时的答案文件(每一题答案为一行),如果有多人考试,那在下一个进行考试时,此文件要被覆盖,还有一个答题完毕按钮,以备随时终止答题。如果是多项选择题,那要多制作出一个按钮,实现功能为读取下一道试题,选项按钮只实现写入答案的功能。至此整个答题部分的功能都已经实现。

2、检查部分只实现试题的浏览,而并未提供修改的功能。可在答题之前先浏览试题。要求程序在读取试题文件和临时答案文件时,保持试题与答案的统一、一致。

3、交卷部分要实现自动打分功能,要求事先把答案做好,每一题的答案为一行,存储为标准的答案文件。试题数量要与分值匹配好,实例程序是选择题30题,判断题20题共50题,每题2分共100分,试题数量可根据实际情况而定,提倡是选择题要多,判断题要少,这样更能体现真实水平。程序实现标准答案文件和临时答案文件的读取并加以判断,如果相同分值加2,最后显示总成绩,程序退出。

至此整个程序的结构及流程,我们都已经分析完毕,相信大家对此程序已经有了一个概况。在这里补充一点,我们可在程序的开始加人一个考试时间倒计时显示,以分钟为基本单位,定义一个变量保存总时间,每过一分钟变量值减一,在答题部分读取下一题的同时并判断变量值,如果值为零程序退出并打分。

二、程序制作

由于篇幅所限,文中提示文字、背景及添加各种图标的制作过程不做详细叙述,请结合图四—图十中提示文字去自行设计。本文只对计算图标中的变量和函数的作用做详细讨论,以及在制作过程中需要注意的事项。制作之前先把试题文件格式加以说明,以更好理解本程序。试题内容:首先是选择题,每题为一行,每题选项为一行,下面是判断题,每题为一行,在选择题和判断题之间要空两行,最后是一行提示文字,提示答题完毕。

(一)程序主干

程序主干主要包括:背景、提示文字、开始按钮和退出按钮,如图四。退出按钮中主要是几个显示图标(版权信息等)和一个计算图标(实现程序退出),计算图标的内容是:Quit(0)。在开始按钮中是本程序的四大模块,开始按钮内容如图五。图中标注“定义变量并赋初值”的计算图标,它的作用是:定义各模块使用的变量并且赋初值,内容如下(在/*……*/之间的为解释文字,以下类同):

number:=1  /*记录试题行数*/

numbera:=0  /*记录选择题答案行数*/

lin:=0  /*读取文件时使用的变量*/

line:=0  /*读取文件时使用的变量*/

file:=0  /*读取文件时使用的变量*/

xzt:=0  /*存储试题内容变量*/

xzda:=0  /*存储选择题选项变量*/

(二)四大模块

四大模块,每一个模块为一个学年,本文只以初一学年为例,其它学年和它制作过程相同,只是在读写文件时的文件名不同,制作时做相应的修改即可,如图六。在图中标注“写临时答案文件”的计算图标,作用是写一个空的文件,记录答题者的答案,计算图标的内容如下:

wc:=""  /*定义临时变量赋空值*/

WriteExtFile(FileLocation^"tiku//daan.txt",wc)  /*使用函数,写答题者答案文件,文件写入tiku目录,文件名为daan.txt内容为空*/

tihao:=1  /*定义题号变量,用来记录题号*/

每一个大模块中,有三个分支,以下讨论各分支工作。

1、            答题分支

答题是最复杂的,需要制作的内容较多,如图七。图中标注“读取第一道试题”的计算图标,作用是读取第一道试题,如果不加入此图标,程序进入答题界面时就无法正常显示,内容如下:

file:=ReadExtFile(FileLocation^"tiku//shiti1.txt")  /*读取tiku目录下的shiti1.txt文件给file变量*/

if file=""then

xzt:="无题"  /*判断file变量,为空则显示“无题”*/

else  /*如果不为空,执行以下程序*/

number:=1  /*第一道选择题行数*/

numbera:=2  /*第一道选择题选项行数*/

line:=GetLine(file,number)

lin:=GetLine(file,numbera)

xzt:=GetLine(line,1,1,Return)  /*读取选择题赋给变量xzt*/

xzda:=GetLine(lin,1,1,Return)  /*读取选项赋给变量xzda*/

end if   /*判断结束*/

现在已经实现了试题的读取,但是还是无法显示。试题显示制作过程:双击如图七中,标注“选择题”的交互图标,在出现的界面中,用文本工具分别添加两行内容:{xzt}{xzda}{xzt}用来显示选择题,{xzda}用来显示选项,这时就可以正常显示了,如图八。制作判断题时只把{xzda}去掉即可,只用变量{xzt}来完成试题的显示。

读取下一试题的工作由四个选项按钮来完成,本文以字母为“A”的按钮为例讲述如何读取下一试题,其它的按钮制作过程和它相同,只是写入临时答案文件的字符不同。在字母为“A”的群组图标中添加一个计算图标,内容如下:

AppendExtFile(FileLocation^"tiku//daan.txt",tihao^"A"^Return)  /*把题号和字母“A”写入tiku目录下的临时答案文件daan.txt*/

file:=ReadExtFile(FileLocation^"tiku//shiti1.txt")

if file=""then

xzt:="无题"

else

tihao:=tihao+1  /*题号加1*/

number:=number+2  /*选择题行数加2*/

numbera:=numbera+2  /*选项行数加2*/

line:=GetLine(file,number)

lin:=GetLine(file,numbera)

xzt:=GetLine(line,1,1,Return)  /*读取下一题赋给变量xzt*/

xzda:=GetLine(lin,1,1,Return)  /*读取下一题选项赋给变量xzda*/

end if

if xzt="" then  /*判断选择题是否结束,如果结束执行以下语句*/

tihao:=tihao-1  /*题号减1*/

AppendExtFile(FileLocation^"tiku//daan.txt","下面是判断题"^Return)  /*向临时答案文件写入字符“下面是判断题”,作用是在执行检查时给以提示*/

GoTo(IconID@"擦除背景")  /*跳出选择题进入判断题*/

end if

“答题完毕”按钮的作用是结束本次交互,进入判断题。图七中标注“变量赋值”的计算图标内容是:

number:=62  /*第一道判断题的前一行,本例选择题是30道,加上选项共60行,再加上两行空行*/

图七中标注“读取判断题”的计算图标内容如下:

tihao:=tihao+1  /*题号加1*/

number:=number+1  /*第一道判断题*/

line:=GetLine(file,number)

xzt:=GetLine(line,1,1,Return)  /*读取判断题赋给变量xzt*/

实现下一道题的读取是由“正确”和“错误”两个按钮来完成的。向“正确”按钮的群组图标中添加一个计算图标内容如下:

AppendExtFile(FileLocation^"tiku//daan.txt",tihao^"A"^Return)  /*向临时答案文件中写入题号和字符“A”*/

GoTo(IconID@"读取判断题")  /*跳转到“读取判断题”的计算图标,实现下一道判断题的读取*/

“正确”和“错误”两个按钮的内容基本相同,只是“正确”按钮向文件中写入字符“A”用以标示正确,“错误”按钮向文件中写入字符“B”用以标示错误。

2、            检查分支

检查分支只实现文件的读取,较好制作,如图九。图中标注“读取试题”的计算图标内容如下:

file:=ReadExtFile(FileLocation^"tiku//shiti1.txt")

file1:=ReadExtFile(FileLocation^"tiku//daan.txt")  /*读取临时答案文件*/

if file=""then

xzt:="无题"

else

number:=1  /*第一道选择题的行数*/

numbera:=2  /*第一道选择题选项的行数*/

tihao:=1

line:=GetLine(file,number)

lin:=GetLine(file,numbera)

tihao1:=GetLine(file1,tihao)

xzt:=GetLine(line,1,1,Return)

xzda:=GetLine(lin,1,1,Return)

tihaox:=GetLine(tihao1,1,1,Return)  /*读取临时答案文件的答案内容赋给变量tihaox*/

end if

在“下一道题”的群组图标中添加一个计算图标内容如下:

if tihao>31 then  /*判断是否为判断题,如果是执行以下语句*/

tihao:=tihao+1

number:=number+1

tihao1:=GetLine(file1,tihao)

line:=GetLine(file,number)

xzt:=GetLine(line,1,1,Return)

xzda:=""  /*此变量是显示选择题选项的,在此为空*/

tihaox:=GetLine(tihao1,1,1,Return)

else  /*以下是读取选择题的*/

tihao:=tihao+1

number:=number+2

numbera:=numbera+2

tihao1:=GetLine(file1,tihao)

line:=GetLine(file,number)

lin:=GetLine(file,numbera)

xzt:=GetLine(line,1,1,Return)

xzda:=GetLine(lin,1,1,Return)

tihaox:=GetLine(tihao1,1,1,Return)

end if

3、            交卷分支

交卷分支主要实现成绩的统计。统计成绩主要是由标准答案文件内容和临时答案文件内容进行比较,如果答案相同,则分值累加。交卷分支的制作流程如图十所示。其中最主要的是“统计成绩”计算图标,其内容如下:

number:=0

numbera:=0

line:=0

lin:=0

tihao44:=0  /*用它记录分数*/

xzt:=0

xzda:=0  /*以上所有变量清零*/

i:=1  /*定义计数变量*/

file1:=ReadExtFile(FileLocation^"tiku//daan.txt")

file2:=ReadExtFile(FileLocation^"tiku//bzda1.txt")

repeat with i:=1 to 51  /*循环读取50道题的答案,进行比较,其中包括一行“下面是判断题”的提示语,所以要循环51次*/

number:=number+1

numbera:=numbera+1

line:=GetLine(file1,number)

lin:=GetLine(file2,numbera)

xzt:=GetLine(line,1,1,Return)

xzda:=GetLine(lin,1,1,Return)

if xzt=xzda then

tihao44:=tihao44+2  /*分值累加,每题2分*/

end if

end repeat  /*结束循环*/

至此,考试程序我们已制作完成,相信大家在程序分析和程序制作的指引下,再结合图例,能很快制作出属于自己的考试软件。如果大家需要示例程序可访问http://lwcsoft.myrice.com,到“麻雀老巢”专栏下载。

http://lwcsoft.myrice.com          2003.9.14

0 0

相关博文

我的热门文章

img
取 消
img