Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲

上传人:E**** 文档编号:89184059 上传时间:2019-05-20 格式:PPT 页数:30 大小:1.48MB
返回 下载 相关 举报
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲_第1页
第1页 / 共30页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲_第2页
第2页 / 共30页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲_第3页
第3页 / 共30页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲_第4页
第4页 / 共30页
Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲》由会员分享,可在线阅读,更多相关《Visual Forpro数据库设计与应用 教学课件 ppt 作者 安晓飞 10VFP第11讲(30页珍藏版)》请在金锄头文库上搜索。

1、第11讲 多模块程序设计,第6章 程序设计基础,2,问卷调查建议,回顾上节课的内容,多提问。 速度慢些,总结重点。 多出些SQL语句的题,加强查询训练。 把重点以笔记的形式整理出来。 下午上课困,活跃课堂气氛。,第6章 程序设计基础,3,1.VFP程序的三种基本结构?,顺序结构 选择结构 循环结构,课前回顾,2.选择(分支)结构的两种类型?,条件语句,IF ELSE ENDIF,DO CASE CASE CASE OTHERWISE ENDCASE,情况语句,第6章 程序设计基础,4,课前回顾,3.循环结构的三种类型?,DO WHILE LOOP EXIT ENDDO,FOR = TO STE

2、P LOOP EXIT ENDFOR|NEXT,SCAN FOR ENDSCAN,SKIP,i=i+1,第6章 程序设计基础,5,教学内容,第6章 程序设计基础 6.3 多模块程序设计 6.4 程序的调试,第6章 程序设计基础,6,教学重点 形参与实参的概念、变量的作用域 模块的定义和调用、参数的按值传递和按引用传递 教学难点 形参与实参的概念、变量的作用域 模块的定义和调用、参数的按值传递和按引用传递 程序的调试,第6章 程序设计基础,7,6.3 多模块程序设计,6.3.1模块的定义和调用,选课系统,基本信息管理,退出,成绩管理,主模块,选课管理,过程,第6章 程序设计基础,8,6.3 多模

3、块程序设计,6.3.1模块的定义和调用,PROCEDURE RETURN ENDPROC,【说明】 过程必须以PROCEDURE开始,ENDPROC可省略,如省略,到下一条PROCEDURE命令或文件结尾处结束 RETURN使过程返回程序的调用处继续执行下一条语句,过程必须先定义,才能作为一个模块被调用。 过程既可以独立存放也可以存放在主程序文件中, 一个文件中可以包含多个过程,此文件称为过程文件。,1.过程的定义,第6章 程序设计基础,9,6.3 多模块程序设计,6.3.1模块的定义和调用,SET PROCEDURE TO ,过程文件2,ADDITIVE,【说明】 可以同时打开多个过程文件

4、ADDITIVE:打开过程文件同时不关闭原先已打开的过程文件,2. 过程文件的打开,想调用过程文件中的过程,必须先打开过程文件.,第6章 程序设计基础,10,6.3 多模块程序设计,6.3.1模块的定义和调用 3.过程的调用 【格式1】DO 【格式2】(),*程序1.prg SET TALK OFF a=“100“ DO SUB &调用过程SUB ?a PROCEDURE SUB &定义过程SUB a=a+“100“ ENDPROC,100100,【例6.16】写出程序的运行结果。,第6章 程序设计基础,11,6.3 多模块程序设计,6.3.1模块的定义和调用 4.过程的关闭,*主程序main

5、.prg CLEAR ?“A“ SET PROCEDURE TO pp &打开过程文件pp.prg DO proc1 &调用过程proc1 ?“B“ DO proc2 &调用过程proc2 ?“C“ SET PROCEDURE TO &关闭过程文件pp.prg RETURN,*过程文件pp.prg PROCEDURE proc1 &过程proc1 ?“D“ ENDPROC PROCEDURE proc2 &过程proc2 ?“123“ ENDPROC,A D B 123 C,调用过程结束时,需要关闭过程文件.,SET PROCEDURE TO &关闭所有打开的过程文件 CLOSE PROCED

6、URE &关闭指定的过程文件,【例6.17】写出程序的运行结果。,第6章 程序设计基础,12,6.3 多模块程序设计,6.3.2参数传递 带参数调用的语句 接受参数的语句,【格式1】DO WITH , 【格式2】(,),【格式】PARAMETERS(,),【说明】 在过程内部,PARAMETERS语句必须为过程的第一条可执行语句。 形参与实参的类型必须一致,形参的数目不能少于实参的数目。 如果形参的数目多于实参的数目,多余的形参初值取逻辑假.F.。,【说明】实参可以是常量,变量,也可以是表达式,但必须有确定的值,第6章 程序设计基础,13,6.3 多模块程序设计,6.3.2参数传递 参数传递方

7、式 用“DO WITH ” 方式调用,第6章 程序设计基础,14,例: *主程序MAIN.PRG SET TALK OFF FS=0 SET PROCEDURE TO GC DO AA WITH 5, FS &实参 ? FS CLOSE PROC RETURN,*过程文件GC.PRG PROC AA PARAMETERS X, Y &形参 Y=X*X+15 RETURN,5 0,40,40,第6章 程序设计基础,15,6.3 多模块程序设计,6.3.2参数传递 参数传递方式 用“()”方式调用,设置方式: SET UDFPARMS TO VALUE|REFERENCE,【说明】 TO VALU

8、E:按值传递; TO REFERENCE:按引用传递; 默认为按值传递.,以上两种调用方式 如果将参数用括号括起来,设定按值传递; 如果在参数前加符号,设定按引用传递;,第6章 程序设计基础,16,6.3 多模块程序设计,【例6.18】按值传递和按引用传递示例,*主程序 SET TALK OFF CLEAR a=2 b=3 c=5 SET UDFPARMS TO VALUE test(a,(b),c+1) &a按值传递,b按值传递,c+1按值传递 ?“第一次调用后,主程序中a=“,a,“b=“,b,“c=“,c DO test WITH a,(b),c+1 &a按引用传递,b按值传递,c+1按

9、值传递 ?“第二次调用后,主程序中a=“,a,“b=“,b,“c=“,c SET UDFPARMS TO REFERENCE test(a,(b),c+1) &a按引用传递,b按值传递,c+1按值传递 ?“第三次调用后,主程序中a=“,a,“b=“,b,“c=“,c DO test WITH a,(b),c+1 &a按引用传递,b按值传递,c+1按值传递 ?“第四次调用后,主程序中a=“,a,“b=“,b,“c=“,c RETURN,第一次调用后,主程序中a= 2 b= 3 c= 5 第二次调用后,主程序中a= 3 b= 3 c= 5 第三次调用后,主程序中a= 4 b= 3 c= 5 第四次

10、调用后,主程序中a= 5 b= 3 c= 5,*过程test PROCEDURE test PARAMETERS x,y,z x=x+1 y=y+1 z=z+1 RETURN,第6章 程序设计基础,17,6.3 多模块程序设计,【例6.19】编写求阶乘的过程,并利用这个过程求m!+n!,SET TALK OFF CLEAR INPUT “请输入m:“ TO m INPUT “请输入n:“ TO n STORE 0 TO sm,sn DO f WITH m,sm DO f WITH n,sn ?“m!+n!=“,ALLTRIM(STR(sm+sn) RETURN,*过程f PROCEDURE f

11、 PARAMETERS x,s s=1 FOR i=1 TO x s=s*i ENDFOR RETURN,第6章 程序设计基础,18,6.3 多模块程序设计,【例6.20】将例6.19中的过程调用改写成函数调用的形式,SET TALK OFF CLEAR INPUT “请输入m:“ TO m INPUT “请输入n:“ TO n ?“m!+n!=“,f(m)+f(n) RETURN,*自定义函数f PROCEDURE f PARAMETERS x,s s=1 FOR i=1 TO x s=s*i ENDFOR RETURN s,第6章 程序设计基础,19,【国二08考题(26) 】下列变量执行

12、后,内存变量X和Y的值是:,CLEAR STORE 3 TO X STORE 5 TO Y PLUS(x),Y) ?X,Y,PROCEDURE PLUS PARAMETERS A1,A2 A1=A1+A2 A2=A1+A2 ENDPROC,A. 8 13 B. 3 13 C. 3 5 D. 8 5,第6章 程序设计基础,20,例:国二真题下列程序段的输出结果 Clear store 10 to a store 20 to b set udfparms to reference do swap with a,(B) ?a,b,procedure swap parameters x1,x2 tem

13、p=X1 x1=x2 x2=temp endproc,A)10 20 B)20 20 C)20 10 D)10 10,第6章 程序设计基础,21,6.3 多模块程序设计,6.3.3内存变量的作用域 全局变量,该变量在任何程序模块都可使用 全局变量必须先定义后使用,【格式】PUBLIC 【说明】 全局变量的初值为逻辑假.F. 在命令窗口中建立的变量是全局变量。,第6章 程序设计基础,22,6.3 多模块程序设计,6.3.3内存变量的作用域 局部变量,只能在建立它的程序模块中使用(上下层模块都不能使用)。,【格式】LOCAL 【说明】 局部变量的初值为逻辑假.F. 不能缩写为前4个字母(与loca

14、te重),第6章 程序设计基础,23,6.3 多模块程序设计,6.3.3内存变量的作用域 私有变量,在建立变量的程序模块和它的子模块中都可以使用 私有变量不需要声明,直接可以使用,【格式】PRIVATE ,隐藏主程序中可能存在的同名变量,【说明】 隐藏上层程序模块中同名的内存变量,使其在当前模块及其下属模块中暂时无效。上层模块的同名变量的值保持不变。,第6章 程序设计基础,24,6.3 多模块程序设计,6.3.3内存变量的作用域 私有变量 【例6.21】私有变量示例,SET TALK OFF CLEAR x1=100 x2=200 &x1和x2都为私有变量 do gc1 ?“在主程序中x1=“

15、, x1 ?“在主程序中x2=“,x2 RETURN *过程gc1 PROCEDURE gc1 PRIVATE x1 &隐藏上层的变量x1 x1=1000 x2=2000 ?“在过程中x1=“,x1 ?“在过程中x2=“,x2 RETURN,在过程中x1=1000 在过程中x2=2000 在主程序中x1=100 在主程序中x2=2000,第6章 程序设计基础,25,6.3 多模块程序设计,6.3.3内存变量的作用域 私有变量 【例6.22】变量作用域的综合示例,SET TALK OFF CLEAR PUBLIC x,y x=15 y=20 DO gc1 ?“在主程序中,x=“,ALLTRIM(STR(x) &x=15 ?“在主程序中,y=“,ALLTRIM(STR(y) &y=120 RETURN,*过程gc1 PROCEDURE gc1 PRIVATE x &隐藏主程序中的变量x x=50 LOCAL y &声明变量y为局部变量 y=35 DO gc2 ?“在过程gc1中,x=“,ALLTRIM(STR(x) &x=250 ?“在过程gc1中,y=“,ALLTRIM(STR(y) &y=35 RETURN,*过程gc2 PROCEDURE gc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号