




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 VFP程序设计基础,6.1 应用程序简介,6.2 应用程序中的常用命令,6.4 过程与函数,6.3 程序的控制结构,6.5 结构化程序设计举例,VFP工作方式的最大特点,通过菜单、命令窗口、对话框、工具栏等图 形界面直接操纵数据库 Q:为什么需要编制程序? 1、在VFP中任何可以用交互方式实现的数据管理工作,均可用程序方式实现 2、VFP中直观、方便的交互方式效率低,操作繁琐,速度慢 3、最终用户对VFP了解一般,极易出现误操作 4、程序方式使用户能通过简单的选单操作即可使用系统,出现误操作系统也 会自动处理,建立真正的管理信息系统必须编制程序 VFP既兼容传统的面向过程的程序设计方式,也提供面向对象的编程技术。 面向过程的方式是一种程序流的驱动方式,强调的是解决问题的过程,不关心 其中的操作对象;面向对象的方法将若干个对象有机结合在一起,以对对象的 操作完成对整个任务的操作,关心的是每个对象,思考的是对象间的联系。,第1节 应用程序简介,一、应用程序概念:为完成某项任务所需执行的命令序列,这些命令按照一定的结构有机地组合在一起,并以文件的形式存储在磁盘上,又称为命令文件。 二、应用程序的组成: 前言:注释语句 设置区:设置程序的运行环境,多由SET命令实现 程序体:所有命令序列,一般包括数据的输入输出、数据的处理以 及结果输出等命令 整理部分:如关闭各种文件 程序的退出:设置有关命令关闭文件返回到命令窗口状态或操作系 统状态,第2节 应用程序中的常用命令,一、环境设置命令 Set talk on/off 设置是否在主窗口中状态栏中 显示所有命令的执行结果 Set console on/off 设置是否把输出信息在窗口上显示 Set printer on/of 设置是否在打印机上输出信息 Set safety on/off 设置在改写文件时VFP是否显示 对话框以确认改写有效 Set heading on/off 设置在执行LIST、DISPLAY等 命令时是否显示字段名 Set status on/off 设置是否显示状态行 Set default to 盘符 指定默认的驱动器 Set device to screen /printer 把输出信息发送到VFP的窗口 屏幕或打印机,二、交互输入命令 1、 键入字符串命令 格式:ACCEPT TO 说明:1)暂停程序的运行等待用户键入字符型常量赋给指定 的内存变量 2)是显示在屏幕上的、用于提示说明的字 符型表达式 3)如果不键入任何字符而只按回车键,则赋给内存变 量的值将是一个空字符串 示例:编写可以打开任一数据表文件的通用命令。 ACCEPT “请输入要打开的表文件名:” TO BM USE &BM,2、输入单字符命令 格式:WAIT TO 功能:暂停程序的运行,等待用户键入单个字符后再恢复程序运行 说明:1)为可选项,其格式、功能与要求同ACCEPT 命令。如果命令中无此选项,则系统默认的提示信息是: PRESS ANY KEY TO CONTINUE 2)TO 也为可选项,选用时,则键入的单个字符 均作为字符型数据赋给内存变量。如果只是按下回车 键,则只将一个空字符存入内存变量 示例:等待用户键入“Y/y”或其它字符,以确定是否继续执行程序 wait “是否继续执行” to x if x=y or x=Y else exit endif,2、键入表达式命令 格式:INPUT TO 功能:暂停程序运行,等待键入表达式并将其值赋给指定的内存 变量(可接受数值、字符、日期和逻辑型数据),待按回车 键后,继续运行程序。 说明: 1)为可选项,其格式、功能与要求同ACCEPT命令 2)命令中的的类型决定于键入数据的类型,但不得 为M型数据 3)若键入的是表达式,本命令将先计算出表达式的值,然后把 其结果赋给 4)若键入字符型常量或逻辑型常量时应带有定界符 5)在响应该命令时,若键入了无效表达式或只按下回车键,系 统将会给出提示信息 示例:试运行下述交互输入命令 INPUT “请输入学生姓名:” TO XM INPUT “请输入其班级:” TO BJ INPUT “该人性别为:” TO XB,三、常用辅助命令 1、注释命令 格式1:NOTE 格式2:* 格式3:),系统默认下一 行内容仍为注释内容。 示例1:NOTE 打开学生表 USE 学生表.DBF 示例2: SET CONSOLE OFF &取消窗口的输出显示 ,2、清除命令 格式1:CLEAR 说明:清除当前屏幕上的所有信息 格式2:CLEAR ALL 说明:关闭所有文件,清除所有内存变量,3、关闭文件命令 格式1:CLOSE ALL 说明:关闭所有的数据库、表以及索引文件 格式2:CLOSE 说明:文件类型 DATABASE 数据库文件、索引文件、格式文件 INDEX 当前工作区的索引文件 FORMAT 当前工作区的格式文件 PROCEDURE 当前工作区的过程文件 ALTERNATE 文本输出文件,4、运行中断和结束命令 格式1:QUIT 说明:退出VFP,返回到操作系统状态 格式2:CANCEL 说明:结束本次程序的运行,返回到命令窗口状态 格式3:RETURN TO MASTER 说明:返回到调用点处,5、定位输入输出命令 格式: SAY 说明:在指定的行、列处输出数据 示例:在主工作区的(10 ,10 )位置输出“欢迎使用”,第3节 程序的控制结构,程序设计的过程:分析问题、确定任务、划分模块、建立模型、组织数据、描述操作步骤、编写程序、上机调试、分析运行结果、写出程序说明书 面向过程方式采用的程序设计方法:结构化程序设计,其基本原则是自顶向下、逐步求精;此方法提出了三种基本程序结构,分别是顺序、选择、循环;任何一个程序均可用这三种结构装配 流程图:就是运用一些特定的图形符号和必要的文字来描述解题步骤的图示 三种基本程序结构流程图:,顺序结构,分支结构,循环结构,一、顺序结构 概念:自始至终严格按照程序中语句的先后顺序逐条执行,是最基本、最普遍的结构形式。从宏观上看,任何程序或系统都可看成是一个个基本结构或一个个基本程序段构成的顺序结构 示例1:试在表文件中查看某职工的有关情况。 SET TALK OFF CLEAR USE 学生表.DBF LOCATE FOR 学号=“20026920111” DISPLAY USE SET TALK ON 示例2:根据输入的半径值,计算出相应的圆的周长。 SET TALK OFF CLEAR INPUT “请输入圆的半径:” TO R L=2*3.1416*R 10,10 SAY “圆的周长是:”+STR(L,6,3) SET TALK ON,1、简单分支 格式: IF ENDIF 注意:IF和ENDIF必须成对出现,二、分支结构 概念:按照一定的条件由判断语句或选择语句构成的双重或多重 走向的程序,示例:在“职工人事档案表”中查看“张丹枫”的基本情况 SET TALK OFF CLEAR USE 职工人事档案表 LOCATE FOR 姓名=“张丹枫”,IF FOUND() DISP ENDIF USE SET TALK ON,2、 选择分支 格式: IF ELSE ENDIF,示例:在表文件“分数.DBF”中查找学号为99020203的学生成绩,若其成绩满60分则显示其学号、课程号和成绩;否则显示此人的学号、课程号并通知其补考。 SET TALK OFF USE 分数.DBF CLEAR LOCATE FOR 学号=“99020203” IF 成绩=60 ?“学号:”+学号 ?“课程号:”+课程号 ?“成绩:”+STR(成绩,6,2) ELSE ?“学号为”+学号+“的学生应参加补考的课程号为:”+课程号 ENDIF USE SET TALK ON,作业 求解一元二次方程AX2+BX+C=0,系数A,B,C的值由用户通过键盘输入,当方程有实根时,屏幕显示出两根的值;当方程无实根时,屏幕显示出“方程无实根!,3、判断语句嵌套 IF语句多重嵌套示意结构如下: IF ELSE IF ELSE IF ELSE ENDIF3 ENDIF2 ENDIF1,注意: (1)IF、ELSE(可不选)、ENDIF一一 对应、互相匹配 (2)允许简单判断和选择判断语句自我嵌套或相互嵌套,但层次必须清楚,不得交叉 (3)最好采用缩格(锯齿形)的书写方式,示例:根据键入X的值,计算下面分段函数的值,并显示结果,程序如下: SET TALK OFF CLEAR INPUT “X=” TO X IF X0 IF X10 Y=X*X+1 ELSE Y=3*X*X-2*X+1 ENDIF ELSE Y=X*X+4*X-1 ENDIF ?”分段函数值为:”+STR(Y,10,2) SET TALK ON RETURN,4、多分支结构 格式: DO CASE CASE CASE CASE OTHERWISE ENDCASE,示例:用DO CASE语句修改上面计算分段函数的例子。 SET TALK OFF CLEAR INPUT “X=” TO X DO CASE CASE X0 .AND. X10 Y=X*X+1 ENDCASE ?”分段函数值为:”+STR(Y,10,2) SET TALK ON RETURN,三、循环结构 循环结构程序:按照一定条件重复进行某种特定操作的 程序称为循环结构程序,1、当型循环结构 格式:DO WHILE LOOP EXIT ENDDO 说明:结构组成:循环起始语句、循 环体、循环终端语句 注意:在循环体内要设置修改循环条 件的语句,避免死循环,例1:编程求和 S=1+2+3+100。 SET TALK OFF CLEAR STORE 0 TO N,S DO WHILE N=100 S=N+S N=N+1 ENDDO ?”累加和S=”,S SET TALK ON RETURN,死循环示例: X=1 S=0 DO WHILE X=1 S=S+X X=X+1 ENDDO,例2:编程显示学生表中所有女生的记录。 SET TALK OFF CLEAR USE 学生表 INDEX ON 性别 TO 学生表_性别 SEEK “女” DO WHILE 性别=”女” DISP SKIP ENDDO USE SET TALK ON RETURN,作业:令计算机从0开始计数,每计一个数,便判断该数是否为偶数,若是偶数则接着计下一个数;若是奇数则将其累加,若累加和大于250,则计数结束;若累加和不大于250则继续计数,编写程序。,SET TALK OFF CLEAR STORE 0 TO N,S DO WHILE N=0 if s250 exit else if n%2=0 S=N+S N=N+1 else N=N+1 endif endif ENDDO ?“累加和S=“,S SET TALK ON RETURN,例4:编写程序能根据键盘输入的姓名,从学生表中查找该生的信息。 SET TALK OFF CLEAR ACCEPT “请输入姓名:” TO XM USE 学生表 DO WHILE .NOT.EOF() IF 姓名=XM DISP EXIT ELSE SKIP ENDIF ENDDO USE SET TALK ON,2、固定次数的循环结构 格式:FOR = TO STEP LOOP EXIT ENDFOR/NEXT 注意:步长可为正值或负值 示例:编程求和S=1+2+3+100。 SET TALK OFF CLEAR S=0 FOR N=1 TO 100 ?”S=”,S S=S+N SET TALK ON ENDFOR RETURN,3、表扫描循环结构 格式:SCAN FOR WHILE LOOP EXIT ENDSCAN,SET TALK OFF CLEAR N=0 USE 学生表 SCAN FOR 性别=”男”(WHILE 性别=“男”) N=N+1 ENDSCAN ?”学生表中男学生的人数是:”,N USE SET TALK ON RETURN,例1:编程 统计学生表中男学生的人数。,例2:统计表文件“学生表.DBF”中各个班级的人数。 *L1.PRG SET TALK OFF STORE 0 TO A,B CLEAR USE 学生表.DBF SCAN DO CASE CASE 班级=“注会” A=A+1 CASE 班级=“金融二” B=B+1 ENDCASE ENDSCAN ?“注会班的人数为:”+STR(A,3) ?“金融二的人数为:”+STR(B,3) USE SET TALK ON,4、多重循环结构 格式(以当型循环结构为例): DO WHILE 条件表达式1 语句行序列11 DO WHILE 条件表达式2 语句行序列21 DO WHILE 条件表达式3 语句行序列31 ENDDO3 语句序列22 ENDDO2 语句行序列12 ENDDO1,例2:编写程序打印如下的图形 * * * * * * *,SET TALK OFF CLEAR A=1 DO WHILE A=7 B=1 DO WHILE B=8 A,B+A SAY “*” B=B+1 ENDDO A=A+1 ENDDO SET TALK ON RETURN,作业:1、编程打印如下图形: * * * * * * * 2、试用固定次数循环的嵌套格式编写一个打印九九乘 法口诀表的程序。,过程:可被调用的功能模块或能够完成某种特定功能的独 立程序。,一、过程的建立与调用 1、过程的建立: PROCEDURE 2、过程的调用 DO 3、过程中的返回命令 RETURN 4、过程的嵌套:一个过程又调用了另一个过程,第4节 过程结构程序设计,例1:用过程编写一个求和与乘积的程序。 *AA.PRG调用过程BB *过程BB SET TALK OFF M=3 S=1 N=5 P=1 S=M+N DO BB P=S*N ?”S=”,S RETURN ?”P=”,P SET TALK ON RETURN,例2:试编写一程序求解W=X!+Y!+Z!(其中:X,Y,Z的值均为一位正整数)。 主程序*MAIN_1.PRG 过程*SUB_1.PRG SET TALK OFF T=1 INPUT “X=” TO X FOR I=1 TO N INPUT “Y=” TO Y T=T*I INPUT “Z=” TO Z ENDFOR N=X RETURN DO SUB_1 A=T N=Y DO SUB_1 B=T N=Z DOU SUB_1 W=T+A+B ?“W=”+STR(W,7) SET TALK ON,例3:有一个名为SCORE的数据表,具有如下的字段:学号(C,5),姓名(C,8),政治(N,3),数学(N,3),外语(N,3),总分(N,3),平均分(N,6,2)。编写一程序,分别求出政治课、数学课和外语课的总分。 *主程序CLASS.PRG SET TALK OFF *计算单科总分的过程JSZF.PRG USE SCORE GO TOP KCM=”政治” DO WHILE .NOT.EOF() T=0 T=T+&KCM DO JSZF SKIP T1=T ENDDO KCM=”数学” RETURN T=0 DO JSZF T2=T KCM=”外语” T=0 ?”政治课,数学课,外语课的总分分别是:”,T1,T2,T3 DO JSZF USE T3=T SET TALK ON,二、过程文件 1、过程文件:过程的集合 2、过程文件的建立和修改:MODIFY COMMAND 3、过程文件的一般结构 PROCEDURE RETURN PROCEDURE RETURN PROCEDURE RETURN 4、过程文件的打开命令 格式:SET PROCEDURE TO 5、过程文件的关闭命令 格式I:SET PROCEDURE TO 格式II:CLOSE PROCEDURE,*过程文件PROC.PRG PROCEDURE PROC1 ?”I am from proc1.” ?”* 10 11 12 13 14 15” ?”平方 100 121 144 169 196 225” RETURN PROCEDURE PROC2 ?”I am from proc2.” ?”* 10 11 12 13 14 15” ?”立方 1000 1331 1728 2179 2774 3375” DO PROC3 RETURN PROCEDURE PROC3 ?”-” ?”I am from proc3.” RETURN,*主程序MAIN.PRG CLEAR SET PROCEDURE TO PROC DO PROC1 ?”=” DO PROC2 ?”=” CLOSE PROCEDURE RETURN,例1:编写程序,调用过程文件中的过程,并显示结果。,例2:试求3100之间的所有素数并显示之。 算法:每产生一个M值则依次除以3到M的算术平方根之间的所有奇数,若均不能被整除那M为素数,然后将其显示输出;否则,M就不是素数。,主程序 过程文件 *MAIN_2.PRG *SUB_2.PRG SET TALK OFF PROCEDURE QS SET PROCEDURE TO SUB_2 FOR I=3 TO N STEP 2 FOR M=3 TO 100 STEP 2 IF INT(M/I)=M/I I=3 RETURN N=INT(SQRT(M) ENDIF DO QS ENDFOR ENDFOR ?M SET PROCEDURE RETURN ,三、内存变量作用域(作用域:内存变量的作用范围) 1、全局变量 1)指在程序的任何嵌套中及在程序执行期间始终有效的变量 2)格式:PUBLIC 例:在过程调用中,运用全局变量传递数据。 主程序 过程 *MAIN_3.PRG *S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金属板材卷圆工艺考核试卷及答案
- 丝线防虫包装工艺考核试卷及答案
- 冶金设备数据采集与分析工艺考核试卷及答案
- 2025年黑龙江省佳木斯市警察招考行政能力测验模拟题(附答案)
- 铝单板幕墙施工质量控制标准考核试卷及答案
- 2025年河南省政府采购评审专家考试题库(含答案)
- 怎么做数学教学课件
- 2025年河北省秦皇岛市事业单位工勤技能考试题库(含答案)
- 2025年焊接技能题库及答案
- 教学课件下载歌曲
- 六年级家长会课件
- 2025年安徽省淮南市【辅警协警】笔试模拟考试题(含答案)
- 废气处理活性炭吸附操作规范
- 2025年教科版新教材科学二年级上册教学计划(含进度表)
- 创伤急救基本知识培训课件
- 2025年农业农村科技基础知识考试题库(附含答案)
- 合同第三方见证人范本
- 学生心理健康教育干预措施
- DB32∕T 4652-2024 基于区块链技术的多中心药物临床试验管理系统开发指南
- 实验室生物安全知识培训考试试题(含答案)
- 2025年成人高考英语试题及答案
评论
0/150
提交评论