vf05第五章 结构化程序设计

上传人:我*** 文档编号:134479114 上传时间:2020-06-05 格式:PPT 页数:34 大小:398KB
返回 下载 相关 举报
vf05第五章 结构化程序设计_第1页
第1页 / 共34页
vf05第五章 结构化程序设计_第2页
第2页 / 共34页
vf05第五章 结构化程序设计_第3页
第3页 / 共34页
vf05第五章 结构化程序设计_第4页
第4页 / 共34页
vf05第五章 结构化程序设计_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《vf05第五章 结构化程序设计》由会员分享,可在线阅读,更多相关《vf05第五章 结构化程序设计(34页珍藏版)》请在金锄头文库上搜索。

1、1 第五章结构化程序设计 2 第一节程序文件 一 VisualFoxPro程序的几点说明1 注释语句 格式1 格式2 功能 增强程序文件的易读性2 对话开关语句 格式 SETTALKOFF ON 功能 关闭或打开命令执行时的对话开关3 命令的分行VisualFoxPro程序是命令行的序列 每个命令都以回车键结束 一行只能写一条命令 若一条命令太长 一行写不下 也可分行书写 并在分行处加上续行符 再按回车键 3 二 程序文件的建立 修改与执行 1 建立或修改程序文件1 命令方式 MODIFYCOMMAND 程序文件名 2 菜单方式 打开 文件 菜单 选择 新建 在 新建 窗口 选择 程序 再选择

2、 新建文件 4 3 项目管理器 选定项目管理器 代码 选项卡中的 程序 项 选择 新建 命令 2 保存程序文件程序输入 编辑完毕 单击 文件 保存 菜单项 或按Ctrl W复合键 在 另存为 对话框中指定程序文件的存放位置和文件名 并单击 保存 按钮保存程序文件并退出文本编辑器 程序文件的默认扩展名是 PRG 5 3 执行程序文件程序文件建立后 可以用多种方式 多次执行它 下面是两种常用的方式 1 菜单方式 单击 程序 运行 菜单项 打开 运行 对话框 从文件列表框中选择要运行的程序文件 并单击 运行 命令按钮 启动运行该程序文件2 命令方式 格式 DO 功能 执行指定 下的程序文件当程序文件

3、被执行时 文件中包含的命令将被依次执行 直到所有命令被执行完毕 6 第二节程序的基本结构 由顺序 分支 循环三种基本结构构成 1 顺序结构 如图6 1所示 该结构先执行A操作 再执行B操作 2 分支结构 如图6 2所示 该结构中P代表一个条件 当条件P成立时执行A操作 否则执行B操作 图6 1顺序结构流程图图6 2分支结构流程图 7 3 循环结构 循环结构则能够使某些语句或程序段重复执行若干次 如果某些语句或程序段需要在一个固定的位置上重复操作 使用循环是最好的选择 8 三条输入命令的异同ACCEPT TOACCEPT命令只能接受字符型数据 不需定界符 输入完毕按回车键结束 WAIT TO W

4、AIT命令只能输入单个字符 且不需定界符 输入完毕不需按回车键 INPUT TOINPUT命令可接受数值型 字符型 逻辑型 日期型和日期时间型数据 如果是字符串 需用定界符 输入完毕按回车键结束 9 分支结构形式有如下三种 1 单向分支 单向分支语句 即根据用户设置的条件表达式的值 决定某一操作是否执行 语句格式 IF 条件表达式 命令行序列 ENDIF 语句功能 该语句首先计算 条件表达式 的值 当 条件表达式 的值为真时 执行 命令行序列 否则 执行ENDIF后面的第一条命令 三 分支结构 10 例6 9 求一元二次方程AX2 BX C 0的实根 程序文件名为PROG9 PRG SETTA

5、LKOFFCLEARINPUTTOAINPUTTOBINPUTTOCZ B 2 4 A CIFZ 0X1 B SQRT Z 2 A X2 B SQRT Z 2 A X1 X2ENDIFSETTALKON 11 2 双向分支 双向分支语句 即根据用户设置的条件表达式的值 选择两个操作中的一个来执行 语句格式 IF 条件表达式 命令行序列1 ELSE 命令行序列2 ENDIF 语句功能 该语句首先计算 条件表达式 的值 当 条件表达式 的值为真时 执行 命令行序列1 中的命令 否则 执行 命令行序列2 中的命令 执行完 命令行序列1 或 命令行序列2 后都将执行ENDIF后面的第一条命令 12 例

6、6 10 编写一密码校验程序 假设密码为ABC 程序文件名为PROG10 PRG SETTALKOFFCLEARACCEPT 请输入您的密码 TOAAAIFAAA ABC CLEAR 欢迎使用本系统 ELSE 密码错误 ENDIFSETTALKON 13 3 多向分支 多向分支语句 即根据多个条件表达式的值 选择执行多个操作中的一个对应执行 语句格式 DOCASE CASE 条件表达式1 命令行序列1 CASE 条件表达式2 命令行序列2 CASE 条件表达式N 命令行序列N OTHERWISE 命令行序列N 1 ENDCASE 14 语句功能 该语句根据给出的N个 条件表达式 的值 选择N

7、1个 命令行序列 中的一个执行 当所有CASE中 条件表达式 的值都是假时 如果有OTHERWISE项 则执行 命令行序列N 1 再执行ENDCASE后面的第一条命令 否则 直接执行ENDCASE后面的第一条命令 例6 11 假设收入 P 与税率 R 的关系如下表 编程求税金 程序文件名为PROG11 PRG 0P 800R 0 05800 P 20000 082000 P 50000 1P 5000 15 SETTALKOFFCLEARINPUT 请输入收入 TOPDOCASECASEP 800R 0CASEP 2000R 0 05CASEP 5000R 0 08OTHERWISER 0 1

8、ENDCASETAX P R 税金为 TAXSETTALKON 16 四 循环结构 1 DOWHILE循环语句 格式1 DOWHILEENDDO 17 格式2 DOWHILE LOOP EXIT ENDDO LOOP语句 强行返回到循环开始语句 EXIT语句 强行跳出循环 接着执行ENDDO后的语句 18 例6 12 编程求1 2 3 100之和 程序文件名为PROG12 PRG SETTALKOFFCLEARS 0I 1DOWHILEI 100S S II I 1ENDDO 1 2 3 100 SSETTALKON 19 例6 13 逐条显示在STUDENT数据库的STUD表中性别为 男 的

9、所有记录 程序文件名为PROG13 PRG SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDDOWHILE NOT EOF IF性别 男 DISPLAYENDIFSKIPENDDOCLOSEDATABASEALLSETTALKON 20 例6 14 编程显示STUDENT数据库的STUD表中除 孙业 以外的所有记录 程序文件名为PROG14 PRG SETTALKOFFCLEAR CLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDDOWHILE NOT EOF IF姓名 孙业 SKIPLOOPE

10、NDIFDISPLAYSKIPENDDOCLOSEDATABASEALLSETTALKON 21 2 FOR循环语句 格式 FOR TO STEP LOOP EXIT ENDFOR NEXTFOR语句的执行流程如右图所示 22 使用FOR循环语句的有关说明 省略STEP 则 步长 为默认值1 初值 终值 和 步长 都可以是数值表达式 但这些表达式仅在循环语句开始执行时计算一次 循环语句执行过程中 初值 终值和步长是不会改变的 并由此确定循环的次数 EXIT和LOOP命令可以出现在循环体内 执行LOOP命令时 结束本次循环 循环变量增加一个步长值 返回FOR循环头判断循环条件是否成立 执行EXI

11、T命令时 程序跳出循环 执行循环尾后面的语句 23 3 指针 型循环控制语句 指针 型循环控制语句 即根据用户设置的表中的当前记录指针 决定循环体内语句的执行次数据 语句格式 SCAN FOR 条件表达式 命令行序列 ENDSCAN 语句功能 该语句在指定的范围内 用数据记录指针来控制循环次数 执行语句时 首先判断函数EOF 的值 若其值为 真 则结束循环 否则 结合 条件表达式 执行 命令行序列 记录指针移到指定的范围和条件内的下一条记录 重新判断函数EOF 的值 直到函数EOF 的值为真时结束循环 24 例6 18 输出STUDENT数据库的STUD表中所有男生的姓名和地址 程序文件名为P

12、ROG18 PRG SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDSCANFOR性别 男 姓名 地址ENDSCANCLOSEDATABASEALLSETTALKON 25 4 使用循环语句时应注意的几点 1 DOWHILE和ENDDO FOR和ENDFOR SCAN和ENDSCAN必须配对使用 2 循环变量 应是数值型的内存变量或数组元素 3 EXIT和LOOP命令嵌入在循环体内 可以改变循环次数 但是不能单独使用 EXIT的功能是跳出循环 转去执行ENDDO ENDFOR ENDSCAN后面的第一条命令 LOOP的功能是转回

13、到循环的开始处 重新对 条件 进行判断 26 第三节过程的模块化 VFP模块化在具体实现上提供三种形式 它们是子程序 过程和函数 一子程序子程序也叫外部过程 是以程序文件 PRG 的形式单独存储在磁盘上 子程序的结构与一般的程序文件一样 可以用MODIFYCOMMAND命令来建立 修改 和存盘 扩展名也默认为 PRG 子程序与其他程序文件的唯一区别是其末尾或返回处必须有返回语句RETURN 子程序的调用 DO 27 二 过程 内部 内部过程 把多个过程组织在一个文件中 这个文件称之为过程文件 或者把过程放在调用它的程序文件的末尾 过程文件格式为 PROCEDURE PARAMETER RETU

14、RN 过程有两种存放方式 1 把所有的过程集中写入一个被称为过程文件 prg文件 的磁盘文件中 2 直接把过程写在调用它的主程序文件中 主程序被打开时 过程同时被调入内存 调用时可节省时间 3 如果缺省RETURN 则在过程尾部自动执行一条隐含的RETURN命令 若不带则返回逻辑值 T 28 例6 22 建立如下程序文件 过程放在程序文件中 MAIN PRGSETTALKOFF 正在执行主程序 DOSUB1SETTALKONProcedureSUB1 正在执行SUB1 RETURN 29 三 过程文件的建立 过程文件的建立方法与程序文件相同 可用MODIFYCOMMAND命令或调用其他文字编辑

15、软件来建立 过程文件的结构一般为 PROCEDURERETURNPROCEDURERETURN PROCEDURERETURN 30 1 过程文件的调用调用某过程文件中的过程时 必须先打开该过程文件 打开过程文件命令为 格式 SETPROCEDURETO任何时候系统只能打开一个过程文件 当打开一个新的过程文件时 原已打开的过程文件自动关闭 调用过程文件DOWITH参数表2 过程文件的关闭关闭过程文件可用下列命令 格式一 SETPROCEDURETO 格式二 CLOSEPROCEDURE 31 参数传递 当用主程序调过程时 可以将主程序中的参数传递给过程 在过程中经过处理后再返回到主程序 调用程

16、序的格式 格式1 DO WITH 格式2 实参可以是常量 变量或表达式 调用程序时将发送实参 接收参数命令 PARAMETERS 此时形参为私有变量 LPARAMETERS 此时形参为局部变量 32 规则 1 当实参数量大于形参数量时 系统将提示出错 2 当实参数量等于形参数量时 实 形参数一一对应发 接参数 3 当实参数量小于形参数量时 多余的形参将被赋值为逻辑假 F 参数的两种传递方式 1 按值传递 形参变量值的改变不会影响实参变量的值 2 按地址 引用 传递 形参变量值的改变时 实参变量也随之改变 两种方式的设置命令 SETUDFPARMSTOVALUE REFERENCE 按值传递 按地址 33 变量的作用域 变量的作用域指的是变量在什么范围内是有效 或能够被访问 的 内存变量可分为 公共 私有 局部三类 1 公共变量 在任何模块中都可使用的变量称为公共变量 可用 PUBLIC建立 其初值被赋为逻辑假 F 2 私有变量 可在本模块及其下属的各层模块中使用 在程序中直接使用的变量 均为私有变量 一但建立它的模块程序运行结束 私有变量将自动清除 3 局部变量 只能在建立它的模块中使

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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