您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 计算机二级VF培训中心课件:第10章
第10章VisualFoxPro程序设计基础第10章VisualFoxPro程序设计基础知识要点:1.程序与程序文件的基本概念;2.简单的输入输出命令;3.程序的三种基本结构;4.多模块程序设计及变量的作用域。10.1程序文件的建立与执行10.1.1程序的基本概念程序是能够完成一定任务的命令的有序集合。程序文件(命令文件)存放程序的文本文件。(.PRG)建立程序文件的优点:(1)运行程序文件,会自动执行程序文件中的各条命令(2)程序文件中的命令可以长期保存,并且可以多次运行10.1程序文件的建立与执行程序文件建立方法:1、利用菜单:文件|新建|程序2、利用命令:MODIFYCOMMAND文件名程序文件执行方法:1、菜单方式:程序|运行2、利用命令:DO文件名别忘了保存CTRL+W10.1.2程序文件的建立与执行10.1程序文件的建立与执行10.1程序文件的建立与执行四种命令的功能:①CANCEL:终止程序的执行,清除所有的私有变量,返回到命令窗口;②DO:调用执行另一个程序;③RETURN:结束程序,返回到调用它的上级程序继续运行,若无上级程序则返回到命令窗口;④QUIT:结束程序的执行,并退出VisualFoxPro系统,返回到操作系统。10.1程序文件的建立与执行10.1.3简单的输入输出命令WAITACCEPTINPUT10.1程序文件的建立与执行1.简单的输入输出命令(WAIT)格式:WAIT[“提示信息”][TO内存变量][WINDOW[AT行,列]][TIMEOUT数值表达式]功能:显示提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时,程序继续运行10.1程序文件的建立与执行简单的输入输出命令(WAIT)10.1程序文件的建立与执行简单的输入输出命令(WAIT)(1)WAIT命令只接收单个字符,输入字符时,不需要加定界符,系统将输入的字符赋值给内存变量;若用户是按回车键或者单击鼠标左键,系统将空串赋值给内存变量;(2)若省略提示信息,则显示默认的提示信息“按任意键继续……”;否则提示信息要加字符串定界符;(3)通常,提示信息显示在VisualFoxPro主窗口或当前用户自定义窗口中,如果指定了WINDOW子句,则在主窗口的右上角会出现一个WAIT提示窗口,用来显示提示信息,也可以用AT短语指定窗口的显示位置;(4)若选用NOWAIT短语,系统将不等待用户按键,继续向下执行程序;(5)TIMEOUT子句用来设定等待的时间,以秒数为单位。超过此时间系统将不再等待用户按键,自动往下执行程序。注意10.1程序文件的建立与执行2.简单的输入输出命令(ACCEPT)格式:accept[“提示信息”]to内存变量功能:显示提示信息,等待用户从键盘输入字符串,并将该字符串存入内存变量中10.1程序文件的建立与执行简单的输入输出命令(ACCEPT)(1)ACCEPT命令只接收字符串,输入字符串时,不需要加定界符;(2)提示信息可省略,否则提示信息要加字符串定界符;(3)可以不输入内容而直接按回车,系统会把空串赋给指定的内存变量;(4)此命令根据用户需要既可以输入到命令窗口中执行,也可以编写在程序中。注意10.1程序文件的建立与执行3.简单的输入输出命令(INPUT)格式:input[“提示信息”]to内存变量功能:显示提示信息,等待用户从键盘输入数据,并将输入值存入内存变量中,用户可以输入任何合法的表达式。10.1程序文件的建立与执行简单的输入输出命令(INPUT)(1)用户从键盘输入的数据可是各种类型的常量、变量或者表达式,但不能不输入内容而直接按回车键;(2)提示信息可省略,否则提示信息要加字符串定界符;(3)从键盘输入各种类型数据时,需要加相应的定界符;(4)此命令根据用户需要既可以输入到命令窗口中执行,也可以编写在程序中。注意10.1程序文件的建立与执行INPUT、ACCEPT和WAIT的区别input:可接受各种类型数据accept:只接受字符串wait:只接受单个字符10.2程序结构10.2.1顺序结构10.2.2选择结构10.2.3循环结构10.2程序结构10.2.1顺序结构按命令在程序中出现的先后次序执行。10.2程序结构10.2.2选择结构在程序执行时,根据不同的条件,选择执行不同的程序语句执行。条件语句分支语句选择结构单向条件语句双向条件语句10.2程序结构10.2.2选择结构(条件语句)1.单向条件语句语句格式:IF〈条件表达式〉〈语句序列ENDIF10.2程序结构10.2.2选择结构(条件语句)关闭或打开状态信息1.单向条件语句Eg1:求圆的面积(半径0)10.2程序结构10.2.2选择结构(条件语句)2.双向条件语句语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈语句序列1〉中的命令;否则,执行〈语句序列2〉中的命令;执行完〈语句序列1〉或〈语句序列2〉后都将执行ENDIF后面的第一条命令。10.2程序结构10.2.2选择结构(条件语句)2.双向条件语句Eg2:求圆的面积(半径0)10.2程序结构10.2.2选择结构(条件语句)10.2程序结构10.2.2选择结构(条件语句)2.双向条件语句Eg3:编写密码校验程序,设密码为“ABC”10.2程序结构10.2.2选择结构(分支语句)根据多个条件表达式的值,选择一个执行。语句格式:DOCASECASE〈条件表达式1〉语句序列1CASE〈条件表达式2〉语句序列2……CASE〈条件表达式N〉语句序列N[OTHERWISE语句序列N+1]ENDCASE10.2程序结构10.2.2选择结构(分支语句)Eg4:求分段函数0(x-1或x5)F(x)=2x2-x(-1=x1)x(1=x5)10.2程序结构10.2.2选择结构1)IF……ENDIF和DOCASE……ENDCASE必须成对使用。2)〈条件表达式〉可以是各种表达式或函数的组合,其值必须是逻辑值3)〈语句序列〉可以由一条或多条命令组成。4)DOCASE……ENDCASE命令,每次最多只能执行一个〈语句序列〉。在多个CASE项的〈条件表达式〉值为真时,只执行第一个〈条件表达式〉值为真的〈语句序列〉,然后执行ENDCASE的后面的第一条命令。注意10.2程序结构10.2.3循环结构有一部分程序被反复地执行。循环结构当型循环:dowhile…enddo计数循环:for…endfor数据库扫描:scan…endscan不知道循环次数己知循环次数处理表中数据10.2程序结构10.2.3循环结构(当型循环)(1)不带有LOOP和EXIT语句的当型循环10.2程序结构10.2.3循环结构(当型循环)i=1=100s=s+i=0+1=1i=1+1=2i=2=100s=s+i=1+2=3i=2+1=3i=3=100s=s+i=3+3=6i=3+1=4i=101=100.F.i=100s=s+i=s+100i=100+1=10110.2程序结构10.2.3循环结构(当型循环)逐条输出1982年出生的学生记录10.2程序结构10.2.3循环结构(当型循环)(2)带有LOOP和EXIT语句的当型循环•LOOP语句:强行返回到循环开始语句。•EXIT语句:强行跳出循环,接着执行ENDDO后的语句10.2程序结构10.2.3循环结构(当型循环)编写程序,显示“学生”表中的前8条出生在88年之前的学生记录10.2程序结构10.2.3循环结构(计数循环)FOR-ENDFOR语句真假10.2程序结构10.2.3循环结构(计数循环)i=1=100s=s+i=0+1=1i=1+1=2i=2=100s=s+i=s+2i=2+1=3i=100=100s=s+i=s+100i=100+1=101i=101=100.F.10.2程序结构10.2.3循环结构(计数循环)i的值是:A、72B、61C、83D、7410.2程序结构10.2.3循环结构(数据库扫描循环)SCAN–ENDSCAN语句10.2程序结构10.2.3循环结构(数据库扫描循环)编写程序,输出1980年以后(包含1980年)出生的男同学的姓名、出生日期和专业10.2程序结构10.2.3循环结构(数据库扫描循环)10.2程序结构10.2.3循环结构(数据库扫描循环)编写程序,统计学生表中的男、女同学人数。10.2程序结构思考题:1.求1+2+3+……+n的和不大于1000的n的最大值。2.给学生成绩表增加一个“状态”字段,根据计算机的分数填充“优秀”、“良好”、“及格”和“不及格”字样。10.2程序结构3.读程序,写结果假如输入962input请输入一个整数:toxdowhilex0?x%10x=int(x/10)enddo10.3模块化程序设计引例,输出如下所示的信息。************************HelloWorld!************************10.3模块化程序设计10.3.1过程文件的建立1、过程的定义PROCEDURE过程名命令序列[RETURN[表达式]][ENDPROC]•PROCEDURE命令表示一个过程的开始,并为过程命名。•ENDPROC表示一个过程的结束,过程也可以以RETURN语句终止。•RETURN语句表示将控制返回到调用程序中调用命令的下一语句,并返回表达式的值,若RETURN命令不带表达式,则返回逻辑真.T.。10.3模块化程序设计10.3.1过程文件的建立2、打开过程文件3、关闭过程文件SETPROCEDURETO过程文件名[ADDITIVE]SETPROCEDURETOCLOSEPROCEDURE10.3模块化程序设计10.3.2过程文件的调用或例10.21有如下程序,说出此程序的运行结果。X=0DOP1?XPROCEDUREP1&&过程文件P1X=1RETURNENDPROC该程序运行的结果为:1DO过程名WITH参数表过程名(参数表)10.3模块化程序设计带参数的调用,格式1(程序见下方备注):10.3模块化程序设计带参数的调用,格式2(程序见下方备注):10.3模块化程序设计10.3.3过程调用中的参数传递1、发送参数(即调用过程)主程序调用子程序或过程时,在主程序中使用发送参数语句传递参数。格式为:格式1:DO文件名|过程名WITH实参表格式2:文件名|过程名(实参表)10.3模块化程序设计10.3.3过程调用中的参数传递2、接收参数在子程序、过程或自定义函数中使用接收参数语句接收参数。格式为:对参数传递的说明如下:(1)PARAMETERS|LPARAMETERS必须是被调用程序的第一条语句;(2)PARAMETERS定义的形参变量是私有变量;LPARAMETERS定义的形参变量是局部变量;(3)实参可以是常量、变量和一般形式表达式,调用模块程序时,把实参传递给对应的形参;形参数目大于等于实参数目,多余的形参取.F.。格式1:PARAMETERS形参表格式2:LPARAMETERS形参表10.3模块化程序设计10.3.3过程调用中的参数传递3、参数传递方式按值传递形参变量值的改变不会影响实参变量的值,即新值不返回;当形参变量的值改变时,实参变量值也随之改变,即新值返回。按地址传递(也称按引用传递)10.3模块化程序设计10.3.3过程调用中的参数传递采用格式1调用模块程序时,如果实参是常量或一般形式的表达式,则按值传递;如果实参是变量,这时传递的是变量的地址,即按地址传递。采用格式2调用模块程序时,默认情况下是按值方式传递参数。如果实参是变量,可以通过SETUDFPARMS命令重新设置参数的传递方式。格式为:SETUDFPARMSTOVALUE|REFERENCETOVALUE:按值传递。TOREFERENCE:按地址传递。此命令不能改变用DO…WITH格式调用过程时的参数传递方
本文标题:计算机二级VF培训中心课件:第10章
链接地址:https://www.777doc.com/doc-3601830 .html