程序与程序文件程序:是指能够完成一定任务的命令的有序集合程序三种基本结构:顺序,选择,重复(循环)建立程序的三种方法:(1)在项目管理器中(2)菜单方式(3)使用命令建立程序MODIFYCOMMAND文件名(新建程序文件)运行程序:DO文件名(可以不跟后缀名)修改程序文件:MODIFYCOMMAND文件名保存程序:程序输入、编辑完毕,单击【文件】|【保存】菜单项按Ctrl+W复合键程序文件的默认扩展名是.PRG。执行程序:①单击【程序】|【运行】菜单项,打开“运行”对话框;②从文件列表框中选择要运行的程序文件,并单击“运行”命令按钮,启动运行该程序文件【格式】DO文件名【功能】执行指定盘符、路径下的程序文件EG:1.在当前目录中建立名为PROG1.prg的程序文件,其功能是:找出成绩管理数据库中的姓张的学生的学号,姓名,性别,出生日期,找到以后关闭数据库?程序代码:例题2.40编写程序,计算圆的周长和面积?说明:程序中经常插入注释语句·提高程序的可读性·。注释语句不是代码,不会影响程序的功能(1)*****(注释内容)或note(注释内容)(2)&&(注释语句)只能放在命令行的尾部执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕,或者执行到以下命令:(1)CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口(2)DO:转去执行另一个程序(3)RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口(4)QUIT:退出VF,返回到操作系统2.项目管理器中,编写程序prog2.prg,其功能是:查询“外语”课程的考试成绩在85分以下(含85分)的学生的全部信息,并将结果按学号升序存入noex表文件中?程序代码:3.用命令建立程序PROG3.PRG,假定学号的前两位为入学年份,第三、四位为专业代码。统计专业代码为11的学生选修的课程名为外语的学生的平均成绩同时存储到数组M1中并且显示出来?程序代码:2.4.3简单的输入输出命令【格式】INPUT[提示信息]TO内存变量【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量、可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给内存变量例题:计算长方形的面积和周长?例题:编写程序CX3·查找指定日期以后的学生的信息?2.ACCEPT命令【格式】ACCEPT[提示信息]TO内存变量【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。该命令只接受字符型数据,输入的字符串不需要加定界符例题:编写程序·从键盘输入某数据库的文件名,要求打开该数据库并显示其内容。程序文件名为test4.PRG。3.WAIT命令功能是:暂停程序的运行,并且显示提示信息,直到按任意键或者超时·继续往下执行程序代码格式:WAIT“提示信息”WINDOWSTIMEOUT数值表达式2.5程序的基本结构1.顺序结构:顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。2.选择结构:选择结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3.循环结构:循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。2.5.1选择结构条件语句(IF---ENDIF)和分支语句(DOCASE----ENDCASE)条件分支:根据条件选择操作是否执行。语句格式:IF〈条件表达式〉〈语句序列1)ENDIF语句功能:条件式达式真语句序列假ENDIF之后语句该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时执行(命令行序列)否则,执行ENDIF后面的第一条命令。2.一般形式的条件语句IF〈条件表达式〉〈命令行序列1〉ELSE〈命令行序列2〉ENDIF例题2.41编写程序。其功能是:先从键盘接受两个X和Y,然后判断X能否被3整除。如果能被3整除,那么Y的值增加X;否则Y的值不变真条件式假语句序列2语句序列1ENDIF后面语句例题:2.42编写程序,功能是对输入的成绩进行判断(成绩的等级为优秀、良好、通过、补考)练习:请判断某地至北京的邮路里程为1043KM,通过邮政局向北京城区寄交“特快专递”邮件,应在24小时内到达,记费标准为每克0.5元,但超过100克后,超出数每克0.2元,试编写程序计算邮费。例题:请输入你要查找的学生学号,查找后显示该生的信息,否则显示查无此人?3.多分支语句根据多个条件表达式的值,选择执行多个操作中的一个对应执行。语句格式:DOCASECASE〈条件1〉命令行序列1〉CASE〈条件2〉命令行序列2〉……CASE〈条件N〉N〉OTHERWISE〈命令行序列N+1〉ENDCASE例题:2.42编写程序,功能是对输入的成绩进行判断(成绩的等级为优秀、通过、不合格)2.5.2循环结构也称为重复结构,是指程序在执行的过程中,其中的某段代码被重复的执行很多次。被重复执行的代码段称之为循环体。语句格式:DOWHILE条件表达式语句序列ENDDO例题:计算1累加到100的和?ENDDO后面的语句条件表达式式真循环体假练习:编程计算1*2*3*4*5的积?使用DOWHILE实现对数据库表中各记录进行操作的一般模式:USE<库表文件>DOWHILE.NOT.EOF()处理一条记录SKIPENDDO1.编写程序,把选修了Y001门课程的学生的成绩加5分?程序代码:1.如下表所示,计算每一个学生的总学分并存入学分字段。学分的计算方法是:物理60分以上(包括60分)2学分,否则0分;高数60分以上(包括60分)3学分,否则0分;英语60分以上(包括60分)4学分,否则0分,编写程序实现学生学分的统计。2.如下表所示,计算每一个学生的总成绩。总成绩的计算方法是:考试成绩+加分,加分的规则是:如果该生是少数民族(相应的字段为.T.)加5分,优秀班干加10分,三好生加20分,加分不累计,取最高的,如该生既是少数民族又是三好生,加分为20分。如果都不是,总成绩=考试成绩,编写程序实现学生总分统计。循环结构2:语句格式:DOWHILE条件表达式语句序列1[LOOP]语句序列2[EXIT]语句序列3ENDDO语句功能:LOOP语句:强行返回到循环开始语句EXIT语句:强行跳出循环,接着执行ENDDO后的语句Continue返回到循环的开始(dowhile之前)例题:编写程序·依次显示出来1987年出生的学生信息?循环结构3:语句格式:FOR循环变量=初值TO终值[step步长值]循环体[LOOP]或[EXIT]ENDFOR/NEXT语句功能:缺省STEP语句,默认步长为1例题:编写程序,1累加到5的和?程序代码:2.从找出100-999之间的“水仙花数”。所谓的“水仙花数”是指一个三个数,其中各位数字的立方和等于该数本身(如:371=27+343+1)程序代码:指针”型循环控制语句:语句格式:SCAN[〈范围〉][FOR〈条件表达式1〉[WHILE〈条件表达式2〉]]〈命令行序列〉ENDSCAN“指针”型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。1.计算专业代码(学号的第3,4位)为08的男生人数和女生人数?程序代码: