




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第四章结构化程序设计 2 第一节程序文件 一 VisualFoxPro程序的几点说明1 注释语句 格式1 格式2 功能 增强程序文件的易读性2 对话开关语句 格式 SETTALKOFF ON 功能 关闭或打开命令执行时的对话开关3 命令的分行VisualFoxPro程序是命令行的序列 每个命令都以回车键结束 一行只能写一条命令 若一条命令太长 一行写不下 也可分行书写 并在分行处加上续行符 再按回车键 3 二 程序文件的建立 修改与执行 1 建立或修改程序文件1 命令方式 MODIFYCOMMAND 程序文件名 或MODIFYFILE 程序文件名 2 菜单方式 打开 文件 菜单 选择 新建 在 新建 窗口 选择 程序 再选择 新建文件 4 3 项目管理器 选定项目管理器 代码 选项卡中的 程序 项 选择 新建 命令 2 保存程序文件程序输入 编辑完毕 单击 文件 保存 菜单项 或按Ctrl W复合键 在 另存为 对话框中指定程序文件的存放位置和文件名 并单击 保存 按钮保存程序文件并退出文本编辑器 程序文件的默认扩展名是 PRG 5 3 执行程序文件程序文件建立后 可以用多种方式 多次执行它 下面是两种常用的方式 1 菜单方式 单击 程序 运行 菜单项 打开 运行 对话框 从文件列表框中选择要运行的程序文件 并单击 运行 命令按钮 启动运行该程序文件2 命令方式 格式 DO 功能 执行指定 下的程序文件当程序文件被执行时 文件中包含的命令将被依次执行 直到所有命令被执行完毕 6 第二节程序的基本结构 由顺序 分支 循环三种基本结构构成 1 顺序结构 如图6 1所示 该结构先执行A操作 再执行B操作 2 分支结构 如图6 2所示 该结构中P代表一个条件 当条件P成立时执行A操作 否则执行B操作 图6 1顺序结构流程图图6 2分支结构流程图 7 3 循环结构 循环结构则能够使某些语句或程序段重复执行若干次 如果某些语句或程序段需要在一个固定的位置上重复操作 使用循环是最好的选择 8 三条输入命令的异同ACCEPT TOACCEPT命令只能接受字符型数据 不需定界符 输入完毕按回车键结束 WAIT TO WAIT命令只能输入单个字符 且不需定界符 输入完毕不需按回车键 INPUT TOINPUT命令可接受数值型 字符型 逻辑型 日期型和日期时间型数据 如果是字符串 需用定界符 输入完毕按回车键结束 9 分支结构形式有如下三种 1 单向分支 单向分支语句 即根据用户设置的条件表达式的值 决定某一操作是否执行 语句格式 IF 条件表达式 命令行序列 ENDIF 语句功能 该语句首先计算 条件表达式 的值 当 条件表达式 的值为真时 执行 命令行序列 否则 执行ENDIF后面的第一条命令 三 分支结构 10 例6 9 求一元二次方程AX2 BX C 0的实根 程序文件名为PROG9 PRG SETTALKOFFCLEARINPUTTOAINPUTTOBINPUTTOCZ 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 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 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 1ENDCASETAX 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表中性别为 男 的所有记录 程序文件名为PROG13 PRG SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDDOWHILE NOT EOF IF性别 男 DISPLAYENDIFSKIPENDDOCLOSEDATABASEALLSETTALKON 20 例6 14 编程显示STUDENT数据库的STUD表中除 孙业 以外的所有记录 程序文件名为PROG14 PRG SETTALKOFFCLEAR CLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDDOWHILE NOT EOF IF姓名 孙业 SKIPLOOPENDIFDISPLAYSKIPENDDOCLOSEDATABASEALLSETTALKON 21 2 FOR循环语句 格式 FOR TO STEP LOOP EXIT ENDFOR NEXTFOR语句的执行流程如右图所示 22 使用FOR循环语句的有关说明 省略STEP 则 步长 为默认值1 初值 终值 和 步长 都可以是数值表达式 但这些表达式仅在循环语句开始执行时计算一次 循环语句执行过程中 初值 终值和步长是不会改变的 并由此确定循环的次数 EXIT和LOOP命令可以出现在循环体内 执行LOOP命令时 结束本次循环 循环变量增加一个步长值 返回FOR循环头判断循环条件是否成立 执行EXIT命令时 程序跳出循环 执行循环尾后面的语句 23 3 指针 型循环控制语句 指针 型循环控制语句 即根据用户设置的表中的当前记录指针 决定循环体内语句的执行次数据 语句格式 SCAN FOR 条件表达式 命令行序列 ENDSCAN 语句功能 该语句在指定的范围内 用数据记录指针来控制循环次数 执行语句时 首先判断函数EOF 的值 若其值为 真 则结束循环 否则 结合 条件表达式 执行 命令行序列 记录指针移到指定的范围和条件内的下一条记录 重新判断函数EOF 的值 直到函数EOF 的值为真时结束循环 24 例6 18 输出STUDENT数据库的STUD表中所有男生的姓名和地址 程序文件名为PROG18 PRG SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDSCANFOR性别 男 姓名 地址ENDSCANCLOSEDATABASEALLSETTALKON 25 4 使用循环语句时应注意的几点 1 DOWHILE和ENDDO FOR和ENDFOR SCAN和ENDSCAN必须配对使用 2 循环变量 应是数值型的内存变量或数组元素 3 EXIT和LOOP命令嵌入在循环体内 可以改变循环次数 但是不能单独使用 EXIT的功能是跳出循环 转去执行ENDDO ENDFOR ENDSCAN后面的第一条命令 LOOP的功能是转回到循环的开始处 重新对 条件 进行判断 26 第三节过程的模块化 VFP模块化在具体实现上提供三种形式 它们是子程序 过程和函数 一子程序子程序也叫外部过程 是以程序文件 PRG 的形式单独存储在磁盘上 子程序的结构与一般的程序文件一样 可以用MODIFYCOMMAND命令来建立 修改 和存盘 扩展名也默认为 PRG 子程序与其他程序文件的唯一区别是其末尾或返回处必须有返回语句RETURN 子程序的调用 DO 27 二 过程 内部 内部过程 把多个过程组织在一个文件中 这个文件称之为过程文件 或者把过程放在调用它的程序文件的末尾 过程文件格式为 PROCEDURE PARAMETER RETURN 过程有两种存放方式 1 把所有的过程集中写入一个被称为过程文件 prg文件 的磁盘文件中 2 直接把过程写在调用它的主程序文件中 主程序被打开时 过程同时被调入内存 调用时可节省时间 3 如果缺省RETURN 则在过程尾部自动执行一条隐含的RETURN命令 若不带则返回逻辑值 T 28 例6 22 建立如下程序文件 过程放在程序文件中 MAIN PRGSETTALKOFF 正在执行主程序 DOSUB1SETTALKONProcedureSUB1 正在执行SUB1 RETURN 29 三 过程文件的建立 过程文件的建立方法与程序文件相同 可用MODIFYCOMMAND命令或调用其他文字编辑软件来建立 过程文件的结构一般为 PROCEDURERETURNPROCEDURERETURN PROCEDURERETURN 30 1 过程文件的调用调用某过程文件中的过程时 必须先打开该过程文件 打开过程文件命令为 格式 SETPROCEDURETO任何时候系统只能打开一个过程文件 当打开一个新的过程文件时 原已打开的过程文件自动关闭 调用过程文件DOWITH参数表2 过程文件的关闭关闭过程文件可用下列命令 格式一 SETPROCEDURETO 格式二 CLOSEPROCEDURE 31 参数传递 当用主程序调过程时 可以将主程序中的参数传递给过程 在过程中经过处理后再返回到主程序 调用程序的格式 格式1 DO WITH 格式2 实参可以是常量 变量或表达式 调用程序时将发送实参 接收参数命令 PARAMETERS 此时形参为私有变量 LPARAMETERS 此时形参为局部变量 32 规则 1 当实参数量大于形参数量时 系统将提示出错 2 当实参数量等于形参数量时 实 形参数一一对应发 接参数 3 当实参数量小于形参数量时 多余的形参将被赋值为逻辑假 F 参数的两种传递方式 1 按值传递 形参变量值的改变不会影响实参变量的值 2 按地址 引用 传递 形参变量值的改变时 实参变量也随之改变 两种方式的设置命令 SETUDFPARMSTOVALUE REFERENCE 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灌南篝火晚会活动策划方案
- 美团团购的营销推广方案
- 福清建房基础施工方案
- 防洪设施建设土地利用影响分析
- 湖北省烟花爆竹应急预案
- 江门在线税务咨询方案
- 建筑教具制作比赛方案设计
- 分析鸿星尔克营销方案
- 推销食品活动策划方案模板
- 数据治理咨询项目方案
- 民俗学课件山大
- 2025-2026秋季学年第一学期学生国旗下演讲稿(20周):第五周 76载荣光里我们茁壮成长-喜迎国庆
- 办公楼供电线路改造方案
- 《无人机操控技术》高职无人机全套教学课件
- 12YJ11 卫生、洗涤设施设计图集
- 心内科STEMI再灌注治疗率提升
- 2025年保密教育线上培训试题参考答案
- 装载机司机安全考试模拟试题(含答案)
- 安全生产法2025全文
- 中储粮薪酬管理办法
- 高空外墙清洗员安全教育培训手册
评论
0/150
提交评论