设为首页 |加入收藏 | 返回申报网站
    首 页 学习指南 课程建设 教师队伍 电子教材 教学课件 授课录像 考证服务 实践教学 习题试题 学习参考 在线答疑 申报表 联合申报表 自评表
  计算机技术基础(数据库技术及应用)  
     
教学大纲
课程简介
课程特色
教学大纲
授课计划
教材资料
2012—2013—1教学日历
友情链接
 
您所在的位置: 首页 > 学习指南 > 教学大纲 > 详细信息

第3章 Visual FoxPro程序结构

[教学目的与要求]掌握程序文件的建立、保存、修改与运行;掌握ACCEPTINPUTWAIT交互式命令的格式与使用;掌握顺序结构、单分支结构、双分支结构、多分支结构、DO WHILE循环、FOR循环和SCAN循环的结构与应用;掌握子程序、过程、自定义函数的概念及其调用过程中的参数传递;掌握变量的作用域;了解程序调试器各子窗口的作用和使用。

[重点与难点]程序的基本控制结构;子程序、过程、自定义函数的概念及其调用过程中的参数传递

[教学时数]   6学时

[教学方法与手段] 采用启发式、参与式、精讲多练等教学方法,教学手段采用多媒体教学

[主要内容]

第一节程序与程序文件

一、程序的概念

Visual FoxPro环境下,命令有两种执行方式:

1.单命令执行方式

单命令执行方式也称为交互操作方式,在命令窗口输入命令后按回车键,命令被立即执行,屏幕会显示该命令的执行结果。这种方式还包括:菜单方式与工具按钮方式。其特点是简单、直观,但效率低,不便于反复执行。

2.程序方式

程序是指示计算机如何去解决问题或是完成任务的一组详细的逐步执行的指令。在Visual FoxPro系统中,程序方式也称为批命令方式,这种方式可将多条命令按一定的序列存放于一个文件中,执行该文件,则文件内的命令被自动依次执行。该方式的特点是,命令可被反复执行,极大降低了用户的介入程度。

二、程序文件的建立与执行

1.程序文件的建立与编辑

Visual FoxPro系统中,存放命令序列的文件称为程序文件。它是一个以.prg为扩展名的文本文件,文本编辑工具可以是Visual FoxPro系统提供的内部编辑器,也可以是其他常用文本编辑软件。

Visual FoxPro系统环境下,创建、编辑程序文件使用内部编辑器,打开内部编辑器的方法有种:

1)命令方式

命令格式:MODIFY COMMAND [<程序文件名>|?]

功能:打开程序编辑窗口,用于创建或修改Visual FoxPro程序。

2)菜单方式

文件菜单中选择新建命令,然后在新建对话框的文件类型中选中程序单选按钮,再单击新建文件命令按钮。

2.程序的输入与保存

进入程序编辑窗口后,可将程序命令依次输入,程序中每条命令都以回车键结束。若程序代码较长,可通过续行符把一条较长的命令放在几行中。

输入结束后可以选择文件菜单中的保存另存为”命令保存程序。

3.程序文件的执行

1)命令方式

命令格式:DO <程序文件名>

功能:执行<程序文件名>指定的程序文件。

2)菜单方式

程序菜单中选择运行命令,然后在运行对话框中,选择要执行的程序,单击运行按钮,或双击要执行的程序文件名。

3)工具按钮方式

当程序编辑窗口被打开且是当前窗口时,单击常用工具栏的“”按钮,可运行该程序。

第二节:程序设计中的一些常用命令

一、注释命令

程序注释命令格式:NOTE|*<注释字符>

命令注释子句格式:&&<注释字符>

功能:在程序中插入解释型字符。

二、基本输入命令

1.WAIT命令

命令格式:WAIT [<提示信息>] [TO <内存变量名>] [WINDOW [AT <,>]] [NOWAIT] [CLEAR|NOCLEAR] [TIMEOUT <数值表达式>]

功能:将键盘输入的一个字符存入指定的内存变量名中。该命令可暂停程序的运行,等待用户从键盘按下任一键或按下鼠标的左键或右键继续执行。

2.ACCEPT命令

命令格式:ACCEPT [<提示信息>] TO <内存变量名>

功能:将键盘输入的一串字符存入指定的内存变量名中。

3.INPUT命令

命令格式:INPUT [<提示信息>] TO <内存变量名>

功能:将键盘输入的表达式的值赋给指定的内存变量名中。

三、格式输入输出命令

命令格式:@<行,列> SAY <表达式1> [GET <变量名>] [DEFAULT <表达式2>]

功能:在指定<行,列>位置输出<表达式1>的值和<变量名>所指定变量的值

四、其他常用命令

1.CLEAR命令

功能:清除Visual FoxPro主窗口工作区所显示的信息。

2.CLEAR ALL命令

功能:关闭所有文件,释放所有内存变量,清除所有用户自定义的菜单和窗口,并将当前工作区设置为1号工作区。

3.CANCEL命令

功能:释放所有私有变量,终止程序的执行,返回命令窗口。

4.QUIT命令

功能:关闭所有文件,释放所有变量,退出Visual FoxPro

5.SET TALK ON|OFF命令

功能:打开或关闭人机对话。

五、消息框函数

函数格式:MESSAGEBOX(<字符表达式1>[,<数值表达式>[,<字符表达式2>]])

功能:在屏幕上产生一个消息对话框。

第三节:程序的基本控制结构

一、顺序结构

    顺序结构的程序始终按照程序语句书写的先后次序依次执行。

二、分支结构

1.单分支结构

命令格式:

IF <条件>

<命令序列>

ENDIF

功能:当条件的值为真(.T.)时,执行命令序列,否则执行ENDIF后的命令。

2.双分支结构

命令格式:

IF <条件>

<命令序列1>

ELSE

<命令序列2>

ENDIF

功能:当条件的值为真(.T.)时,执行命令序列1;当条件的值为假(.F.)时,执行命令序列2;执行完命令序列1或命令序列2后都将执行ENDIF后的命令。

3.多分支结构

命令格式:

DO CASE

CASE <条件1>

<命令序列1>

CASE <条件2>

<命令序列2>

    

CASE <条件n>

<命令序列n>

[OTHERWISE

<命令序列n+1>]

ENDCASE

功能:该语句根据给出的n个条件的值,选择n+1个命令序列中的一个执行。当所有CASE中的条件的值都为假时,如果有OTHERWISE选项,则执行命令序列n+1,再执行ENDCASE后的命令;否则,直接执行ENDCASE后的命令。

三、循环结构

1.DO WHILE循环

命令格式:

DO WHILE <条件>

<命令序列>

[LOOP]

[EXIT]

ENDDO

功能:当条件为真时,反复执行命令序列,否则执行ENDDO后的命令。

2.FOR循环

命令格式

FOR 循环变量=初值 TO 终值 [STEP 步长值]

<命令序列>

   [LOOP]

[EXIT]

ENDFOR|NEXT

功能:首先计算初值、终值和步长值,并将初值赋给循环变量,再将循环变量的值与终值比较,如果循环变量的值在初值与终值范围内,则执行FORENDFOR之间的命令,然后循环变量按步长值增加或减小,再重新比较,直到循环变量的值不在初值与终值范围内,结束循环,转去执行ENDFOR后面的命令。

3.SCAN循环

命令格式:

SCAN [范围] [FOR <条件1>] [WHILE <条件2>]

<命令序列>

[LOOP]

[EXIT]

ENDSCAN

功能:在当前表文件内顺序查找满足条件的记录,并将指针移到所找到的记录执行命令序列,遇到ENDSCAN再查找下一条满足条件的记录,直至没有满足条件的记录,结束循环,执行ENDSCAN后的命令。

四、嵌套

1.分支的嵌套

所谓分支的嵌套,就是指在一个分支结构内又完整包含了另一个完整的分支结构。应特别注意在嵌套时,不能交叉,应一个完全包含另一个。

2.循环的嵌套

循环的嵌套指在一个循环的内部又完整包含另一个循环,也称为多重循环,根据循环的层数,可分为二重循环、三重循环等。

3.混合嵌套

循环结构也可以与分支结构相互嵌套以完成复杂的功能,但不允许交叉,它们各自的入口语句与其相应的出口语句必须成对出现。

第四节多模块程序设计

一、子程序、过程和函数

1.子程序

1)子程序的结构

Visual FoxPro程序文件中,可以通过DO命令调用另一个程序文件,此时,被调用的程序文件就称为子程序。子程序的结构与一般的程序文件一样,而且也可以用MODIFY COMMAND命令来建立、修改,其扩展名也默认为.prg

子程序和其他程序文件的唯一区别是子程序末尾或返回处必须有返回语句。

命令格式:

RETURN [TO MASTER|TO <程序文件名>|<表达式>]

命令功能:

将程序控制返回给调用程序。

2)子程序的调用

子程序调用命令与主程序执行命令相同,其格式都为:

DO <程序文件名>|<过程名> [WITH <参数表>]

其中,WITH <参数表>选项指定传递到程序或过程的参数,在<参数表>中列出的参数可以是表达式、内存变量、常量、字段名或用户自定义函数,各参数用逗号分隔。传递给一个程序的参数最多为24个。

3)子程序的嵌套调用

主程序可以调用子程序,子程序还可以调用另外的子程序,这就是子程序的嵌套调用。

2.自定义函数

1)自定义函数的结构

一个自定义函数实际上就是一个子程序,唯一的差别是在RETURN语句后带有表达式,以指出函数的返回值。

自定义函数的格式:

[FUNCTION <函数名>]

[PARAMETERS <参数表>]

<命令序列>

RETURN [<表达式>]

2)自定义函数的调用

自定义函数的调用格式:

<函数名>(<参数表>)

3.过程与过程文件

1)过程的结构

过程的一般格式:

PROCEDURE <过程名>

[PARAMETERS <参数表>]

<命令序列>

RETURN

2)过程文件

Visual FoxPro允许将多个过程存放在一个程序文件中,该文件叫过程文件。

Visual FoxPro中规定,在调用过程文件中的过程之前,必须先打开过程文件。在主程序结束之前应关闭过程文件。

打开过程文件的格式:

命令格式:SET PROCEDURE TO [<过程文件名1>[,<过程文件名2>,]] [ADDITIVE]

功能:同时打开一个或多个过程文件。

关闭所有打开的过程文件的命令格式有以下两种:

命令格式1CLOSE PROCEDURE

命令格式2SET PROCEDURE TO

关闭指定的过程文件的命令格式:

命令格式:RELEASE PROCEDURE <过程文件名1>[,<过程文件名2>,]

功能:关闭指定的过程文件。

二、内存变量的作用域

1.全局变量

全局变量是指在上、下各级程序中都有效的内存变量。

建立全局变量的命令格式:PUBLIC <内存变量名表>

2.私有变量

在程序中自由创建的内存变量称之为私有变量,其作用范围是当前定义的程序及下级子程序。一旦定义它的程序执行完毕,该变量将从内存中释放。

3.局部变量

局部变量只在当前定义的程序中有效,一旦定义它的程序执行完毕,该变量将从内存中释放。局部变量要先建立后使用。局部变量在赋值之前其默认初值为.F.

建立局部变量的命令格式:LOCAL <内存变量名表>

4.隐藏内存变量

隐藏内存变量的命令格式:PRIVATE <内存变量名表>

功能:该命令并不建立内存变量。如果另一个程序调用它的程序,调用程序中与定义它的程序同名的内存变量将被屏蔽,而一旦调用程序运行完毕,所有被屏蔽的内存变量便又恢复原来的状态。

三、数据传递

1.利用变量的作用域实现数据传递

合理地利用前面介绍的内存变量作用域特性,可以实现调用子程序时的数据传递。

2.利用参数实现数据传递

参数传递就是在编写子程序时,将要输入、输出的变量用PARAMETERS命令来说明。

命令格式:

PARAMETERS <参数表>

命令功能:

参数表指定子程序中的私有变量名,并由这些私有变量接收上级程序中传递来的参数。

说明:

1)参数传递有两种方式:值传递和地址传递。

2)在自定义函数中,默认的参数传递方式是值传递方式。要改变参数的传递方式,需要使用命令:

SET UDFPARMS TO VALUE|REFERENCE

说明:TO VALUE:按值传递

TO REFERENCE:按地址传递。

第五节程序调试

一、调试器环境

调用调试器的方法一般有两种:

1)选择工具菜单中的调试器命令。

2)在命令窗口输入DEBUG命令。

调试器有5个子窗口组成:局部窗口、跟踪窗口、监视窗口、调用堆栈窗口和调试输出窗口。要打开子窗口,可选择调试器窗口窗口菜单中的相应命令;要关闭子窗口,只需单击窗口右上方的关闭按钮。

下面是各子窗口的作用和使用特点。

1)跟踪窗口:用于显示正在调试执行的程序文件。

跟踪窗口左端的灰色区域会显示某些符号,常见的符号及其意义如下所示:

ð:指向调试中正在执行的代码行。

:断点。

2)监视窗口:用于监视指定表达式在程序调试执行过程的取值变化情况。

3)局部窗口:用于显示模块程序中的内存变量,显示它们的名称、当前取值和类型。

4)调用堆栈窗口:用于显示当前处于执行状态的程序、过程或方法程序。

5)调试输出窗口:可以在模块程序中安置一些DEBUGOUT命令:

DEBUGOUT <表达式>

二、断点设置

1.类型

可以设置以下4种类型的断点:

类型1:在定位处中断,在定位处暂停程序执行。

类型2:如果表达式值为真则在定位处中断。

类型3:当表达式值为真时中断。

类型4:当表达式值改变时中断。

2.定位

设置程序的断点位置。

3.文件

设置定位设置所在的文件,可以是一个程序、表单或类文件。若未指定文件名,则在与定位框中的方法程序(或过程)同名的所有方法程序(或过程)中,断点都有效。

4.运行次数

指定程序执行暂停前,定位框中的代码行必须执行的次数。

5.表达式

如果在类型框中选择了类型2、类型3或类型4,则要在表达式框中输入一合法的Visual FoxPro表达式。

三、“调试”菜单

1.运行:执行在跟踪窗口中打开的程序。若在跟踪窗口里没有打开程序,将会打开运行对话框,选择程序后,调试器随即执行此程序,并中断于程序的第一条可执行代码上。

2.继续执行:当程序执行被中断时,该命令出现在菜单中。此命令可使程序在中断处继续往下执行。

3.取消:终止程序的调试执行并关闭程序。

4.定位修改:终止程序的调试执行,然后在编辑窗口打开调试程序。

5.跳出:以连续方式而非单步方式继续执行被调用模块程序中的代码,然后在调用程序的调用语句的下一行处中断。

6.单步:单步执行下一行代码。如果下一行代码调用了过程,那么该过程程序在后台执行。

7.单步跟踪:单步执行下一行代码。

8.运行到光标处:从当前位置执行代码直到光标处中断。

9.调速:打开调整运行速度对话框,设置两代码行执行之间的延迟秒数。

10.设置下一条语句:程序中断时选择该命令,可使光标所在行成为恢复执行后要执行的语句。

 [实验实践教学环节]

实验3Visual  FoxPro结构化程序设计   6学时

1.建立程序文件

2.顺序结构、分支结构及循环结构程序设计

3.子程序、过程的调用

4.程序调试

[参考书目]

[1] 康萍,刘小冬,等.Visual FoxPro数据库应用[M].北京:清华大学出版社,2007.

[2] 余坚.Visual FoxPro程序设计基础[M]. 北京:清华大学出版社,2006.

[3] 刘卫国.Visual FoxPro程序设计教程[M].北京:北京邮电大学出版社,2007.

[课堂训练、作业思考题]

p76 习题


 
 
    版权所有:德州学院   技术支持:湖北华秦教育软件技术有限公司 [返回顶部]