课件 Visual Foxpro PPT 第3章程序设计基础.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《课件 Visual Foxpro PPT 第3章程序设计基础.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课件 Visual Foxpro PPT 第3章 程序设计基础 程序设计 基础
- 资源描述:
-
1、第第3章章 程序设计基础程序设计基础3.1 VFP应用程序设计3.2程序文件的建立与执行3.3程序设计基本语句3.4程序控制的基本结构3.5过程与过程文件3.6综合程序设计范例3.1 VFP应用程序设计VFP的工作方式的工作方式命令方式菜单方式程序方式 VFP程序设计过程程序设计过程VFP应用程序包括:一个或多个数据库、 设置系统环境的主程序、用户界面 (如表单、工具栏和菜单等),还可以包括查询和报表。 设计数据库、确定功能需求 | 创建数据库、表、视图、关系 | / 方便用户使用 帮助用户访问信息 表单、菜单、工具栏 查询、报表、图形 / | 测试与调试 | 应用程序 创建一个完整的VFP应
2、用程序的全过程 VFP程序设计方法程序设计方法 面向过程程序设计 自顶向下 层层分解子程序之间有严重顺序性和依赖性软件稳定性、可修改性、扩充性、重用性差 面向对象程序设计方法继承 封装 多态各部件相对独立 稳定性、可修改性、维护性、可重用性高 3.1 VFP应用程序设计(续)3.2 程序文件的建立与执行 创建程序 Modify Command 文件名保存程序 修改程序Modify Command 程序文件的调用 DO 程序结束: 文件的末尾(返回到调用行的下一行). Return(返回到调用行的下一行) Retry(返回到调用行本身, 可以实现程序的 重复调用) Cancel(中断, 异常结束
3、, 并返回到命令窗口)Quit(返回到操作系统)命令文件(.prg) 在运行时先自动编译生成目标程序(.fxp)再执行. 3.2 程序文件的建立与执行(续)程序文件的建立与执行(续) 3.3程序设计基本语句1程序注释: Note 或: *2. 语句注释 & 3.3.1 程序注释语句1.中断语句Cancel 功能:中断程序的执行,返回到命令窗口2.挂起语句Suspend功能:暂停当前程序的执行,并返回到系统命令窗口3.恢复执行语句Resume功能:恢复被挂起的程序,使之从暂停的位置继续执行3.3.2 程序调试语句1. 换行输出 ?功能:分别计算表达式列表的值,并将其输出在当 前光标的下一行2.
4、同行输出 ?3.3.3 简单的输出语句3.3.4 简单的输入语句1. 数据接收语句: Input To 功能: 将键盘输入的数据赋给指定的. 将显示在屏幕上。数值型以外的常量, 必须输入其定界符.例: Input “请输入出生年月:” To csny Input “请输入奖学金:” To jxjInput “请输入学号:” To xh 2. 字符串接收语句 Accept To 从键盘输入的数据只能是字符型常量, 且不需定界符.例: Accept 请输入姓名: To xmAccept 请输入学号: To xh3.3.4 简单的输入语句(续)3. 单字符接受语句 Wait To Window At
5、 Nowait Noclear Timeout 从键盘输入的数据只能是单字符型常量.例: Wait “请检查输入内容” Window At 10,403.3.4 简单的输入语句(续)3.3.5 环境设置语句Clear 清屏Set Talk On/Off功能: 打开/关闭对话开关Set Delete On/Off功能: 是否忽略有删除标记的纪录. Set Exact On/Off功能:字符串比较是否为精确比较Set Carry On/Off功能: 向表中添加纪录时是否将上一条记 录的内容作为新纪录的默认值Set Default To 功能:设置系统缺省路径.缺省为当前目录Set Exclusiv
6、e On/Off功能:设置表打开方式为独占或共享Set Escape On/Off功能:程序运行期间按Esc健是否可中断退出Set Udfparms To Value/Reference功能:调用自定义函数时参数的传递方式是 传值还是引用3.3.5 环境设置语句(续)3.4 程序控制的基本结构程序控制的基本结构例1:求学生表中指定班级的全体学生的奖学金总额。3.4.1 顺序结构ClearUse 学生Input 请输入指定的班级: To bjSum 奖学金 To jxj For 班级=bj? bj+ 班全体学生的奖学金总额为: +Str(jxj,5,2)Use3.4.2 选择分支结构 二路选择分
7、支结构:IfEndIf多路选择分支结构:Do CaseEndCase1二路选择分支结构If ThenElseEndIf ClearInput a= TO aInput b= To bInput c= To cD=b*b-4*a*cP=-b/(2*a)If D0?复根复根ElseIf D=0 ? X1=x2=, PElseD1=sqrt(D)?X1=, (-b+D1)/(2*a)? X2=, (-b-D1)/(2*a)EndifEndif例2: 求一元二次方程aX2+bX+c=0的根。a,b,c由键盘输入。2.多路选择分支结构 Do CaseCase CaseCaseOtherwiseEndca
8、se 3.4.2 选择分支结构例3: 从键盘输入学生的学号, 在成绩表中计算该生的平均成绩, 并给出成绩的档次.(优、良、中、及格、不及格),如果该生不在表中则提示相应的信息。 Use ChjAccept 请输入学生的学号请输入学生的学号: To xhLocate For 学号学号=xhIf !Found() ?查无此人查无此人!ElseAverage 成绩成绩 To 平均分平均分 For 学号学号=xh Do Case Case 平均分平均分=90dc=优优 Case 平均分平均分=80dc=良良 Case 平均分平均分=70dc=中中 Case 平均分平均分=60dc=及格及格 Other
9、wisedc=不及格不及格Endcase? 学号学号,姓名姓名,平均分平均分,dcEndifUse3.4.3 循环结构循环结构三种循环语句: Do While EndDo ScanEndScan ForEndFor 1. Do While EndDo Do While Exit Loop EndDo 1).对循环次数不确定的程序进行操作Do While .T. If Exit EndIfEndDo 例4: 对多个学生成绩的查询 3.4.3 循环结构循环结构Use chjDo While .T. Accept 请输入学生的学号请输入学生的学号: To xh Locate For 学号学号=xh
10、If !Found() ?查无此人查无此人! ElseAverage 成绩成绩 To 平均分平均分 For 学号学号=xhDo Case Case 平均分平均分=90 dc=优优 Case 平均分平均分=80 dc=良良 Case 平均分平均分=70 dc=中中 Case 平均分平均分=60 dc=及格及格 Otherwise dc=不及格不及格Endcase? 学号学号,姓名姓名,平均分平均分,dc Endif Wait 还要查询吗还要查询吗?(y/n) To yn If Upper(yn)=y Loop Else Exit EndifEnddoUse2).对文件的记录逐条进行操作。 Do
11、While .Not.Eof()/Bof() Skip/Skip -1 EndDo3.4.3 循环结构循环结构Set Talk OffClearUse 学生Do While .Not.Eof()If 奖学金0?姓名, 奖学金EndifSkipEnddoUseSet Talk On 例5: 显示输出“学生” 表中的获得奖学金的学生 姓名和奖学金数额. Set Talk OffClearUse 学生Locate For Year(出生日期)1978Do While !Eof()?姓名, 出生日期ContinueEnddoUseSet Talk On 例6: 输出学生表中1978年以前出生的学生姓名
12、和出生年月3). 通过状态测试函数Do While EndDo3.4.3 循环结构循环结构例7:利用状态测试函数Inkey(0)编写一段等待程序,对程序段进行循环操作控制,直到用户按回车键才继续执行其他操作。Set Talk OffClear?”请在驱动器中插入软盘,准备好后按回车”Do While Inkey(0)!=13EndDoDir A:Set Talk On2. Scan Endscan(指针型)Scan 范围 For whileEndscan功能: 对当前打开的表文件在指定范围、满足条件的记录 中自上而下逐个扫描,随着记录指针的移动, SCAN 循环对选中的每条记录执行相同的。 3
13、.4.3 循环结构循环结构Set Talk OffClearUse 学生Scan For 奖学金200 .And. 性别=.T.?姓名, 奖学金EndscanUseSet Talk On 例8: 显示输出学生表中奖学金大于200元的男生的姓名和奖学金数额. 3. For EndFor1) For 循环变量=初值 To 终值 Step 步长 EndFor/Next2) For Each In / EndFor/Next 3.4.3 循环结构循环结构Set Talk OffClearUse 学生For N=1 To Fcount()? Field(n)EndForUseSet Talk On 例9
14、:显示学生表中的全部字段名。 4. Exit 语句格式: Exit功能:无条件跳出循环,转去执行EndDo、EndScan或EndFor后面的语句。5Loop 语句格式:Loop功能:用在循环语句的循环体中。在执行循环体时如果遇到该语句,就立即转向循环语句头部,即返回到Do While、For或Scan。在For 循环中返回会修改循环变量的值,在Scan循环中返回会移动记录指针,然后重新判断循环条件。3.4.3 循环结构循环结构3.4.4 多种结构的嵌套多种结构的嵌套 例10: 通过数组完成对学生表的数据录入工作(备注字段和通用字段忽略),当用户按ESC键时, 结束录入操作. Set Esca
15、pe OffUse 学生r=0For i=1 To Fcount()Zdm=field(i)If Type(zdm)=“M.Or. Type(zdm)=“G“r=r+1EndIfEndForDimension A(fcount()-r)Do While .T.j=0For i=1 To Fcount()-r j=j+1 zdm=Field(j) Do While Type(zdm)=“M.Or. Type(zdm)=“G j=j+1 zdm=Field(j) Enddo Input 输入字段: +Field(j) +, 类型为: +Type(zdm) To A(i)EndForAppend B
16、lankGather From AIf Inkey(0)=27ExitEndifEnddoUseSet Escape On 3.5 过程与过程文件过程与过程文件1. 调用:Do With 返回: Return To Master 子程序执行时遇到以下情况时, 自动结束返回:ReturnRetry Cancel Quit 子程序末尾 3.5.1 子程序*p1.prg*Do P2Return*p2.prg*Do P3Return*p3.prg*Return*p1.prg*Do P2Return*p2.prg*Do P3Return*p3.prg*Return To Master图1图2*P1.Pr
17、g* *P2.Prg* Set Talk Off ?早上好! Clear Do P3 ?“同学们!” ?下午好! Do P2 Return ?“晚上好!” Return *P3.Prg* ?中午好!Return 例11:2. 主程序用with语句向子程序传递参数例12:*cfx.prg*a=4b=6s=0Do Cfx-1 With 4,a+b,s? “s=”, s *cfx-1.prg*Parameters 长,宽,面积面积=长*宽?“面积=”, 面积Return3.5.2 过程程序设计 1.过程定义:Procedure EndProc 2. 过程文件的建立*P1.Prg*Proc P11*过
展开阅读全文