ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:102.31KB ,
资源ID:25462874      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25462874.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第九章程序设计基础.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第九章程序设计基础.docx

1、第九章程序设计基础第九章程序设计基础教学内容:这节课将介绍VFP程序设计的基础知识、方法、技巧以及VFP程序设计中常用的命令。在这章里,我们将利用VFP提供的程序设计命令和前几章所学的VFP命令,按照解决某一实际问题的要求,将所学的命令按一定的逻辑顺序组合起来,并以文件的形式将程序存储在磁盘中。当我们调用这些程序时,计算机就能按照我们提供的命令序列自动连续地执行每一条命令,高效率的完成预定任务。9.1 Visual FoxPro的工作方式 1)应用程序:为完成某项任务所需执行的命令序列,这些命令按照一定的结构有机地组合在一起,并以文件的形式存储在磁盘上,又称为命令文件。2)应用程序的组成: 前

2、言:注释语句 设置区:设置程序的运行环境,多由SET命令实现 程序体:所有命令序列,一般包括数据的输入输出、数据的处理以及结果输出等命令 整理部分:如关闭各种文件 程序的退出:设置有关命令关闭文件返回到命令窗口状态或操作系统状态9.1.1 命令方式 在“命令”窗口中,可以操作命令完成对数据库的操作、系统环境的设置和建立、运行命令文件。 9.1.2 菜单方式 通过系统菜单提供的菜单选项对数据库进行操作,对系统环境进行设置以及建立、运行命令文件。 9.1.3 程序文件方式 程序文件(简称程序)也叫命令文件。在Visual FoxPro环境下,利用程序文件方式进行数据库管理,是通过程序文件编辑工具,

3、将对数据库操作的命令和对系统环境进行设置的命令,集中在一个以(.PRG)为扩展名的程序文件中,然后再通过菜单方式或命令方式运行该程序文件。9.2 程序文件的建立与编辑 9.2.1 以命令方式建立、编辑程序文件 Modify Command 菜单:文件/新建/程序/新建文件说明:1.用于命令文件的建立与编辑,文件的扩展名系统默认.PRG。2.文件编辑时输完一行,回车。“ESC”放弃。“W”存盘。3.插入新命令行,N或回车。9.2.2 以菜单方式建立、编辑程序文件 9.2.3 利用设计工具建立程序代码 9.3 程序文件的调用 9.3.1 以命令方式调用程序文件 Do 命令方式:DO 应用程序名 W

4、ITH 说明:1)在程序运行过程中执行到下述命令时将会中断运行而退出,它们退出后返回的系统状态分别是:CANCEL:命令窗口状态。QUIT:操作系统状态。RETURN:调用点或命令窗口状态。2)在程序运行过程中,若按下ESC键可使运行强行中断。这时系统显示警告,并给用户三种选择:取消:中断程序的运行。此为缺省选项。继续执行:忽略ESC的中断作用,继续程序的执行。挂起:暂时中断程序的运行,返回命令窗口。当再次运行时可以从中断处继续运行。9.3.2 以菜单方式调用程序文件 程序文件创建、运行的操作步骤常用辅助命令1. 注释命令格式I:NOTE 格式II:*格式III:&说明:1)注释命令为非执行语

5、句 2)注释内容最后一个字符是分号(;),系统默认下一行内容仍为注释内容。 示例1:NOTE 打开学生表 USE 学生表.DBF 示例2: SET CONSOLE OFF &取消窗口的输出显示 2. 环境设置命令SET TALK ON/off 设置是否在主窗口的状态栏中 显示所有命令的执行结果。 SET CONSOLE ON/off 设置是否把输出信息在窗口上 显示。 SET PRINTER on/OFF 设置是否在打印机上输出信息。 SET SAFETY ON/off 设置在改写文件时,VFP是否 显示对话框以确认改写有效。 SET HEADING ON/off 设置在执行LIST、DISP

6、LAY等 命令时是否显示字段名。 SET STATUS ON/off 设置是否显示状态行。 SET DEFAULT TO盘符 指定默认的驱动器。 SET DEVICE TO SCREEN 把输出信息发送到VFP的窗口 /PRINTER 屏幕或打印机。3. 清除命令格式I:CLEAR说明:清除当前屏幕上的所有信息格式II:CLEAR ALL说明:关闭所有文件,清除所有内存变量格式III:CLEAR TYPEAHEAD说明:清除键盘缓冲区4. 关闭文件命令格式I:CLOSE ALL说明:关闭所有的数据库、表以及索引文件格式II:CLOSE 说明:文件类型 DATABASE 数据库文件、索引文件、格

7、式文件 INDEX 当前工作区的索引文件 FORMAT 当前工作区的格式文件 PROCEDURE 当前工作区的过程文件 ALTERNATE 文本输出文件5. 运行中断和结束命令格式I:QUIT说明:退出VFP,返回到操作系统状态格式II:CANCEL说明:结束本次程序的运行,返回到命令窗口状态格式III:RETURN TO MASTER说明:返回到调用点处。6. 文本显示命令格式:TEXT ENDTEXT说明:将文本内容原样输出7. 定位输出命令格式: SAY 说明:在指定的行、列处输出数据9.4 程序的基本结构 1顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。

8、Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。但是,绝大多数问题仅用顺序结构是无法解决的,还要用到分支结构、循环结构和过程结构。 1)程序设计的过程:分析问题、确定任务、划分模块、建立模型、组织数据、描述操作步骤、编写程序、上机调试、分析运行结果、写出程序说明书。2)流程图:就是运用一些特定的图形符号和必要的文字来描述解题步骤的图示。3)三种基本程序结构流程图:4)顺序结构程序:自始至终严格按照程序中语句的先后顺序逐条执行,是最基本、最普遍的结构形式。5)例1:给退休职工增加基本工资20元。ClearUse gzRepl all 基本工资 with 基本工资20 fo

9、r year(DATE()-year(出生日期)=60List示例2:编程,根据输入的半径值,计算出相应的圆的周长。 SET TALK OFF CLEAR INPUT “请输入圆的半径:” TO R L=2*3.1416*R INPUT “圆的周长是:”+STR(L,6,3) SET TALK ON2). 选择分支格式:IF ELSE ENDIF说明:(1)条件为真(T),执行语句序列1。(2)条件为假(F),执行语句序列2。例1:上题,男同学加10分,女同学加20分。Set talk offUse studAccept “输入加分同学姓名:” to xmLoca for 姓名xmIf 性别“

10、女”Repl 数学 with 数学20elseRepl 数学 with 数学10Endif例2:求解一元二次方程AX2+BX+C=0,系数A,B,C的值由用户通过键盘输入,当方程有实根时,屏幕显示出两根的值;当方程无实根时,屏幕显示出“方程无实根!” SET TALK OFF CLEAR INPUT “A=” TO A INPUT “B=” TO B INPUT “C=” TO C D=B*B-4*A*C IF D=0 X1=(-B+SQRT(D)/(2*A) X2=(-B-SQRT(D)/(2*A) ?“方程的两根是:”STR(X1,2)+SPACE(4)+STR(X2,2) ELSE ?”

11、方程无实根!” ENDIF SET TALK ON RETURN例3:在表文件“分数.DBF”中查找学号为99020203的学生成绩,若其成绩满60分则显示其学号、课程号和成绩;否则显示此人的学号、课程号并通知其补考。*L6.PRGSET TALK OFFUSE 分数.DBFCLEARLOCATE FOR 学号=“99020203” IF 成绩=60 ?“学号:”+学号 ?“课程号:”+课程号 ?“成绩:”+STR(成绩,6,2) ELSE ?“学号为”+学号+“的学生应参加补考的课程号为:”+课程号ENDIF USESET TALK ON3). 判断语句嵌套IF语句多重嵌套示意结构如下: I

12、F ELSE IF ELSE IF ELSE ENDIF3 ENDIF2 ENDIF1 注意: (1)IF、ELSE(可不选)、ENDIF一一 对应、互相匹配 (2)允许简单判断和选择判断语句自我嵌套或相互嵌套,但层次必须清楚,不得交叉 (3)最好采用缩格(锯齿形)的书写方式例1:键盘输入x,当x=0或x1或x=0 If x=1 y=1 else y=0 endifelse y=0endif?”y=”,y例2:存款利率:年限NX=1年或NX=3年或NX=5年,利率LL5%set talk offinput “请输入存款年限:” to nxif nx1 ll=0.02else if nx3ll=

13、0.03 elseif nx0 IF X10 Y=X*X+1 ELSE Y=3*X*X-2*X+1 ENDIFELSE Y=X*X+4*X-1ENDIF?”分段函数值为:”+STR(Y,10,2)SET TALK ONRETURN3循环结构 顺序、分支结构在程序执行时,每个语句只能执行一次,循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环语句是最好的选择。 4过程结构 在许多应用程序中,有一些程序段需要反复执行多次,这些程序段不是集中在一个固定的位置上重复执行,而是分散在程序的许多位置上重复执行。通常将这样的程序段与嵌入它的程序分开,

14、形成独立的程序序列,待使用时再调入程序中,以实现不同位置上的重复操作。这样做增强了程序的可读性及模块化。一般情况下,把这种具有独立的功能,并且可以被其他程序调用的程序序列称为过程,将调用过程的程序称为主程序。9.5 常用的交互输入语句 1. 键入表达式命令格式:INPUT TO 功能:暂停程序运行,等待键入表达式并将其值赋给指定的内存变量,待按回车键后,继续运行程序。说明:1)为可选项,其格式、功能与要求同ACCEPT命令。2)命令中的的类型决定于键入数据的类型,但不得为M型数据。3)若键入的是表达式,本命令将先计算出表达式的值,然后把其结果赋给。4)若键入字符型常量或逻辑型常量时应带有定界符

15、。5)在响应该命令时,若键入了无效表达式或只按下回车键,系统将会给出“句法错”的提示信息。示例:试运行下述交互输入命令。INPUT “请输入学生姓名:” TO XMINPUT “请输入其班级:” TO BJINPUT “该人性别为:” TO XB2. 键入字符串命令格式:ACCEPT TO 说明:(1)为屏幕提示信息。(2)键盘输入的字符串给内存变量赋值,回车结束。(3)键盘输入的字符不用定界符。示例:编写可以打开任一例:modi comm chaxun.prguse studaccept “请输入查询同学的姓名:” to xmloca for 姓名xmdisp usedo chaxun 结果

16、:请输入查询同学的姓名:李红 3. 输入单字符命令命令:WAIT“提示信息”TO说明:只能输入单字符给变量赋值,不须回车。全部可选项缺省,击任意键继续。例:前面程序,继续查询。use studaccept “请输入查询同学的姓名:” to xmloca for 姓名xmdisp wait “是否继续查询(Y/N)?” to y1if uppe(y1)=”N”quitendif9.6 分支结构 9.6.1 单向分支 单向分支语句,即根据条件表达式的值,决定某一操作是否执行。 If EndIf 说明:(1)条件为真(T),执行语句序列。(2)条件为假(F),执行ENDIF后面的语句。(3)IF.E

17、NDIF需成对出现。例:在“学生表”中查看“李尚清”的基本情况。 SET TALK OFF CLEAR USE 学生表 LOCATE FOR 姓名=”李尚清” IF FOUND() DISP ENDIF USE SET TALK ON例:输入一同学姓名,是女同学数学加10分。Use studAccept “输入加分同学姓名:” to xmLoca for 姓名xmIf 性别“女”Repl 数学 with 数学10Endif8.6.2 双向分支 双向分支语句,即根据条件表达式的值,选择两个操作中的一个来执行。 If Else EndIf例:上题,男同学加10分,女同学加20分。Set talk

18、offUse studAccept “输入加分同学姓名:” to xmLoca for 姓名xmIf 性别“女”Repl 数学 with 数学20elseRepl 数学 with 数学10Endif例:求解一元二次方程AX2+BX+C=0,系数A,B,C的值由用户通过键盘输入,当方程有实根时,屏幕显示出两根的值;当方程无实根时,屏幕显示出“方程无实根!” SET TALK OFF CLEAR INPUT “A=” TO A INPUT “B=” TO B INPUT “C=” TO C D=B*B-4*A*C IF D=0 X1=(-B+SQRT(D)/(2*A) X2=(-B-SQRT(D)

19、/(2*A) ?“方程的两根是:”STR(X1,2)+SPACE(4)+STR(X2,2) ELSE ?”方程无实根!” ENDIF SET TALK ON RETURN8.6.3 多向分支 Do Case Case Otherwise EndCase说明:1.DO CASE 与ENDCASE需成对出现。2.满足CASE条件,执行下面语句后,跳出ENDCASE.3.顺序判断,都不满足条件,执行OTHERWISE后的语句。例1:对利率重新编程。set talk offinput “请输入存款年限:” to nxdo case case nx1 ll=0.02 case nx3 ll=0.03 c

20、ase nx5 ll=0.04 otherwise ll=0.05endcase?”存款利率是:”,ll例2:用DO CASE语句修改上面计算分段函数的例子。SET TALK OFFCLEARINPUT “X=” TO XDO CASE CASE X0.AND.X10 Y=X*X+1ENDCASE?”分段函数值为:”+STR(Y,10,2)SET TALK ONRETURN8.6.4 使用分支语句应注意的几点 (1) IfEndIf和Do CaseEndCase必须配对使用,Do Case与第一个Case 之间不应有任何命令。 (2) 可以是各种表达式或函数的组合,其值必须是逻辑值。 (3)

21、可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。 (4) Do CaseEndCase命令,每次最多只能执行一个。在多个Case的值为真时,只执行第一个值为真的,然后执行 EndCase的后面的第一条命令。 8.7 循环结构 循环结构程序:按照一定条件重复进行某种特定操作的程序称为循环结构程序。8.7.1 “当”型循环控制语句 “当”型循环控制语句,即根据条件表达式的值决定循环体内语句的执行次数。 Do While EndDo 说明:结构组成:循环起始语句、循环体、循环终端语句注意:在循环体内要设置修改循环条件的语句,避免死循环。 死循环示例:X=1 S=0 DO WHILE X=

22、1 S=S+X X=X+1 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例2:求122232.+502set talk offs=0k=0do while k250 EXIT OTHERWISE Y=X+Y ?”Y=”,Y ENDCASE SET TALK ON ENDDO RETURN例5:编写程序能根据键盘输入的姓名,从学生表中查找该生的信息。 SET TALK OFF CLEAR ACCEPT

23、 “请输入姓名:” TO XM USE 学生表 DO WHILE .NOT.EOF() IF 姓名=XM DISP EXIT ELSE SKIP ENDIF ENDDO USE SET TALK ON8.9内存变量作用域作用域:内存变量的作用范围。1、全局变量1)全局变量:指在程序的任何嵌套中及在程序执行期间始终有效的变量。2)格式:PUBLIC 例:在过程调用中,运用全局变量传递数据。 主程序 过程 *MAIN_3.PRG *SUB_3.PRG SET TALK OFF PUBLIC B,C CLEAR B=2 PUBLIC A D=3 A=1 ?“在过程中:A,B,C,D=”,A,B,C,

24、D DO SUB_3 RETURN ?“返回主程序:A,B,C,D=”,A,B,C,DSET TALK ON 2、局部变量1)局部变量:未经PUBLIC命令定义且只在建立它的过程及其下级过程中有效的内存变量。2)局部变量的定义:隐含定义方式:过程中未经特殊说明的内存变量。显示定义方式:PRIVATE ALL LIKE/EXCEPT 例:在过程调用中局部变量的应用。 主程序 *MAIN_4.PRG SET TALK OFF A=1 B=2 ?“主程序中:A=”,A,“B=”,B DO SUB_4 ?“返主程序后:A=”,A,“B=”,B, “C=”,C,“D=”,D SET TALK ON 过程

25、 *SUB_4.PRG PRIVATE B PUBLIC C A=10 B=11 C=12 D=13 ?“在过程中:A=”,A,“B=”,B,“C=”,C,“D=”,D RETURN2、局部变量1)局部变量:未经PUBLIC命令定义且只在建立它的过程及其下级过程中有效的内存变量。2)局部变量的定义:隐含定义方式:过程中未经特殊说明的内存变量。显示定义方式:PRIVATE ALL LIKE/EXCEPT 例:在过程调用中局部变量的应用。 *主程序MAIN_4.PRG SET TALK OFF A=1 B=2 ?“主程序中:A=”,A,“B=”,B DO SUB_4 ?“返主程序后:A=”,A,“B=”,B,“C=”,C,“D=”,D SET TALK ON *过程SUB_4.PRG PRIVATE B PUBLIC C A=10 B=11 C=12 D=13 ?“在过程中:A=”,A,“B=”,B,“C=”,C,“D=”,D RETURN过程的带参调用1、带参过程调用命令 格式:DO WITH 说明:参数表中的参数也称实参,可以为常量、已赋值的变量或数值表达式。2、接收参数命令 格式:PARAMETERS 说明:参数表中的参数也称形参 形参与实参的数量应相等、类型要一致例1:利用带参

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1