Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础

上传人:E**** 文档编号:89180978 上传时间:2019-05-20 格式:PPT 页数:62 大小:429KB
返回 下载 相关 举报
Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础_第1页
第1页 / 共62页
Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础_第2页
第2页 / 共62页
Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础_第3页
第3页 / 共62页
Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础_第4页
第4页 / 共62页
Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础》由会员分享,可在线阅读,更多相关《Visual FoxPro 实用教程 教学课件 ppt 作者 邹广慧 第6章 程序设计基础(62页珍藏版)》请在金锄头文库上搜索。

1、1,Visual FoxPro 实用教程,邹广慧 主编 机械工业出版社,2,第6章 程序设计基础,在VFP中,通过菜单或命令窗口可以进行各种简单操作,当任务比较复杂时就需要编写程序了。 VFP把结构化程序设计和面向对象程序设计有机地结合起来,能够实现满足用户需求的数据库应用系统。,3,程序与程序文件 结构化程序设计 多模块程序设计 面向对象程序设计 实验、习题,第6章 程序设计基础,4,6.1 程序与程序文件,程序以文件的形式保存,称为命令文件或程序文件,扩展名是.PRG。 程序文件的建立与修改 程序的运行 程序设计中的常用命令,返回,5,6.1.1 程序文件的建立与修改,1. 项目管理器方式

2、 新建程序:项目管理器“代码” “程序” “新建”,打开程序编辑器窗口 修改程序:项目管理器“代码” 选择要修改的程序“修改”,打开程序编辑器窗口 2. 菜单方式 新建程序:“文件”“新建”,或工具栏上的“新建”按钮,打开程序编辑器窗口 。 3. 命令方式 在命令窗口中:MODIFY COMMAND 文件名,返回,6,6.1.2 程序的运行,1.在项目管理器中运行 如果程序包含在项目中,则可以在项目管理器中选择该程序,单击“运行”按钮。 2. 使用菜单 选择“程序”“运行”,弹出“运行”对话框,在该对话框中选择要运行的程序,单击“运行”按钮 。 3. 命令方式 DO 程序文件名,返回,7,6.

3、1.3 程序设计中的常用命令,注释语句 ACCEPT命令 INPUT命令 WAIT命令,返回,8,1. 注释语句,NOTE/* 格式:NOTE|* 注释内容 功能:在程序中添加注释行。NOTE或*必须出现在行首,将整个行作为注释。 & 格式:& 注释内容 功能:在命令语句的尾部加注释信息。,返回,9,2. ACCEPT命令,格式:ACCEPT 提示信息 TO 内存变量名 功能:暂停程序的运行,在屏幕上显示提示信息,等待用户从键盘上输入字符数据,并赋给内存变量。 说明: ACCEPT只能接收字符型数据,输入时不加定界符; “提示信息”用来提示用户输入什么数据; 如果内存变量是数组名,则数组中的所

4、有元素均被赋为相同的字符串。,10,2. ACCEPT命令,例6-1 从键盘上输入学生的学号,在“学生”表中找到该学生,将其信息显示在屏幕上。 CLEAR USE 学生 ACCEPT “输入学号:“ TO xh & 输入学号时,不加定界符 LOCATE FOR 学号=xh DISP USE,返回,11,3. INPUT命令,格式:INPUT 提示信息 TO 内存变量名 功能:暂停程序的运行,在屏幕上显示提示信息,等待用户从键盘上输入数据,并赋给内存变量。 说明: INPUT可以接收字符型、数值型、日期型和逻辑型数据。 内存变量的类型取决于输入数据的类型。 输入字符型数据时必须加定界符。,返回,

5、12,4. WAIT命令,格式:WAIT 提示信息 TO 内存变量名 WINDOW AT 行,列 NOWAIT TIMEOUT 秒数 功能:暂停程序的运行,等待用户按任意键或单击鼠标,然后继续向下运行。,13,4. WAIT命令,如果省略“提示信息”,则执行该命令时,系统提示“按任意键继续”。 TO 内存变量名:将用户按的键值保存到内存变量中,如果用户按下的是ENTER等非打印字符或鼠标,则保存到变量中的是空字符。 WINDOW选项:使提示信息出现在提示窗口中,提示窗口的位置由AT选项指定。若无AT选项,则提示窗口在屏幕的右上角。 NOWAIT选项:显示提示信息后,不等待用户按键,继续运行程序

6、。 TIMEOUT选项:设置等待用户输入的时间。超时后,即使用户没按键,系统也继续向下运行程序。,14,4. WAIT命令,例6-2 打开“学生”表,先显示入学成绩大于600分的学生,暂停程序运行,按任意键后,再显示入学成绩小于550分的学生。 CLEAR USE 学生 ? “入学成绩大于600分的学生:” LIST FOR 入学成绩 600 WAIT ? “入学成绩小于550分的学生:” LIST FOR 入学成绩 550 USE,返回,15,6.2 结构化程序设计,任何复杂程序都是由三种基本结构组成的: 顺序结构 选择结构 循环结构,返回,16,6.2.1 顺序结构,按照语句的排列顺序,从

7、第一条语句开始依次执行,直到最后一条语句为止。,返回,17,6.2.2 选择结构,IFENDIF语句 DO CASEENDCASE语句 这些命令只能用在程序中,不能单独在命令窗口中执行,因此称其为语句。,返回,18,1. IFENDIF语句,格式:IF 条件表达式 语句序列1 ELSE 语句序列2 ENDIF 功能:如果条件表达式的值为.T.,则执行语句序列1,否则执行语句序列2。IF和ENDIF必须成对出现。,19,1. IFENDIF语句,a) IFELSEENDIF流程图 b) IFENDIF流程图,20,1. IFENDIF语句,例6-3 从键盘上输入学生的学号,在“学生”表中查找该学

8、生,如果找到则显示该记录,如果没找到则显示“该学生信息不存在”。 CLEAR USE 学生 ACCEPT “输入学号:“ TO xh & 输入学号时,不加定界符 LOCATE FOR 学号=xh IF FOUND() DISP ELSE ? “该学生信息不存在” ENDIF USE,返回,21,2. DO CASEENDCASE语句,格式:DO CASE CASE 条件表达式1 语句序列1 CASE 条件表达式2 语句序列2 . CASE 条件表达式N 语句序列N OTHERWISE 语句序列N+1 ENDCASE,22,2. DO CASEENDCASE语句,23,2. DO CASEEND

9、CASE语句,例6-4 从键盘输入一个考试成绩,如果成绩大于等于90,则显示“优”;如果成绩在8089之间,则显示“良”;在7079之间,显示“中”;在6069之间,显示“及格”;小于60则显示“不及格”。 CLEAR INPUT “输入一个考试成绩(0100):“ to x DO CASE CASE x=90.and.x=80.and.x=70.and.x=60.and.x=69 ? “及格“ CASE x60 ? “不及格“ OTHERWISE ? “输入有误“ ENDCASE,返回,24,6.2.3 循环结构,对于有规律的重复操作问题,可以使用循环结构,重复地执行一行或多行代码。 DO

10、WHILEENDDO语句 FORENDFOR语句 FOR EACHENDFOR语句 SCANENDSCAN语句 LOOP语句和EXIT语句 多重循环,返回,25,1. DO WHILEENDDO语句,格式:DO WHILE 条件表达式 语句序列 ENDDO,DO WHILEENDDO流程图,返回,26,1. DO WHILEENDDO语句,例6-5、查找“2009-1”学期没有任课的教师名单。 分析: “教师任课”表中只有教师任课的信息,没有教师不任课的记录。 可以用“教师”表中的教师编号,到“教师任课”表中查找该教师在“2009-1”学期的任课记录。若没找到,则该教师在“2009-1”学期没

11、有任课,显示该教师的编号和姓名。( “管理员”除外),27,1. DO WHILEENDDO语句,CLEAR USE 教师任课 IN 2 USE 教师 IN 1 DO WHILE .NOT.EOF() MBH=教师编号 IF MBH10000 & 10000是管理员的编号 SELE 教师任课 LOCATE FOR 教师编号=MBH .AND. 学期=2009-1 IF .NOT.FOUND() ? 教师.教师编号,教师.姓名 ENDIF SELE 教师 ENDIF SKIP ENDDO CLOSE TABLES,返回,28,2. FORENDFOR语句,格式:FOR 循环变量=初值 TO 终值

12、 STEP 步长 语句序列 ENDFOR 功能:根据循环变量的初值、终值和步长决定循环的次数,当循环变量的值超过终值时,结束循环。,29,2. FORENDFOR语句,30,2. FORENDFOR语句,例6-6 用FORENDFOR循环求1100的累加和。 CLEAR sum = 0 FOR i=1 TO 100 sum = sum+i ENDFOR ? “1+2+3+100=“,sum,返回,31,3. FOR EACHENDFOR语句,格式:FOR EACH 变量 IN 数组或集合 语句序列 ENDFOR 功能:每次从数组或集合中取出一个元素,赋给变量,然后执行语句序列,直到数组或集合中

13、的所有元素都被取出为止。,32,3. FOR EACHENDFOR语句,例6-7、显示数组中的所有数据 。 CLEAR DIMENSION a10 FOR i=1 TO 10 ai = i*10+i ENDFOR FOR EACH b IN a ? b ENDFOR,返回,33,4. SCANENDSCAN语句,格式:SCAN 范围 FOR 条件 语句序列 ENDSCAN 功能:扫描表中指定范围的记录,对每一条满足条件的记录,执行语句序列。,34,4. SCANENDSCAN语句,例6-8 使用SCANENDSCAN查找“2009-1”学期没有任课的教师名单。 CLEAR USE 教师任课 I

14、N 2 USE 教师 IN 1 SCAN FOR 教师编号10000 & 10000是管理员的编号 MBH=教师编号 SELE 教师任课 LOCATE FOR 教师编号=MBH .AND. 学期=2009-1 IF .NOT.FOUND() ? 教师.教师编号,教师.姓名 ENDIF ENDSCAN CLOSE TABLES,返回,35,5. LOOP语句和EXIT语句,LOOP语句:当执行到LOOP语句时,它后面的语句序列将不再执行,直接返回循环的开始处,进行循环条件判断,决定进入下次循环或者结束循环。 EXIT语句:当执行到EXIT语句时,其后面的语句序列不再执行,直接退出循环。,36,5

15、. LOOP语句和EXIT语句,例6-9、按学号查询学生信息。 CLEAR USE 学生 DO WHILE .T. ACCEPT “输入学号:“ TO xh & 输入学号时,不加定界符 LOCATE FOR 学号=xh IF FOUND() DISP ELSE ? “该学生信息不存在“ ENDIF WAIT “是否继续查询(Y/N)“ TO YN IF UPPER(YN)=Y LOOP ELSE EXIT ENDIF ENDDO USE,返回,37,6. 多重循环,在循环体的语句序列中还可以包含循环语句,称之为多重循环,也称为循环的嵌套。 例6-10、在屏幕上显示九九乘法表 CLEAR ? “

16、 九 九 乘 法 表“ ? FOR a=1 TO 9 FOR b=1 TO a p=a*b ? str(b,1)+“*“+str(a,1)+“=“+str(p,2)+“ “ ENDFOR ? ENDFOR,返回,38,6.3 多模块程序设计,数据库应用程序通常是一个复杂的软件系统。 结构化程序设计方法采用自顶向下,逐步细化的思想,将系统的总体结构分解为相对独立的子模块,每个子模块又可以继续分解为下一级子模块。 例如,成绩管理系统,可以分为数据维护、信息查询、报表预览等子系统,每个子系统又可以继续向下分解。,39,6.3 多模块程序设计,过程 函数 参数的传递 内存变量的作用域,返回,40,6.3.1 过程,1.过程的定义 格式:PROCEDURE 过程名 PARAMETER 形参表 语句序列 RETURN END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号