VFP第6章程序设计基础ppt课件.ppt_第1页
VFP第6章程序设计基础ppt课件.ppt_第2页
VFP第6章程序设计基础ppt课件.ppt_第3页
VFP第6章程序设计基础ppt课件.ppt_第4页
VFP第6章程序设计基础ppt课件.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章程序设计基础 在前面的章节中介绍了基本的数据库管理操作命令 它们基本上都是以单个命令方式来实现的 这种交互方式虽然简单 但对于某些经常执行的操作 需要反复地输入命令再执行 工作量大 效率低 为解决以上问题 可采用vf提供的 Vf程序设计包括面向过程程序设计和面向对象程序设计 前者是后者的基础 6 1程序文件的建立与运行 1 程序文件的概念程序是为实现某一具体任务而按照一定的控制结构编制的命令序列 将程序以文件的形式存储在磁盘上 这种文件称为 程序文件 程序一般由以下要素组成 1 变量 参与运算 用于记录 存储程序的中间及最终结果 2 普通语句 操作数据库的命令 含SQL命令 和专用于程序设计的输入输出等语句 3 程序流程语句 控制程序走向的语句 如选择 循环等 4 过程与函数 完成特定功能或计算的子程序模块 2 程序文件的建立与编辑三种建立方法 1 从项目管理器新建程序文件2 从 文件 菜单新建程序文件 3 在命令窗口中执行命令 MODIFYCOMMAND 2 程序文件的保存程序输入完毕后 从 文件 菜单选择 保存 或按CTRL W保存程序文件 3 程序文件的修改方法1 若程序文件已建在某一项目中 则从项目管理器中选定它并单击 修改 按钮 方法2 从 文件 菜单选择 打开 或者单击常用工具栏上的 打开 按钮 在 打开 对话框选定要修改的程序文件后单击 确定 按钮 方法3 在命令窗口中执行 MODIFYCOMMAND 程序文件名 4 程序文件的运行方法1 若程序文件已建在某一项目中 则从 项目管理器 中选定它并单击 运行 按钮 方法2 从 程序 菜单中选择 运行 选定要运行的程序文件后单击 运行 按钮 方法3 在命令窗口中执行命令 DO 程序文件名 例6 1请编写一程序文件 名为 学生人数 prg 实现统计student表中奖学金在200 300元之间的学生人数 并与书中例5 4 p88 进行比较 6 2结构化程序设计初步 1 算法及流程图 1 算法的概念 根据问题要求拟定用计算机求解的策略和步骤 并把它用某种工具描述出来 称之为 算法设计 2 算法的流程图描述 用一些简单的几何框图表示各种类型的操作 然后用带箭头的有向流线将各个框图连结起来 以表示其执行的先后顺序 这种框图称为 流程图 例6 2试写出算法 以交换变量x和y的值 例6 3试画出流程图 以计算自然数1 100的和 如下图 2 结构化程序设计方法结构化程序指整个程序由顺序 选择 循环三种基本结构组成 半圆框称为起止框 用来表示程序的开始和结束 矩形框称为处理框 用来表示数据的输入 输出及加工等问题 菱形框称为判断框 用来表示条件判断 箭头即指向线 用来表示程序的流向或途径 最常用的流程图符号如下所示 计算1 2 3 100 的流程图 S 存储每次累加的部分和 n 表示每次应加的数 6 3顺序结构程序设计 1 顺序结构程序运行时 按照命令 语句 的排列顺序逐条执行 这种结构就称为顺序结构 2 简单的输入输出语句 1 数据输入语句 INPUT1 格式 INPUT TO2 功能 暂停程序运行 显示提示信息 等待用户从键盘上输入数据 用户可以输入任意合法的表达式 例6 4运行下段程序 input 请输入一个数字 toa1input 请输入一个字符串 tob1 4 简单输出语句 1 格式 2 功能 依次计算并显示表达式表中各表达式的值 所显示的值与值之间间隔一个空格 例6 5运行下段程序input a toa A 5 a 8 5 信息显示函数 MESSAGEBOX 1 格式 MESSAGEBOX 2 功能 暂停程序运行 在对话框中显示提示信息 等待用户单击按钮 并返回一个整数表示单击的是哪个按钮 由三个数码相加产生 即 例6 6 MESSAGEBOX函数举例 3 环境设置语句 1 清屏语句 CLEAR1 格式 CLEAR2 功能 清空屏幕或当前窗口中显示的内容 2 环境设置语句 SET设置系统环境和状态的语句为SET语句 SET语句实际上是一个语句组 分为两种格式 格式 SETON OFF格式 SETTO常用的几个SET语句 1 SETDEFAULTTO功能 设置默认的工作目录 2 SETPATHTO功能 设置搜索路径 3 SETTALKON OFF功能 控制是否使某些命令产生屏幕显示 P131提示 4 SETPRINTON OFF功能 控制屏幕上的输出内容是否同时送打印机打印 例6 7编程显示下列三角形图案 程序 clear return作业 编程显示下列平行四边形图案 4 注释 1 注释语句1 格式 NOTE2 功能注释语句是非执行语句 它们不对计算机产生任何操作 仅仅对程序起注解作用 2 行末注释行末注释用在语句 命令 末尾 以 起头 后跟本行的注释内容 6 4程序的选择结构 选择结构是指在程序执行过程中 根据指定条件的当前值在两条或多条程序路径中选择一条执行 通常选择结构有三种形式 1 单分支选择结构 1 格式IFENDIF 2 功能 执行该语句 先判断条件的值是否为真 然后决定程序运行的走向 3 注意 成对出现 P133提示 例 从键盘接收两个数 在屏幕输出大数 INPUT X TOXINPUT Y TOYIFX Y 如果X Y 把X与Y交换T X 引入第三个变量T 进行三角交换X YY TENDIF XRETURN 2 双分支选择结构 1 格式IFELSEENDIF 2 功能 双分支选择结构流程图程序执行时 先判断条件的值是否为真 然后决定程序运行的走向 3 P133提示 是 否 双分支选择结构流程图 例 请用双分支选择结构完成上例 input x toxinput y toyifx y 最大数是 xelse 最大数是 yendifretu 3 多分支选择结构 1 格式 DOCASECASECASE CASE OTHERWISE ENDCASE 2 功能 执行该语句 系统依次检查每一个CASE中条件的值 视其真假决定程序的走向 P135功能说明及提示 多分支选择结构流程图 例 当输入0 6之间的整数时 系统便显示星期日 星期一 星期六的英语单词 否则显示 输入数据出错 的信息 试编程实现之 clearinput 请输入一个整数 tondocasecasen 0 Sunday casen 1 Monday casen 2 Tuesday casen 3 Wednesday casen 4 Thursday casen 5 Friday casen 6 Saturday otherwise 输入数据出错 endcaseretu作业 书本P161三 操作题2 参考学习指导书 6 5循环结构 循环结构是指根据指定条件的当前值来决定一行或多行语句 命令 是否要重复执行 VFP6 0提供了三种循环结构 1 DOWHILE循环 1 DOWHILE循环结构 1 格式DOWHILEENDDO 2 功能执行DOWHILE语句时 首先计算判断条件的值 若条件的值为真 则顺序执行循环体 然后再返回到dowhile 再次计算判断条件的值 若条件为真 则重复上述过程 若条件为假 则执行enddo的下一个语句 3 注意 dowhile与enddo必须成对出现 防止死循环 DOWHILE循环流程图 例 计算自然数1 100的和 S 0 存放累加和的变量S初值为0N 1 取第一个自然数DOWHILEN 100S S N 累加当前自然数N N 1 取下一个自然数ENDDO SRETURN作业 编写一程序 计算自然数1 100的奇数和 2 循环体中两条特殊语句 EXIT和LOOP 1 格式跳出循环语句 EXIT短跳循环语句 LOOP 2 功能在循环体中执行到EXIT时 立即无条件跳出循环 转去执行ENDDO的后一个语句 若执行到LOOP语句 则立即返回DOWHILE重判循环条件 而不再执行循环体内的其他语句 DOWHILEDOWHILE EXITLOOP ENDDOENDDO EXIT与LOOP的作用 3 EXIT语句的一个典型应用EXIT语句常用在下列控制结构中 用于控制循环次数不确定时的循环退出 DOWHILE T 循环条件为永真 常称为永真循环IFEXITENDIFENDDO 例 从键盘输入若干个非零的数值 当输入数值 0 时结束输入 统计有效数值的个数和它们的平均值 CLEARS 0 存放累加和N 0 存放数值个数DOWHILE T 这是一个永真循环INPUT 请输入一个数值 输入零时结束 TOSZIFSZ 0EXITENDIFS S SZN N 1ENDDO 共输入有效数值个数 N 平均值是 S NRETURN讲解书本例6 15 2 FOR循环 1 格式FOR TO STEP ENDFOR NEXT 2 功能对于循环变量在初值和终值之间的每一个值 重复执行FOR与ENDFOR 或NEXT 之间的语句序列 3 用处 当预先知道循环次数 或在循环中有变量在某值域内递增或递减时 FOR循环流程图 例 统计1 50间不能被7整除的数的个数 并求这些数的积 clearnum 0fact 1fori 1to50step1ifmod I 7 0num num 1fact fact Iendifendfor 1 50间不能被7整除的数的个数是 num 它们的连乘积是 fact作业 统计1 50间能被6整除的数的个数 并求这些数的和 3 SCAN循环SCAN循环专用于控制对数据表中记录进行逐条操作 1 格式SCAN FOR WHILE ENDSCAN 2 功能针对当前表中指定范围内满足条件的每条记录 逐一执行SCAN与ENDSCAN之间的语句序列 例 从student表首记录开始依次显示当前记录 等待用户按任一键后 再显示下一个记录 clearusestudentscandisplaywait 按任一健显示下一个记录 endscanuseRETURN作业 依次显示student表中所有计算机专业的学生记录 程序举例 例1 p161 3 编写程序从键盘输入一个年份 判断它是否闰年 闰年的条件是 能被4整除但不能被100整除 或能被400整除 clearinput 请输入一个年份 toyif mod y 4 0andmod y 100 0 ormod y 400 0 Y 是闰年 else y 不是闰年 endifreturn 例2 输入一个百分制成绩 要求输出等级 A 90分以上为 A 80 89分为 70 79分为 60 69分为 60分以下为 input 请输入学生百分制成绩 tocjdocasecasecj 90dj A casecj 80dj B casecj 70dj C casecj 60dj D otherwisedj E endcase 成绩是 cj 等级是 djreturn 例3 依次显示student表中1980年出生的学生记录 clearusestudentscanallforyear 出生日期 1980displaymessagebox 按任一键继续 endscanusereturn作业 用FOR循环编写程序 求1 100的奇数和 输入一个成绩等级 要求输出相应的分数段 等级为 A 90分以上为 A 80 89分为 70 79分为 60 69分为 60分以下为 4 循环的嵌套例 某学生食堂采购员带1000元钱去市场买鸡 已知每只小鸡5元 每只公鸡20元 每只母鸡30元 现在要求1000元钱正好买100只鸡且品种齐全 请编程序帮助采购员制订采购方案 CLEARFORI 1TO33 最多可以买33只母鸡FORJ 1TO50 最多可以买50只公鸡FORK 1TO100 最多可以买100只小鸡IF30 I 20 J 5 K 1000ANDI J K 100 I J KENDIENDFENDFENDF 6 6过程 1 过程的定义 1 外部过程的定义1 格式 PARAMETERS RETURN TOMASTER 2 功能用一个程序文件单独定义一个过程 该过程名就是该程序文件名 例 定义一个外部过程JS PRG 该过程能接收外部参数R 并计算园的面积S PARAMETERSRS PI R R 园的面积 SRETURN 一个大的应用程序通常包含数据的输入 修改 查询 打印等相对独立的程序段 模块 可分别用一个过程或自定义函数来实现 再通过模块间的调用实现整个程序的功能 习惯上称调用其他程序的程序为主程序 被其他程序调用的程序为子程序 过程 2 内部过程的定义1 格式PROCEDURE PARAMETERS RETURN TOMASTER ENDPROC2 功能 将一个语句系列定义为以为名的过程 3 过程文件的定义过程文件也是个 PRG文件 由若干个过程组合而成 P147例6 24 2 过程的调用 1 调用程序文件中的过程1 格式 DO WITH 2 功能 调用指定的过程 3 过程调用关系P148图6 15 例 编一主程序 实现调用独立文件过程JS PRG SETTALKOFFCLEARDOWHILE T INPUT 请输入园的半径 输入零时结束 TOBJIFBJ 0EXITENDIFDOJSWITHBJ 调用JS 传递参数BJENDDORETURN 2 调用过程文件中的过程操作步骤 打开过程文件 调用过程 关闭过程文件 1 打开指定的过程文件格式 SETPROCEDURETO2 调用已打开过程文件中的过程格式 DO WITH 3 关闭当前打开的过程文件格式 SETPROCEDURETO或CLOSEPROCEDURE例 P149例6 27 6 7参数传递与变量作用域 1 参数的传递1 格式传递参数语句格式 DOWITH接收参数语句格式 PARAMETERS2 规则 1 DO语句可以用在调用程序中的任何位置 而PARAMETERS语句必须放在过程的第一个可执行语句之前 2 调用过程时系统会将实参按排列顺序一一传递给对应的形参 3 形参形式上同内存变量 而实参可以是常量 内存变量或表达式 3 两种传递机制 1 按值传递 调用程序向过程的单向传递 当实参是常量或表达式时 2 按地址传递 双向传递 当实参是变量时 例 p151例6 27 Vf在调用过程时 常需要在调用程序与过程之间实现数据传递 实现它有两种方法 参数传递 变量作用域 例 分析下列程序的执行结果 CLEARSTORE BOYS TOX Y 调用前 X YDOSUB1WITHX Y 调用后 X YRETURNPROCSUB1PARAX1 Y1 过程中 X1 Y1STORE GIRLS TOX1 Y1RETURNENDP 分析 这是一个主程序调用一个内部过程SUB1 内存变量X Y为实参 调用SUB1时X按地址传递到X1 Y按值传递给Y1 故在SUB1中输出X1 Y1结果仍是 BOYS BOYS 随后在SUB1中把X1 Y1的值改为 GIRLS 实参X的值也就改成 GIRLS 实参Y不受影响 所以返回主程序后输出X Y结果是 GIRLS BOYS 2 变量作用域及其定义1 变量作用域的含义内存变量的有效作用范围称为内存变量的作用域 根据作用域的不同 内存变量可分为全局变量 私有变量和局部变量三种类 p152表6 4 2 含作用域的变量定义 1 全局变量的定义1 在命令窗口创建的变量和数组将自动成为全局变量 2 用PUBLIC语句定义 格式 PUBLIC功能 定义全局内存变量和数组 参数说明 逐一列出作为全局变量的内存变量和数组 其中数组用数组名或数组说明均可 若用数组说明 其格式如下 数组名 例 P153例6 29 2 局部变量的定义局部变量只能用LOCAL语句定义 格式 LOCAL功能 定义局部内存变量和数组 并屏蔽来自上级过程 含主程序 中与当前局部变量同名的全局或私有变量 使在当前过程中对局部变量的操作 不影响上级过程中同名变量的值 3 私有变量的定义1 在一个程序或过程中建立的内存变量 如果未加任何说明 默认为私有变量 2 用PRIVATE语句定义 格式 PRIVATE格式 PRIVATEALL LIKE EXCEPT 功能 定义私有内存变量和数组 并屏蔽来自上级过程 含主程序 中与当前私有变量同名的全局或私有变量 使在当前过程中对私有变量的操作 不影响上级过程中同名变量的值 例 p154例6 30 简析 格式 中的参数说明 ALL 表示当前所有的内存变量均为私有变量 ALLLIKE 表示所有与相匹配的变量均为私有变量 ALLEXCEPT 表示所有不与相匹配的变量均为私有变量 例 若有程序文件如下 CLEARPUBLICAPRIVATEBLOCALCSTORE10TOA B CDOSUB1 A B CRETURNPROCSUB1 A BA A 5B B 10RETURN 本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论