1、程序与程序文件程序:是指能够完成一定任务的命令的有序集合程序三种基本结构:顺序,选择,重复(循环)建立程序的三种方法:(1) 在项目管理器中(2) 菜单方式(3) 使用命令建立程序MODIFY COMMAND 文件名 (新建程序文件)运行程序:DO 文件名 (可以不跟后缀名)修改程序文件:MODIFY COMMAND 文件名保存程序:程序输入、编辑完毕,单击【文件】|【保存】菜单项按 Ctrl+W 复合键程序文件的默认扩展名是.PRG。执行程序: 单击【程序】|【运行】菜单项,打开“运行”对话框; 从文件列表框中选择要运行的程序文件,并单击“运行”命令按钮,启动运行该程序文件 【格式】DO 【
2、功能】执行指定 、 下的程序文件例题:编写程序为 WH1,其功能是计算出圆的面积和周长?说明:该程序的结构为顺序结构执行。有关此 Visual FoxPro 程序的几点说明注释语句:【格式 1】NOTE 【格式 2】* 【格式 3】& 【功能】增强程序文件的易读性或放弃中语句的执行执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕,或者执行到以下命令:例题 1:编写程序为 WH2,其功能是查询姓张的学生的姓名和性别?2.4.3 简单的输入/输出命令INPUT 命令【格式】INPUT TO 【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量 、可以输入字符型、数值型、逻
3、辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给例题 1:编写程序 WH3 计算长方形的面积和周长?例题 2:编写程序为 WH4,功能是找出指定出生年月的学生的信息?ACCEPT 命令:【格式】ACCEPT TO 【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。该命令只接受字符型数据,输入的字符串不需要加定界符例题 1 查找编程从键盘输入某数据库的文件名,要求打开该数据库并显示其内容。程序文件名为WH5.PRG。 说明:WAIT 暂停程序的运行.TIMEOUT 用来设定等待时间( 秒数).一旦超
4、时就不再等待 ,自动往下运行.程序的基本结构Visual FoxPro 系统提供的命令丰富,且功能强大,把这些命令和程序设计语句有效地组织在一起,就形成了实现某一特定功能的程序。Visual FoxPro 系统的程序有两个特点:一是程序控制流模式,由顺序、选择、循环三种基本结构构成。二是面向对象可视化的结构程序模块,在每个模块的内部也是由程序控制流组成。常见的控制结构如下: 1顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro 系统中的大多数命令都可以作为顺序结构中的语句。2选择结构 选择结构是在程序执行时,根据不同的条件,选择执行不同的程序
5、语句,用来解决有选择、有转移的诸多问题。 3循环结构循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。2.5.1 选择结构条件分支: 根据条件选择操作是否执行。语句格式:IF条件表达式语句序列 1)ENDIF语句功能:该语句首先计算条件表达式的值,当条件表达式的值为真时执行(命令行序列)否则,执行 ENDIF 后面的第一条命令。IF条件表达式命令行序列 1ELSE命令行序列 2ENDIF语句功能:该语句首先计算条件表达式的值当条件表达式的值为真时,执行命令行序列1中的命令;否则执行( 命令行序列 2)中的命令;执行完( 命
6、令行序列 1)或(命令行序列 2)后都将执行ENDIF 后面的第一条命令。例题:编写程序,其功能是判断 X 能否被 3 整除!.例题 2.42:从键盘输入学生的分数,并判断学生成绩的等级是多少(优秀、通过、补考)方法一:方法二:例题 3:编写程序实现查询学生的基本信息,从键盘上输入学号,查找学生的信息,找到了就显示该生的信息的工作去,否则就显示查无此人!分支语句:根据多个条件表达式的值,选择执行多个操作中的一个对应执行 。语句格式:DO CASECASE条件 1ENDDO例题:编写程序实现上课时间五分钟内讲课?一个循环结构一般应具备如下的条件:(1)循环的初始条件:一般为给循环控制变量赋初值;
7、(2)循环头:循环语句的起始,设置、判断循环条件;(3)循环尾:循环语句的结尾;(4)循环体:位于循环头和循环尾之间、循环控制重复执行的语句序列 例题:计算 1+.+5 的和?使用 DO WHILE 实现对数据库表中各记录进行操作的一般模式:USE 库表文件DO WHILE .NOT. EOF ()SKIPENDDO例题:编写程序实现对学生表中男生的补贴增加 50 元钱?例题 1:如下表所示,计算每一个学生的总学分并存入学分字段。学分的计算方法是:物理 60 分以上(包括 60 分)2 学分,否则0 分;高数 60 分以上(包括 60 分)3 学分,否则 0 分;英语 60分以上(包括 60
8、分)4 学分,否则 0 分,编写程序实现学生学分的统计。例题 2:如下表所示,计算每一个学生的总成绩。总成绩的计算方法是:考试成绩+加分,加分的规则是:如果该生是少数民族(相应的字段为.T.)加 5 分,优秀班干加 10 分,三好生加 20分,加分不累计,取最高的,如该生既是少数民族又是三好生,加分为 20 分。如果都不是,总成绩=考试成绩,编写程序实现学生总分统计。 循环结构 2:语句格式:DO WHILE LOOP EXIT ENDDO 语句功能:LOOP 语句:强行返回到循环开始语句(DO WHILE)EXIT 语句:强行跳出循环,接着执行 ENDDO 后的语句 CONTINUE 语句:
9、强行返回到循环的开始语句(DO WHILE 之前一个)例题:逐条输出 1987 年出生的学生记录。循环结构 3:语句格式:FOR = TO step 步长值循环体LOOP或EXITENDFOR/NEXT语句功能:缺省 STEP 语句,默认步长为 1例题:计算 1+2+3+4+5 的和?例题:从找出 100-999 之间的“水仙花数 ”。所谓的“水仙花数”是指一个三个数,其中各位数字的立方和等于该数本身(如:371=27+343+1) “指针”型循环控制语句:语句格式:SCAN 范围 FOR 条件表达式 1 WHILE 条件表达式 2 命令行序列ENDSCAN例题:统计专业代码(学号的第 3、4 位)为 03 的男生和女生人数