资源预览内容
第1页 / 共50页
第2页 / 共50页
第3页 / 共50页
第4页 / 共50页
第5页 / 共50页
第6页 / 共50页
第7页 / 共50页
第8页 / 共50页
第9页 / 共50页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
【学习目标】 理解程序的概念和结构化编程思想 掌握程序建立、修改和运行方法 掌握简单的输入输出命令 掌握程序设计的三种基本结构 掌握过程和函数的创建与使用,第8章 Visual FoxPro程序设计基础,引入,Visual FoxPro绝大多数操作都可以通过菜单和对话框来完成,或在命令窗口输入命令来完成,这种方式属于单命令方式。当需要重复执行某些操作时,还需重新输入命令,因此使用不太方便。此外,单命令方式对运用大量命令处理复杂的数据库管理和操作时显得无能为力。为此,Visual FoxPro提供了批命令工作方式,即程序方式。,所谓程序方式是指将多条命令按一定逻辑结构组织在一个程序文件中。执行该程序文件时,程序文件中的命令被有序地执行,完成一定的任务。,8.1 程序的建立、修改和运行,Visual FoxPro具有大多数编程语言(如C/C+等)相似的基本特征,它提供了丰富的命令和系统函数,同时允许自定义函数和过程。Visual FoxPro遵循结构化编程思想,把一个完整的应用程序划分成若干功能相对独立的模块,各功能模块上下层之间可以相互调用,即把应用程序模块化,采用顺序、分支、循环三种基本的程序结构来设计和编写程序。 Visual FoxPro本身提供了功能强大的程序编辑器,用来编辑源程序。,8.1.1 程序的建立,程序文件是Visual FoxPro最重要的文件类型之一。文件内容主要由若干命令组成,故又称为命令文件,程序文件的扩展名为PRG。 程序的建立是指如何将已经编写好的程序形成相应的程序文件,可以使用任何文本编辑器编辑程序,当然,Visual FoxPro本身提供了功能强大的程序编辑器,用来编辑源程序。,1菜单方式,方法1:使用项目管理器代码选项卡中的相应按钮可以新建、修改、运行程序文件。 方法2:选择系统菜单“文件”中的“新建”命令,在出现的“新建”对话框中,选择“程序”并单击“新建文件”按钮。,2命令方式,格式1:MODIFY COMMAND |? 格式2:MODIFY FILE |? 功能:启动Visual FoxPro提供的程序编辑器来建立程序文件,若程序文件已存在,则在程序编辑器窗口中打开该文件供编辑修改。若只有“?”号而不写文件名,系统将打开一个对话框,用户可从框中列出的文件名中选择需要编辑的文件。,8.1.2 程序的修改,使用文件编辑命令MODIFY COMMAND或MODIFY FILE 对已经存在的命令文件进行编辑。 还可以使用菜单操作,先使用“文件”菜单“打开”命令,选择需要修改的文件。,8.1.3 程序的运行,1菜单方式 1)从“程序”菜单中选择“运行”命令,打开“运行”对话框; 2)从文件列表框中选择要运行的程序文件,并单击“运行”命令按钮。 2命令方式 DO WITH,8.2 顺序结构程序设计,顺序结构是程序设计中最简单、最基本的程序结构。在该结构中,命令按照在程序中出现的先后顺序依次逐条执行,它是构成程序框架的基础。 本节介绍: 基本语句(注释语句、赋值语句、程序暂停语句、程序结束语句) 非格式化输入输出语句 格式化输入输出语句,8.2.1 基本语句,1注释语句 (1) 行首注释 NOTE 或 * (2) 行尾注释 如果要在命令语句的尾部加注释信息,应该使用行尾注释语句。 命令格式: ,2赋值语句,命令格式: STORE TO 功能:为变量或属性名赋值。也就是将表达式的值存储到内存变量或属性中。,3程序暂停语句,命令格式: WAIT TO WINDOW AT TIMEOUT n 功能: 暂停程序的执行,处于等待状态。可以显示提示信息,按任意键或单击鼠标后或等待一定时间后等待状态结束。同时,还可以从键盘上输入数据,实现交互式输入。,说明:,(1) :指定要显示的提示信息。省略时,显示默认信息“按任意键继续”。 (2) TO :将按下的键以字符形式保存到内存变量中。只接受一个字符。 (3) WINDOW AT:指定提示信息窗口在Visual FoxPro主窗口中的位置。若省略AT则提示信息显示在右上角。 (4) n:等待n秒,在此期间若未按任意键或单击鼠标,n秒后自动结束等待状态。,4. 程序结束语句,语句1:RETURN 功能:使程序执行结束,并返回到调用它的上级程序继续执行,若无上级程序则返回到Visual FoxPro主窗口。指定返回给调用程序的表达式。如果省略返回表达式,则自动将“真”(.T.) 返回给调用程序。 语句2:CANCEL 功能:终止程序运行,清除程序的私有变量,并返回到Visual FoxPro主窗口。,8.2.2 非格式化输入输出语句,1非格式化输入语句 (1)INPUT命令 命令格式: INPUT 提示信息 TO 内存变量 功能:该命令在执行时显示指定的提示信息,等待用户输入,并通过按回车键来终止数据输入。键盘输入的数据存储在内存变量中。,(2)ACCEPT命令,命令格式:ACCEPT 提示信息 TO 内存变量 功能:该命令在执行时显示指定的提示信息,等待用户输入,并通过按回车键来终止数据输入。键盘输入的数据存储在内存变量中。 说明:该命令只能接收字符型数据输入,可以直接按回车键,相当于输入空串。,【例8-3】设有学生档案表students,编写一个按学号查询学生信息的程序。,students的结构见第3章相关内容。 SET TALK OFF USE students CLEAR ACCEPT 请输入学号: TO XH LOCATE FOR 学号=XH DISPLAY USE SET TALK ON RETURN,2非格式化输出语句,(1)表达式输出命令?和? 命令格式: ?|? 功能:计算表达式的值,并把计算结果传送到 Visual FoxPro 主窗口。 说明: ?从光标下一行开始输出结果; ?从当前光标位置开始输出结果。,(2)文本输出命令,命令格式: TEXT 文本信息 ENDTEXT 功能:把TEXT与ENDTEXT之间的文本信息内容显示出来。,【例8-4】练习使用TEXT语句输出函数的值。,CLEAR SET TEXTMERGE ON TEXT Visual FoxPro 的系列号: Visual FoxPro 启动目录或文件夹: 当前目录或文件夹: 正在执行的程序文件名: ENDTEXT,8.2.3 格式化输入输出语句,格式化输入输出语句规定了输入输出数据显示的位置和显示的格式。 命令格式: 行,列 SAY 表达式 GET 变量名 DEFAULT 功能: 在指定的行列位置输出SAY子句表达式的值与GET变量的值,并可修改GET子句的变量值。,CLEAR X=SPACE(2) 2, 2 SAY 请输入起点: GET X READ FOR I=1 TO 100 CLEAR VAL(X),VAL(X)+I SAY WAIT TIME 0.1 ENDFOR RETURN,【例8-5】下面的程序利用SAY语句的定位输出功能,实现动画效果,8.3 选择结构程序设计,顺序结构的程序特点是在执行程序时,所有的命令都会执行到。但在实际应用中,有些命令的执行是取决于某些条件的成立与否。这就要借助于条件判断语句或情况语句。由条件语句构成的程序称为选择结构或分支结构。,8.3.1 IF语句,1语句格式 格式1: IF 条件表达 语句序列 ENDIF,格式2: IF 条件表达式 语句序列1 ELSE 语句序列2 ENDIF,【例8-7】输入学生学号,查询学生信息。,SET TALK OFF USE students CLEAR ACCEPT 请输入学生学号: TO XH LOCATE FOR 学号=XH IF FOUND() &若找到,则FOUND()返回真值 DISPLAY ELSE ? 学号:+XH+,不存在! &提示信息没有找到 WAIT WINDOWS &按任意键程序继续 ENDIF USE SET TALK ON RETURN,8.3.2 DO CASE语句,1语句格式 DO CASE CASE条件1 语句序列1 CASE条件2 语句序列2 CASE条件n 语句序列n OTHERWISE 语句序列n十l ENDCASE,2功能,系统依次查看每一个CASE条件,只要某一个条件成立,就执行该CASE条件下的语句序列,之后跳过后面的CASE语句,去执行ENDCASE后面的语句,退出DO CASE结构。若所有的条件均不成立,在有选择项OTHERWISE的情况下,执行它后面的语句序列,执行后再接着执行ENDCASE后面的语句;在没有选择项OTHERWISE的情况下,直接执行ENDCASE后面的语句。,【例8-8】输入一个学生的成绩,判断是哪一个成绩段。,SET TALK OFF CLEAR INPUT 请输入成绩: TO ChengJi DO CASE CASE ChengJi100, 输入有误!,优异) ENDCASE SET TALK ON RETURN,8.4 循环结构程序设计,在Visual FoxPro中,循环用于重复执行某一段有特定功能的程序。 Visual FoxPro提供了三种循环控制结构语句: DO WHILEENDDO FORENDFOR SCANENDSCAN,8.4.1 DO WHILE语句,1语句格式 DO WHILE条件表达式 语句序列1 LOOP 语句序列2 EXIT 语句序列3 ENDDO,2功能,首先检查条件表达式的值,若为真就执行循环体中的语句,执行到ENDDO时,循环返回DO WHILE,再次检查条件表达式的值,值为“真”则继续执行循环体语句;值为“假”则跳出DO WHILE结构,并执行ENDDO下面的语句。如果第一次检查条件表达式的值为“假”,则循环体一次都不执行。,【例8-9】创建数据表,输入记录,并显示不及格学生记录,并统计不及格人数。,CREATE TABLE student (学号 C(8),姓名 C(6),英语 N(3),计算机 N(3) i=1 &循环计次 DO WHILE i= 10 & 添加 10 条记录, APPEND BLANK STORE SPACE(8) to xh STORE SPACE(6) to xm STORE 0 TO yy, jsj CLEAR 3,10 say “学号:“ GET xh 4,10 say “姓名:” GET xm 5,10 say “英语:” GET yy 6,10 say “计算机:” GET jsj READ REPLACE 学号 WITH xh REPLACE 英语 WITH yy REPLACE 计算机 jsj i=i+1 &每完成一次循环,循环次数加1 ENDDO,CLEAR fail=0 &统计不及格人数 GO TOP DO WHILE .NOT EOF() &查询至表尾退出循环语句 IF 英语 60 OR 计算机 60 fail=fail+1 &统计不及格人数 DISPLAY FIELDS 学号,姓名,英语,计算机 &显示不及格记录 ENDIF SKIP ENDDO & 结束循环 ?不及格人数为:+STR(fail,2) &显示不及格人数 USE RETURN,8.4.2 FOR语句,1. 语句格式 FOR变量初值TO终值STEP步长 语句序列1 LOOP 语句序列2 EXIT 语句序列3 ENDFOR,2. 功能,首先将初值赋给循环变量,然后判断循环条件是否成立,若成立则执行循环体,然后循环变量增加一个步长,再次判断循环条件是否成立,重复以上的过程。若循环条件不成立,则退出循环结构,执行ENDFOR后面的语句。,【例8-10】打印九九算术表。,CLEAR FOR i=1 TO 9 ? FOR j=1 TO i ?SPACE(2)+STR(i,1)+X+STR(j,1)+=+STR(i*j,2
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号