已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标 理解程序的概念和结构化编程思想掌握程序建立 修改和运行方法掌握简单的输入输出命令掌握程序设计的三种基本结构掌握过程和函数的创建与使用 第8章VisualFoxPro程序设计基础 引入 VisualFoxPro绝大多数操作都可以通过菜单和对话框来完成 或在命令窗口输入命令来完成 这种方式属于单命令方式 当需要重复执行某些操作时 还需重新输入命令 因此使用不太方便 此外 单命令方式对运用大量命令处理复杂的数据库管理和操作时显得无能为力 为此 VisualFoxPro提供了批命令工作方式 即程序方式 所谓程序方式是指将多条命令按一定逻辑结构组织在一个程序文件中 执行该程序文件时 程序文件中的命令被有序地执行 完成一定的任务 8 1程序的建立 修改和运行 VisualFoxPro具有大多数编程语言 如C C 等 相似的基本特征 它提供了丰富的命令和系统函数 同时允许自定义函数和过程 VisualFoxPro遵循结构化编程思想 把一个完整的应用程序划分成若干功能相对独立的模块 各功能模块上下层之间可以相互调用 即把应用程序模块化 采用顺序 分支 循环三种基本的程序结构来设计和编写程序 VisualFoxPro本身提供了功能强大的程序编辑器 用来编辑源程序 8 1 1程序的建立 程序文件是VisualFoxPro最重要的文件类型之一 文件内容主要由若干命令组成 故又称为命令文件 程序文件的扩展名为PRG 程序的建立是指如何将已经编写好的程序形成相应的程序文件 可以使用任何文本编辑器编辑程序 当然 VisualFoxPro本身提供了功能强大的程序编辑器 用来编辑源程序 1 菜单方式 方法1 使用项目管理器代码选项卡中的相应按钮可以新建 修改 运行程序文件 方法2 选择系统菜单 文件 中的 新建 命令 在出现的 新建 对话框中 选择 程序 并单击 新建文件 按钮 2 命令方式 格式1 MODIFYCOMMAND 格式2 MODIFYFILE 功能 启动VisualFoxPro提供的程序编辑器来建立程序文件 若程序文件已存在 则在程序编辑器窗口中打开该文件供编辑修改 若只有 号而不写文件名 系统将打开一个对话框 用户可从框中列出的文件名中选择需要编辑的文件 8 1 2程序的修改 使用文件编辑命令MODIFYCOMMAND或MODIFYFILE对已经存在的命令文件进行编辑 还可以使用菜单操作 先使用 文件 菜单 打开 命令 选择需要修改的文件 8 1 3程序的运行 1 菜单方式1 从 程序 菜单中选择 运行 命令 打开 运行 对话框 2 从文件列表框中选择要运行的程序文件 并单击 运行 命令按钮 2 命令方式DO WITH 8 2顺序结构程序设计 顺序结构是程序设计中最简单 最基本的程序结构 在该结构中 命令按照在程序中出现的先后顺序依次逐条执行 它是构成程序框架的基础 本节介绍 基本语句 注释语句 赋值语句 程序暂停语句 程序结束语句 非格式化输入输出语句格式化输入输出语句 8 2 1基本语句 1 注释语句 1 行首注释NOTE 或 2 行尾注释如果要在命令语句的尾部加注释信息 应该使用行尾注释语句 命令格式 2 赋值语句 命令格式 STORETO 功能 为变量或属性名赋值 也就是将表达式的值存储到内存变量或属性中 3 程序暂停语句 命令格式 WAIT TO WINDOW AT TIMEOUTn 功能 暂停程序的执行 处于等待状态 可以显示提示信息 按任意键或单击鼠标后或等待一定时间后等待状态结束 同时 还可以从键盘上输入数据 实现交互式输入 说明 1 指定要显示的提示信息 省略时 显示默认信息 按任意键继续 2 TO 将按下的键以字符形式保存到内存变量中 只接受一个字符 3 WINDOW AT 指定提示信息窗口在VisualFoxPro主窗口中的位置 若省略 AT 则提示信息显示在右上角 4 n 等待n秒 在此期间若未按任意键或单击鼠标 n秒后自动结束等待状态 4 程序结束语句 语句1 RETURN功能 使程序执行结束 并返回到调用它的上级程序继续执行 若无上级程序则返回到VisualFoxPro主窗口 指定返回给调用程序的表达式 如果省略返回表达式 则自动将 真 T 返回给调用程序 语句2 CANCEL功能 终止程序运行 清除程序的私有变量 并返回到VisualFoxPro主窗口 8 2 2非格式化输入输出语句 1 非格式化输入语句 1 INPUT命令命令格式 INPUT 提示信息 TO 内存变量 功能 该命令在执行时显示指定的 提示信息 等待用户输入 并通过按回车键来终止数据输入 键盘输入的数据存储在 内存变量 中 2 ACCEPT命令 命令格式 ACCEPT 提示信息 TO 内存变量 功能 该命令在执行时显示指定的 提示信息 等待用户输入 并通过按回车键来终止数据输入 键盘输入的数据存储在 内存变量 中 说明 该命令只能接收字符型数据输入 可以直接按回车键 相当于输入空串 例8 3 设有学生档案表students 编写一个按学号查询学生信息的程序 students的结构见第3章相关内容 SETTALKOFFUSEstudentsCLEARACCEPT 请输入学号 TOXHLOCATEFOR学号 XHDISPLAYUSESETTALKONRETURN 2 非格式化输出语句 1 表达式输出命令 和 命令格式 功能 计算表达式的值 并把计算结果传送到VisualFoxPro主窗口 说明 从光标下一行开始输出结果 从当前光标位置开始输出结果 2 文本输出命令 命令格式 TEXT 文本信息 ENDTEXT功能 把TEXT与ENDTEXT之间的文本信息内容显示出来 例8 4 练习使用TEXT语句输出函数的值 CLEARSETTEXTMERGEONTEXTVisualFoxPro的系列号 VisualFoxPro启动目录或文件夹 当前目录或文件夹 正在执行的程序文件名 ENDTEXT 8 2 3格式化输入输出语句 格式化输入输出语句规定了输入输出数据显示的位置和显示的格式 命令格式 行 列 SAY 表达式 GET变量名 DEFAULT 功能 在指定的行列位置输出SAY子句 表达式 的值与GET变量的值 并可修改GET子句的变量值 CLEARX SPACE 2 2 2SAY 请输入起点 GETXREADFORI 1TO100CLEAR VAL X VAL X ISAY WAITTIME0 1ENDFORRETURN 例8 5 下面的程序利用SAY语句的定位输出功能 实现动画效果 8 3选择结构程序设计 顺序结构的程序特点是在执行程序时 所有的命令都会执行到 但在实际应用中 有些命令的执行是取决于某些条件的成立与否 这就要借助于条件判断语句或情况语句 由条件语句构成的程序称为选择结构或分支结构 8 3 1IF语句 1 语句格式格式1 IF 条件表达 语句序列 ENDIF 格式2 IF 条件表达式 语句序列1 ELSE 语句序列2 ENDIF 例8 7 输入学生学号 查询学生信息 SETTALKOFFUSEstudentsCLEARACCEPT 请输入学生学号 TOXHLOCATEFOR学号 XHIFFOUND 若找到 则FOUND 返回真值DISPLAYELSE 学号 XH 不存在 提示信息没有找到WAITWINDOWS 按任意键程序继续ENDIFUSESETTALKONRETURN 8 3 2DOCASE语句 1 语句格式DOCASECASE 条件1 语句序列1 CASE 条件2 语句序列2 CASE 条件n 语句序列n OTHERWISE 语句序列n十l ENDCASE 2 功能 系统依次查看每一个CASE条件 只要某一个条件成立 就执行该CASE条件下的 语句序列 之后跳过后面的CASE语句 去执行ENDCASE后面的语句 退出DOCASE结构 若所有的条件均不成立 在有选择项OTHERWISE的情况下 执行它后面的语句序列 执行后再接着执行ENDCASE后面的语句 在没有选择项OTHERWISE的情况下 直接执行ENDCASE后面的语句 例8 8 输入一个学生的成绩 判断是哪一个成绩段 SETTALKOFFCLEARINPUT 请输入成绩 TOChengJiDOCASECASEChengJi100 输入有误 优异 ENDCASESETTALKONRETURN 8 4循环结构程序设计 在VisualFoxPro中 循环用于重复执行某一段有特定功能的程序 VisualFoxPro提供了三种循环控制结构语句 DOWHILE ENDDOFOR ENDFORSCAN ENDSCAN 8 4 1DOWHILE语句 1 语句格式DOWHILE 条件表达式 语句序列1 LOOP 语句序列2 EXIT 语句序列3 ENDDO 2 功能 首先检查 条件表达式 的值 若为真就执行循环体中的语句 执行到ENDDO时 循环返回DOWHILE 再次检查 条件表达式 的值 值为 真 则继续执行循环体语句 值为 假 则跳出DOWHILE结构 并执行ENDDO下面的语句 如果第一次检查 条件表达式 的值为 假 则循环体一次都不执行 例8 9 创建数据表 输入记录 并显示不及格学生记录 并统计不及格人数 CREATETABLEstudent 学号C 8 姓名C 6 英语N 3 计算机N 3 i 1 循环计次DOWHILEi 10 添加10条记录 APPENDBLANKSTORESPACE 8 toxhSTORESPACE 6 toxmSTORE0TOyy jsjCLEAR 3 10say 学号 GETxh 4 10say 姓名 GETxm 5 10say 英语 GETyy 6 10say 计算机 GETjsjREADREPLACE学号WITHxhREPLACE英语WITHyyREPLACE计算机jsji i 1 每完成一次循环 循环次数加1ENDDO CLEARfail 0 统计不及格人数GOTOPDOWHILE NOTEOF 查询至表尾退出循环语句IF英语 60OR计算机 60fail fail 1 统计不及格人数DISPLAYFIELDS学号 姓名 英语 计算机 显示不及格记录ENDIFSKIPENDDO 结束循环 不及格人数为 STR fail 2 显示不及格人数USERETURN 8 4 2FOR语句 1 语句格式FOR 变量 初值 TO 终值 STEP 步长 语句序列1 LOOP 语句序列2 EXIT 语句序列3 ENDFOR 2 功能 首先将初值赋给循环变量 然后判断循环条件是否成立 若成立则执行循环体 然后循环变量增加一个步长 再次判断循环条件是否成立 重复以上的过程 若循环条件不成立 则退出循环结构 执行ENDFOR后面的语句 例8 10 打印九九算术表 CLEARFORi 1TO9 FORj 1TOi SPACE 2 STR i 1 X STR j 1 STR i j 2 ENDFORENDFORRETURN 8 4 3SCAN语句 SCAN ENDSCAN是一种VisualFoxPro特有的对数据表记录进行处理的循环 1 语句格式SCAN 范围 FOR 条件l WHILE 条件2 语句序列 LOOP EXIT 语句序列 ENDSCAN 2 功能 对当前数据表文件指定 范围 内的记录进行扫描 若符合指定条件 则执行 语句序列 扫描时 如果使用索引 则按照索引顺序进行 没有使用索引则按照记录在数据表中的物理顺序进行扫描 8 5过程与函数 程序设计时 常常有些运算和处理程序是相同的 只是每次以不同的参数参与程序的执行 通过建立自定义过程和函数 可以将经常使用或具有独立功能的程序段从程序中独立出来 更加方便地实现功能调用 8 5 1自定义过程 1 过程的定义PROCEDURE LPARAMETERS RETURN ENDPROC或PROCEDURE RETURN ENDPROC 2 过程的调用 可以使用DO命令调用过程 其格式为 DO IN程序文件名 WITH参数表 关闭过程文件的方法有 1 打开一个新的过程文件 即关闭原打开的过程文件 2 用SETPROCEDURETO命令 3 用CLOSEPROCEDURE命令 8 5 2自定义函数 VisualFoxPro提供了大量标准函数 这些函数能完成若干复杂的功能 但实际应用中经常需要一些有特殊功能的函数 VisualFoxPro允许用户按一定的规则自行定义一个专用的函数 这就是自定义函数 1 定义自定义函数 FUNCTION 函数名 LPARAMETERS 参数表 命令序列 RETURN 表达式 ENDFUNC或FUNCTION 函数名 命令序列 RETURN 表达式 ENDFUNC 2 自定义函数的调用 调用个是 函数名 参数表 由于自定义函数返回的是一个值 所以函数调用只能作为表达式的一部分出现 自定义函数有可能存放在同一个程序文件中 也有可能存放在其他程序文件中 所以调用存放在其他程序文件或过程文件中的自定义函数时 要注意使用SETPROCEDURETO 程序文件名 打开相应的程序文件 8 5 3参数传递 我们把调用程序传递给过程或函数的 数据 称作 参数 过程或函数对接收到的参数进行处理 或根据接收到的参数完成相应的任务 在定义过程与函数时 使用LPARAMETERS命令指定要接收的参数 格式 LPARAMETERS 说明 1 LPARAMETERS语句用来声明参数表中的各个变量 这些参数也叫形式参数 2 LPARAMETERS语句必须作为过程体的第一条可执行语句 3 也可以使用PARAMETERS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福州软件职业技术学院《环境与自然资源经济学》2025-2026学年期末试卷
- 民办合肥滨湖职业技术学院《会展战略管理》2025-2026学年期末试卷
- 福州软件职业技术学院《婚姻家庭法》2025-2026学年期末试卷
- 有色矿石磨细工复试评优考核试卷含答案
- 实验动物养殖员安全专项知识考核试卷含答案
- 搪瓷瓷釉制作工操作评估知识考核试卷含答案
- 客运索道操作工班组安全模拟考核试卷含答案
- 初级会计职称预测卷中等及答案
- 材料科学结业考试重点难点试题及答案
- 《工程建设环境与安全管理》课件 项目3、4 建设项目环境管理制度、建设工程施工环境管理措施
- 政治湖北十一校2026届高三年级第二次联考(3.25-3.26)
- 2026江西赣州市政公用集团社会招聘39人备考题库及参考答案详解ab卷
- 2026年广东省广轻控股集团有限公司校园招聘笔试模拟试题及答案解析
- 快递员服务规范与操作流程(标准版)
- 二类医疗器械经营质量管理制度及工作程序
- 湖南省2026届高三九校联盟第二次联考语文试卷(含答案详解)
- 汽轮机润滑油系统课件
- 2026年高考数学二轮复习专题13 椭圆、双曲线与抛物线(复习讲义)(解析版)
- 南瑞集团在线测评试题
- 管道支架施工专项措施
- 设计院安全生产管理制度
评论
0/150
提交评论