vfp编程

更新时间:2023-03-12 23:21:26 阅读: 评论:0

唢呐名曲-6s现场管理

vfp编程
2023年3月12日发(作者:苏州十大园林排名)

ISSN 1 009—3044 ’

Compu ̄rKnowledge andTechnology电脑知识与技术

Vo1.6,No.5,February 2010,PP.1118-1120,1125

E—mail:xsjl@cccc.net.cn

http://www.dnzs.net.en

Te1:+86—55 l一5690963 5690964

Windows环境下利用VFP编程实现带背景音乐的无纸化考试系统

夏建华 、

(浙江省绍兴县职业教育中心,浙江绍兴312030)

摘要:该文给出了一种在Windows环境下利用Visual Foxpro编制无纸化考试系统的实现方案,同时介绍了利用系统的一个动态链

接库Foxtools.fll巧妙地为系统添加背景音乐的技巧,一改以往使用0LE控件嵌套的繁琐方法,效果更好,占用资源更少。

关键词:背景音乐;动态链接库;数据库;控件;表单;Visual FoxPro(VFP)

中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2010)05—1118—03

Use VFP Programming to Implementation a N0npaperlized System with Background Music Based on Windows Operating System

XIA Jian—hua

(Shaoxing county vocational education center,Shaoxing 312030,China)

Abstract:This article presents a Windows environment using Visual FoxPro compilation of the nonpaperlized system of implementation,at

the same time describes the use of a dynamic—link library Foxtools.fll neady to add background music and desist using the 0LE controls

nested cumbersome method will work better,less resource—intensive.

Key words:background music;Dynamic—hnk library;Datebase;Control;Form;Visual Foxpro(vFP)

当今世界最先进、最省事的考试方法莫过于无纸化考试方式,即利用微机进行自动化出题、改卷、统计分数等代替手工操作的

考试方式.现已广泛应用于如机动车驾驶员理论科目考试等场合。微机无纸化考试系统的应用使得各类考试逐渐趋向规范化和标

准化,而在各类标准化考试中选择题、是非判断等客观题所占的比例越来越大,本文就以单项选择、多项选择和是非判断题为例粗

浅地探讨一下怎样利用数据库技术完成题目的生成、显示、操作和计分方法,以求抛砖引玉,同时希望能对利用Visval Foxpro进行

这方面编程开发的朋友有一定帮助。

关于无纸化考试的微机实现,是探讨得比较多的一个话题,以前曾有一少作者提出过见仁见智的方案.然而大都是建立在DOS

这个早期操作系统环境下的,且离不开UCDOS汉字系统,这种利用Foxbase或F0xPro编写出来的程序不但代码冗长、界面粗糙,而

且操作不方便。而今在Windows环境下,利用功能强大的面向对象开发工具如Visual FoxPro可以十分方便地开发出界面美观、操作

方便的考试系统。并且我们还可以利用VFP的动态链接库foxtoo]S.fll给系统加上美妙的背景音乐。

1背景音乐的实现

在利用Visual Foxpro编制应用程序时,如果能给应用程序添加背景音乐,无疑是件锦上添花的事,背景音乐能给应用程序增色

不少。不般的方法是利用OLE(对象嵌入与链接)进行嵌套。具体方法是选择“表单控件”上的“OLE容器控件”,将其拖到表单上,再

在“插入对象(Insert Object)”窗口中选择“媒体剪辑”,调用“媒体播放机”,利用它来播放出音乐,同时把播放任务条隐藏起来。利用

这种方法要占用大量系统资源,且要利用到外部程序“媒体播放机”,不是一个好方法。其实我们可以利用VFP的动态链接库fox.

tools.fll来轻松实现背景音乐,而且极少占用系统资源。foxtools.fll位于VFP的安装目录中,默认安装时可以在C:Wrogram Files\VFP5

目录下找到它,你可以把它单独拷贝到你的考试系统项目的主目录内,这里我们假定C:\Quiz为我们考试系统的主目录,把foxtools.

玎l拷贝到其内。接着要准备一WAV格式的背景音乐文件(这里以back.wav这例),放于主目录C:\Quiz中;现在我们可以为系统添加

背景了,在考试系统项目的第一个表单(这里为Form1)的Activate事件中加入如下代码:

public sound

set defa to C:\Quiz

set Library to foxtools.fll &&指定FoxPro动态链接库

sound=regfn(”SndplaySound”,”CI Vl I TItl,IIMmsystem”)

=callfn(sound.”back.way”,11 &&播放背景音乐back.wav

为了在表单释放时关闭音乐,同时在LostFocus事件中加入代码:

=Callfn(sound,””,0)

set library to

同理你可以为系统内的任一个表单添加不同的背景音乐,方法是在表单的Activate和LostFocus事件中分别加入以上的代码,

如果指定音乐文件back.wav为其它wav,则可以播放出不同的背景音乐了。

2考试系统韵前期准备——数据库准备

系统中要建立两类数据库:考生名册库与题库。每个考试班级应建立单独的考生名册数据库,注意它在Visual foxPro中称为表,

即DBF文件。接着把考生班级放在登录界面的下拉列表框中供考生选择。这里建立三个样例班级考生名册表:97建经.DBF、97水

收稿日期:2010—01—03

作者简介:夏建华,浙江省绍兴县职业教育中心计算机讲师,中学一级教师,中国计算机用户协会多媒体分会会员,中国管理科学研

究院学术委员会特约研究员,从事计算机网络、数据库、电子商务方面的教学和研究工作。

1118 软件设计开发* * 本栏目责任编辑:谢媛媛

第6卷第5期(2010年2月)

电.DBF和97计中.DBF,每班人数不限,库结构如下表所示

Computer Knowledge and Technology电脑知识与技术

接着建立题库,本无纸化考试系统包括三种题型:单项选择题、多项选择题、是非判断题,故系统应包括这三个测试模块,三种

题型的数据库结构如下:

多项选择.dbf

选A

选B

选Il

选I

笄集

炎型 瘫段

‘ 绮 252

字箭 126

宁符, 126

7-祷 126

1 26

字荷 1

逻 ■ l

建立完了数据库后,输入班级学生名册和各类题目,准备工作即告结束。这里以20个单项选择题(每题2分)、10个多项选择题

(每题4分)、10个是非判断题(每题2分)为例进行考试,当然你也可以改变各类题目数量,但评分标准亦要进行相应改变。

3总体设计

首先要确定设计目标:系统能实现考生登录、题目读取、答题、成绩统计和显示等。

其中单项选择和多项选择同属于选择题型,但因多项选择有多个正确答案,所以在设计上应有所区别,刚好在Visual FoxPro中

有单选框与复选框等控件与之相对应。

各模块功能如下:

1)登录模块:考生登录功能;选择班级、输入学号后,系统打开考生名册库,把指针定位到与输入学号相符的考生记录,同时显

示该考生的姓名供考生核对,无误后随即进入测试模块。

2)测试模块:分为“单项选择”、“多项选择”、和“是非判断”三个标准模块。每个模块界面大同小异,有“上一题”、“下一题”等按

钮.同时显示题目总数和剩余量。

3)成绩模块:成绩的统计与显示功能。考生一旦登录系统,首先初化成绩(Scores)为0,随后每做一题即自动累加计分,待到考生

按下“交卷”按钮后,弹出一个 示该考生成绩的表单窗口,然后退出系统,考试即告完成。

4源代码举例

4.1 Form“考生登录”(Activate事件)代码

SETEXACT 0N

set defa to sys(5)+”\quiz”

modi window screen title”绍兴工业学校计算机考试系统”

zoom window screen max &&使运行窗口最大化

SET SYSMENU OFF &&关闭窗口内的系统菜单

set path to sys(2004)

public scores &&定义一个存放考生成绩的公用变量scores

scores:O

thisforin.text2.SetFocus &&把光标定位到输入学号文本框

4.2登录模块窗口中,输入学号显示考生姓名,核对无误,按“正确无误”按钮进入测试模块

对此按钮设置代码如下:

Button“正确无误”(Click事件1代码

XH=thisform,text2.value ’

BJ=thisform.Combo 1.value

select 1 ‘

use\quiz\data\&BJ

select 2

nse\quiz\data\单项选择

select 4

use\quiz\data\多项选择

select 6

use\quiz\data\是非判断

if XH!=0

select 1

locate all for学号=XH

iffound0

thisforin.text4.value=姓名

成绩=scores

本栏目责任编辑:谢媛媛

&&打开选中的班级名册库

&&打开“单项选择”题库

&&打开“多项选择”题库

&&打开“是非判断”题库

&&如果学号不空

&&把指针定位到与输入学号相符的考生记录

&&显示考生姓名以便核对

; 软件设计开发 1119

丽 一~ 逻逻是 删

匝宽 一社 一一~~一一~~~ 单一=}一

ComputerKnowledgeand T

echnology电脑知识与技术

wait””

release thisform

doform\quizkforms\单项选择 &&打开“单项选择”模块窗口

else

messagebox(”没有找到你的名字,请重新输入学号”)

thisform.text4.value=”没有相应姓名”

endif

else

thisform.text4.value=”查无此人”

endif

4.3 Form“单项选择”(Activate事件)代码

public Bum

select 2

count all to Bum

replace all对错with.F.

gotop

thisform.text1.value=题目

&&定义一个存放题目数量的公用变量num

this.optiongroup1.option1.caption=”A、”+选a

this.optiongroup1.option2.caption=”B、”+选b

this.optiongroup1.option3.caption=”C、”+选C

this.optiongroup1.option4.caption=”D、”+选d

this.1abel1.caption=str(num)

thisform.1abel2.caption=str(1)

&&读取单项选择题目

&&读取选项A.以此类推

&&显示单项选择题目总数

&&显示当前为第1题

4.4各模块中的“下一题”按钮不但能更新题目。同时具有分数累加功能

其源代码如下:

¥ ¥女 Bunon“下一题”(Click事件)代码料料% }{

if recno0<=num &&如果库指针没有到达最尾

if thisform.optiongroup1.value=答案 &&如果考生答案与标准答案相同

replace对错with.T.

else

replace对错w .F.

endif

thisform.1abel2.caption=str(recno0+1)

skip &&题库中指针下移

thisform.tabel7.caption=…’

thisform.1abel8.visible=.f.

thisforiB.text2.visible=王

thisforil1.text1.value=题目 &&显示下~个题目内容

thisform.optiongroup1.option1.caption=”A、”+选a

thisform.optiongroup1.option2.caption=”B、”+选b

thisform.optiongroupI.option3.caption=”C、”+选C

thisform.optiongroup1.option4.caption=”D tt+选d

thisform.optiongroup1.value=0

e】se

select 2

count for对错=.T.to SCO

scores=sco*2

select 1

&&分数统计。统计答对的题目数量

&&单项选择每题2分,故要}2

replace成绩with scores &&把单项选择模块的得分记入考生成绩字段

messagebox(”单项选择已做完,下面进入多项选择!”)

doform\quizkforms\多选

thisform.hide

endif

4.5为了使考生能修改前面做过的题目。设置“上一题”按钮

其源代码如下:

料料¥料Butt0n“上一题”(Click事件)代码木牟 料

if!bofn &&如果库指针没有达到首记录

skip一1 &&题库中指针向上移一个记录

this'form.1abel2.caption=str(recnoO1

thisform.text1.value=题目 &&以下显示上一个题目内容

thisform.optiongroup1.option1.caption=”A、”+选a

1120 t 软件坦ttR发 t e,,

第6卷第5期(2010年2月)

(下转第1125页)

本拦目责任编辑:谢媛媛

第6卷第5期(2010年2月) ComputerKnowledge and Technology电脑知识与技术

throw new DepartmentException o;

}else{

System.out.println(”雇员编号是:”+empId);

System.out.prinfln(”雇员姓名是:”+empName);

System.out.println(”部门编号是:”+deptId);

) )catch(DepanmentException de){

System.out.println(”数据无效”1:

}catch(NumberFormatException ne){

System.out.println(”数据错误”);

}catch(ArrayIndexOutOfBoundsException ae){

System.out.print/n(”数据不完整”);}j

程序运行时,有这样几种可能:

1)输入雇员编号、雇员姓名和部门编号分别为“1”、“Tom”和“6”时,因部门编号超过5,产生DepartmentExeeption异常,显示“此

部门不存在!!!数据无效”。

2)输入雇员编号、雇员姓名和部门编号分别为…a’、“Tom”和“6”时,因雇员编号不为整数。产生NumberFormatException异常,显

示“数据错误”。 ,

3)输入一个雇员编号“1”,因缺少雇员姓名和部门编号,产生ArraylndexOutOfBoundsException异常,显示“数据不完整”。

4)输入雇员编号、雇员姓名和部门编号分别为“1”、“Tom”和…4’时,无异常产生,显示雇员详情。

异常处理机制是保证Java程序正常运行、具有较高安全性的重要手段。善于在应用程序中使用异常,编写用户自定义异常,可

以提高应用程序的交互性,增加应用程序的灵活性。正确使用用户自定义异常,对于开发良好的Java程序 ,能够起到重要的作用。

参考文献:

【1】北京阿博泰克北大青鸟信息技术有限公司.Java面向对象程序设计【M].北京:科学技术文献出版社,2005.

【2】迟丽华.Java程序设计教程【M].北京:清华大学出版社,2008.

【3】贾振华.Java语言程序设计[M】.北京:中国水利水电出版社,2004.

(上接第1120页)

thisform.optiongroup1.option2.caption=”B、”+选b

thisform.optiongroup1.option3.caption=”C、”+选C

thisform.optiongroup1.option4.caption=”D、”+选d

thisforil1.1abel8.visible=工

thisform.1abel7.caption=’”’

thisforib.text2.value=…’

else

messagebox(”已到单项选择题之首!”1

endif

4.6当考生做完了三种类型的题目后,就可以交卷了。故设置一个“交卷”按钮

代码如下:

¥ 料料 Button“交卷”(Click事件)代码 { {¥

yn=messagebox(”确定要交卷吗?”,4)

select 6

count for对错:.T.to sco3

ifyn=6

select 1

&&如果按下“是”按钮

replace成绩with成绩+sco3"2 &&统计分数并记人考生成绩字段

endif

misform.command1.enabled=.F. &&屏蔽“下一题”按钮

do form\quizkforms\成绩单 &&打开“成绩单”表单窗口,显示考生成绩

4.7为了显示考生成绩。单独设计一个“成绩单”表单

设计代码如下:

料料 Fo瑚“成绩单”(Activate事件)代码

select 1 &&打开考生名册库

 ̄isform.1abel4.caption=姓名+”:” &&显示当前考生姓名

thisform.1abel1.c印ti0n=al1trim(str(成绩)) &&显示考生最终成绩

以上程序在中文Windows XP环境,Microsoft Visual Foxpro 6.0中文版下调试通过。

参考文献:

【1]木林森,高峰.中文Visual FoxPro 6.0使用与开发【M】.北京:清华大学出版社,2006.

本栏目责任编辑:谢媛媛

本文发布于:2023-03-12 23:21:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167863448626894.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:vfp编程.doc

本文 PDF 下载地址:vfp编程.pdf

上一篇:太阳光芒
下一篇:返回列表
标签:vfp编程
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|