Visual FoxPro 8.0实用教程_第8章_程序设计基础.ppt_第1页
Visual FoxPro 8.0实用教程_第8章_程序设计基础.ppt_第2页
Visual FoxPro 8.0实用教程_第8章_程序设计基础.ppt_第3页
Visual FoxPro 8.0实用教程_第8章_程序设计基础.ppt_第4页
Visual FoxPro 8.0实用教程_第8章_程序设计基础.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库技术及应用 教材 VisualFoxPro8 0实用教程 谢维成陈永强郑海春编著清华大学出版社 第8章程序设计基础 8 1程序文件的建立与运行8 2程序设计的常用命令8 3程序的控制结构8 4过程与过程调用8 5习题 8 1程序文件的建立与运行 程序执行方式是将多条命令按一定的结构编写成一个程序 然后命令机器去执行这个程序 VFP程序和其它高级语言编写的程序一样 是一个文本文件 程序由若干行命令语句构成 编写程序即建立一个称为源程序的文本文件 只有建立了程序文件才能执行该程序 程序文件的建立1 菜单方式2 在 项目管理器 中创建程序3 命令方式 MODIFYCOMMAND程序文件的保存与修改程序文件的执行 例8 1 建立程序EXAM8 1 PRG 功能是求当前日期值的长度 并显示日期和长度值 程序文件的调试 8 2程序设计的常用命令 一个程序必须有输入和输出两个部分 下面对最常用的输人 输出命令以及程序结尾命令作概要介绍 基本输入输出命令 1 WAIT命令 clearusexsqki 1dowhile eof no name sexskipi i 1ifmod i 10 0wait 按任意键继续 windowclearendifenddouse 2 ACCEPT命令 语法 ACCEPT TO功能 在当前窗口的当前光标位置显示表达式的内容 等待用户输入 并将输入的信息以字符串的形式存储在内存变量中 说明 此命令常用于且限于输入字符型数据 不需字符定界符 按回车键表示输入结束 例子 USEXSQKACCEPT 请输入要查询学生的学号 tocNOLOCATEFORNO cNO NO NAME SEXUSE 3 INPUT命令 语法 INPUT TO功能 在当前窗口的当前光标位置显示表达式的内容 等待用户输入 输入内容时按回车键表示输入结束 说明 可用于输入各种类型的数据 注意 输入字符型常量需加字符定界符 输入逻辑型常量 两侧需用小圆点括起来 输入日期型或日期时间型常量 两端需加花括号 输入货币型常量 需在数字前加标识符 数值型常量可直接输入 4 命令语法 功能 对一个或多个表达式求值 并将结果输出至系统主窗口 使用 命令在下一行显示 则在同一行显示 5 SAY命令语法 SAYGET功能 在当前窗口中指定的位置处显示并可接受数据 例如 cNum 980105 定义内存变量cNum 2 15SAYcNum 在第2行第15列显示变量cNum内容 3 10SAY 学号 GETcNum 在第3行的第10列开始 显示提示信息 学号 空一格后显示变量cNum内容READ 光标停留在第3行第15列 等待用户编辑 程序结尾命令 程序的末尾可放一条RETURN命令 它能使程序执行结束 并返回到调用它的上级程序继续执行 若无上级程序则返回到命令窗口 RETURN命令一般允许缺省 8 3程序的控制结构 与其它高级语言程序相似 VFP程序也有3种基本控制结构 即 顺序结构 分支结构与循环结构 顺序结构 例8 2 建立程序EXAM8 2 PRG 功能是显示 xsqk dbf 表第1条记录的有关内容 功能说明 顺序结构程序举例SETTALKOFFUSExsqk dbf 打开表 此时当前记录号为1 第一条记录的有关情况 no name sexUSESETTALKON 分支结构 1 IF ELSE ENDIF 例8 3 建立程序EXAM8 3 PRG 功能是判断某年是不是闰年 闰年的条件是 年份能被400整除 或者年份能被4整除但不能同时被100整除 功能说明 IF ELSE ENDIF分支结构程序举例SETTALKOFFINPUT 请输入年份 TOnYearIFMOD nYear 4 0 AND MOD nYear 100 0 OR MOD nYear 400 0 nYear 年是闰年 ELSE nYear 年不是闰年 ENDIFSETTALKON 2 DOCASE OTHERWISE ENDCASE 例8 4 建立程序EXAM8 4 PRG 功能是判断输入的一个字符是属于字母 数字或特殊符号 字母 数字之外的符号 SETTALKOFFACCEPT 请输入一个字符 TOcVarDOCASECASEUPPER cVar A cVar 是字母 CASEcVar 0 cVar 是数字 OTHERWISE cVar 是一个特殊符号 ENDCASESETTALKON 循环结构 1 SCAN ENDSCAN 例8 5 建立程序EXAM8 5 PRG 功能是编辑学生情况表的有关信息 功能说明 SCAN ENDSCAN循环结构举例SETTALKOFFUSExsqk dbf 打开表 此时当前记录号为1SCANCLEAR 5 10SAY 学号 GETno 7 10SAY 姓名 GETnameREADENDSCANUSESETTALKON 2 FOR ENDFOR 例8 6 建立程序EXAM8 6 PRG 功能是显示学生表的所有字段名 功能说明 FOR ENDFOR循环结构举例SETTALKOFFUSExsqk dbf 打开表 此时当前记录号为1FORnCnt 1TOFCOUNT 循环次数与表中的字段 数一致 FIELD nCnt 显示第nCnt个字段的字段名称ENDFORUSESETTALKON 3 DOWHILE ENDDO 例8 7 建立程序EXAM8 7 PRG 功能是计算并输出1 100中整数的平方根 要求每屏显示20个数 SETTALKOFFCLEARnNum 1DOWHILEnNum100WAIT 继续吗 Y N TocAnswerWINDOWSIFUPPER cAnswer N EXITENDIFENDIFnNum nNum 1ENDDOSETTALKON 8 4过程与程序调用 在程序设计中 应用系统一般都由若干个大模块构成 大模块又可以细分为小模块 模块间存在着调用关系 这就是结构化程序设计方法 子程序设计与调用 1 子程序设计 子程序 就是具有基本功能的小模块 能够被其它程序调用的程序 子程序中必须使用一条基本命令 即返回命令 RETURN 主程序 调用子程序的程序称为主程序 2 子程序调用 1 格式 DO WITH 2 功能 主程序调用子程序 3 说明 在某一程序中安排一条DO命令来运行一个程序 WITH选项是用来传递参数的 相应地 在子程序中必须有接收参数的语句 即PARAMETERS语句 使用时注意参数的个数要匹配 例8 8 用主程序EXAM8 8 PRG调用外部过程文件SUB1 PRG和SUB2 PRG 程序名称 EXAM8 8 PRG 功能说明 外部过程调用示例CLEAR 主程序 DOSUB1 调用外部过程DOSUB2RETURN 程序名称 SUB1 PRG 子程序1 RETURN 程序名称 SUB2 PRG 子程序2 RETURN 例8 9 编写带参数的过程SUB1 用于计算圆的面积 程序名称 EXAM8 9 PRG 功能说明 带参数的过程示例nAREA 0DOSUB1WITH5 nAREA 带参数的过程调用 圆面积为 nAREARETURNPROCEDURESUB1PARAMETERSx yy 3 1415 x xRETURNENDPROC 例8 10 编写函数area 用于计算圆的面积 程序名称 EXAM8 10 PRG 功能说明 函数使用示例nAREA area 5 函数调用 圆面积为 nAREARETURNFUNCTIONareaPARAMETERSx 定义形式参数RETURN3 1415 x xENDFUNC 变量作用域 1 局部变量局部变量使用LOCAL关键字来说明 可使用该关键字定义局部内存变量和数组 局部变量只在当前定义的程序中有效 一旦该程序执行完成将自动释放局部变量 2 全局变量全局变量使用PUBLIC关键字来说明 可使用该关键字定义全局内存变量和数组 全局变量在当前程序和它所属的子程序中都有效 全局变量和局部变量一旦声明 就自动创建了逻辑型变量并赋值为 F 3 隐蔽说明其作用只是隐藏指定的在上层模块中可能已经存在的内存变量 使得这些变量在当前模块程序中无效 而并不创建变量 这样 这些变量就可以用于当前模块或其下属模块 并不改变上层模块中同名变量的取值 一旦当前模块程序运行结束返回上层模块时 那些被隐藏的内存变量就自动恢复有效性 并保持原有的取值 隐蔽说明使用PRIVATE关键字说明 4 私有变量自由创建的内存变量称之为私有变量 这种变量不同于局部变量和全局变量 它的作用范围是在本 子 程序及下属的子程序内有效 私有变量的存储说明使用Priv表示 例8 12 变量状态举例 程序名称 EXAM8 12 PRGCLEARMEMORYCLEARPUBLICPn1 Pn3 全局变量DISPLAYMEMORYLIKEPn 第1个DOPro1PROCEDUREPro1Pn2 VisualFoxPro 私有变量DISPLAYMEMORYLIKEPn 第2个DOPro2DISPLAYMEMORYLIKEPn 第4个ENDPROCPROCEDUREPro2PRIVATEPn1 隐蔽说明LOCALPn4 局部变量Pn3 istenyears Pn2 snnay Pn4 abc DISPLAYMEMORYLIKEPn 第3个ENDPROC 结论 一 全局变量在所有子程序中有效 二 局部变量只在子程序范围内有效 三 私有变量只在定义该变量的程序及下属子程序中有效 四 隐蔽说明 屏蔽同名变量 8 5习题 一 选择题1 既不能被上级例程访问 也不能被下级例程访问的变量为 A 局部变量B 私有变量C 全局变量D 个人变量2 用于声明某变量为全局变量的命令是 A PRIVATEB PARAMETERSC PUBLICD WITH 3 执行下列程序后 变量X的值为 SETTALKOFFPUBLICXX 2DOSUB X XSETTALKONRETURNPROCEDURESUBPRIVATEXX 1X X 4 1RETURNA 2B 3C 4D 5 4 在SAY语句中 GET子句的变量必须用 命令激活 A ACCEPTB INPUTC READD WAIT 二 读程序 写出运行结果 1 ex1 prg pp prga 3PARAMETERSx yb 5y x yDOppWITH2 a b s S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论