欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《数据库程序设计》第八章.ppt

    • 资源ID:5898642       资源大小:848.50KB        全文页数:58页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《数据库程序设计》第八章.ppt

    1,第八章 结构化程序设计,教学内容:结构化程序设计方法;程序中专用命令;程序文件操纵方法;三种控制结构的原理、描述、设计与实现;子程序原理、定义、调用、实现;程序中数据量使用规则。重 点:三种控制结构的原理、描述、设计与实现;子程序原理、定义、调用、实现。难 点:三种控制结构和子程序的设计与实现。,2,8.1 程序文件的使用8.2 程序文件中的交互式输入输出命令8.3 程序的基本结构8.4 多模块程序,第八章 结构化程序设计,3,8.1 程序文件的使用,VFP的三种工作方式:菜单方式命令方式程序方式8.1.1 程序文件的建立格式:modify command 功能:打开程序编辑窗口,用来建立或修改程序.说明:程序文件的扩展名为.prg关闭编辑窗口时按Ctrl+w或编辑窗口右上角的关闭按钮保存关闭,按ESC不保存关闭.,4,8.1 程序文件的使用,8.1.2 程序的运行格式:do 举例:计算半径为3的圆面积,需完成以下操作:给出圆的半径r 按公式S=*r*r 计算出圆面积 输出圆面积,对应程序代码如下:r=3 s=*r*r?”圆面积=”,s,问题的求解过程:输入数据 处理数据 输出数据,5,8.2 程序文件中的交互式输入输出命令,定位输入输出命令格式:SAY GET 功能:在屏幕的指定行列输出SAY子句的表达式值,并可修改GET子句的变量值说明:表示数据在窗口中显示的位置,行列都是数值表达式 SAY子句用于输出提示信息 GET子句用于输入及编辑数据,GET子句中的变量必须具有初值,数值型一般为零,字符型一般为若干个空格。GET子句的变量必须用READ命令来激活,即:在若干带有GET子句的定位输入输出命令后,必须遇到READ命令才能编辑GET变量,6,8.2 程序文件中的交互式输入输出命令,WAIT命令格式:WAIT TO WINDOW AT,TIMEOUT功能:暂停程序的运行,直到用户输入一个字符,也可用于输出一条提示信息说明:显示在屏幕上,若缺省则显示“按任意间继续”TO子句中,用来保存键入的字符,如本句缺省则输入的字符不保存 WINDOW子句使主屏幕上出现一个提示窗口,位置可由AT子句决定,若AT子句缺省,将显示在屏幕右上角TIMEOUT:设定等待时间(秒数),超时会自动往下执行,7,例:在命令窗口输入命令wait aa to x?xwait aa to x windows at 5,5?xwait aa to x windows at 5,5 timeout 5?x,8,8.2 程序文件中的交互式输入输出命令,INPUT格式:INPUT TO 说明:等待用户从键盘输入数据,并将其送入内存变量用户数据可为任何类型,但不能为空用户以回车键结束输入状态,程序自动向下执行为显示出来的用户提示ACCEPT格式:ACCEPT TO 说明:等待用户从键盘输入字符串,并将其送入内存变量用户输入字符串时不需要使用定界符用户以回车键结束输入状态,程序自动向下执行若用户不输入任何字符串,直接回车,则将空串赋给内存变量为显示出来的用户提示,9,8.3 程序的控制结构,程序的基本控制结构,一、顺序结构 运行程序时,按语句排列的先后顺序,一条接一条地依次执行。,顺序结构程序设计示例,注:1)一行只能写一条命令,以回车键结束。2)SET TALK ON|OFF显示或取消执行状态信息,10,SET TALK OFFCLEARUSE 成绩AVERAGE 成绩 TO XLIST FOR 成绩XUSESET TALK ON,11,SET TALK OFFCLEARINPUT“请输入第一个数:”TO XINPUT“请输入第二个数:”TO YM=MAX(X,Y)?”最大的数是:”,MSET TALK ON,输入任意两个数,编写程序求其中最大值,12,二、分支(选择)结构 在两条或多条程序路径中选一条执行1、简单的条件语句格式:IF ENDIF功能:若为真,执行,否则执行ENDIF之后的语句,13,INPUT“请输入第一个数:”TO XINPUT“请输入第二个数:”TO YM=XIF YM M=YENDIF?”最大的数是:”,M,输入任意两个数,编写程序求其中最大值,14,某地到北京“特快专递”计费标准为:不超过100克时每克0.05元,若超出,超出数每克0.02元,试编写程序计算邮费,Input“请输入邮件重量:”to wf=w*0.05if w100 f=100*0.05+(w-100)*0.02endif?“邮费为:”,f,15,试编写程序在学生表中根据输入的学号查询学生的姓名和生日,use 学生 accept“输入待查学生学号:”to xh locate for 学号=xh if found()?”姓名:”,姓名,”生日:”,生日 endif use,此处也可换成.not.eof(),16,2、带ELSE的条件语句格式:IF ELSE ENDIF功能:若为真执行,为假执行,17,INPUT“请输入第一个数:”TO XINPUT“请输入第二个数:”TO YIF XY M=XELSE M=YENDIF?”最大的数是:”,M,输入任意两个数,编写程序求其中最大值,18,Input“请输入邮件重量:”to wif w=100 f=w*0.05else f=100*0.05+(w-100)*0.02endif?“邮费为:”,f,某地到北京“特快专递”计费标准为:不超过100克时每克0.05元,若超出,超出数每克0.02元,试编写程序计算邮费,19,试编写程序在学生表中根据输入的学号查询学生的姓名和生日,use 学生 accept“输入待查学生学号:”to xh locate for 学号=xh if found()?”姓名:”,姓名,”生日:”,生日 else?”查无此人!”endif use,20,从键盘输入一个数,判断其为奇数还是偶数,input“请输入x的值:”to xif mod(x,2)=0?”偶数”else?”奇数”endif,偶数判别条件:INT(x/2)=x/2MOD(x,2)=0奇数判别条件:INT(x/2)x/2MOD(x,2)0MOD(x,2)=1,21,3、条件语句嵌套格式:,22,编写程序,对不同的x计算函数y的值,input“请输入x:”to x if x=50 y=3*x else if x=100 y=5*x else y=7*x endif endif?”y的值:”,y,23,3、多分支语句格式:DO CASE CASE CASE CASE OTHERWISE ENDCASE,功能:若某CASE语句为真,执行该CASE段的,然后执行ENDCASE后的语句。,24,25,编写程序,对不同的x计算函数y的值,input“请输入x:”to x do case case x=50 y=3*x case x=100 y=5*x otherwise y=7*x endcase?”y的值:”,y,26,显示当前季节的程序,Yue=month(date()Do case Case inlist(yue,3,4,5)Jj=“春”Case inlist(yue,6,7,8)Jj=“夏”Case inlist(yue,9,10,11)Jj=“秋”Case inlist(yue,12,1,2)Jj=“冬”EndcaseWait jj window,27,已知有三个数据表,分别是rcda.dbf、zytc.dbf 和xscj.dbf,编写一个程序在选择1、2、3时,分别打开不同表,CLEARACCEPT“请输入您的选择:(1-3)”TO YDO CASECASE Y=1 USE rcda LISTCASE Y=2 USE zytc LISTCASE Y=3 USE xscj LIST OTHERWISE?”对不起,您的输入有误!”ENDCASE,28,使用分支语句应注意的几点IF ENDIF 和 DO CASE ENDCASE 必须配对使用,DO CASE与第一个CASE条件表达式之间不应有任何命令。条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。命令行序列可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。DO CASE ENDCASE 命令,每次最多只能执行一个命令行序列。在多个CASE项的条件表达式值为真时,只执行第一个条件表达式值为真的命令行序列,然后执行 ENDCASE 的后面的第一条命令。,29,三、循环结构 某循环体中的多条语句多次被执行1、条件循环格式:DO WHILE ENDDO功能:若为真,执行循环体,遇到ENDDO返回,重新判断逻辑表达式。若为假,循环结束,执行ENDDO之后的语句,30,逻辑表达式为真?,语句序列,ENDDO后面的语句,Y,N,31,计算S=1+2+100,s=0&保存累加的和i=1&表示当前的数字DO WHILE i=100 s=s+i i=i+1ENDDO?“S=”,s,32,输出09这十个数。,i=0&表示当前待输出的数字DO WHILE i10?i i=i+1ENDDO,33,2、步长循环格式:FOR=TO STEP ENDFOR|NEXT功能:通过比较循环变量值与终值决定是否执行说明:步长为正时,若循环变量值不大于终值就执行循环体,然后变量=变量+步长。否则执行ENDFOR或NEXT后的语句步长为负时,若循环变量值不小于终值就执行循环体,然后变量=变量+步长。否则执行ENDFOR或NEXT后的语句步长缺省值为1,34,s=0For i=1 to 100 s=s+iNext?”s=”,s,计算S=1+2+100,s=0For i=1 to 100 step 2 s=s+iNext?”s=”,s,计算100以内奇数的和,35,3、扫描循环格式:SCAN FORWHILE ENDSCAN功能:对当前表进行循环,在内查找满足FOR条件或WHILE条件的记录,执行,36,显示成绩.DBF中所有成绩高于85分的学生学号,Use 成绩do while not eof()if 成绩85?学号 endif skipEnddouse,Use 成绩Scan for 成绩85?学号Endscanuse,clearUse 成绩go bottomn=recno()for i=1 to n go i if 成绩85?学号 endifnextuse,37,循环中两个特殊命令语句1、退出语句:EXIT2、重新循环语句:LOOP注意:这两个命令必须嵌入在循环体内,一般放在IF语句中,可以改变循环,但不能单独使用。死循环时,程序-取消,38,求 S=1+2+3+当 S1000 即停止。,s=0For n=1 to 100 s=s+n if S 1000 EXIT ENDifendfor?“n=”,n,39,计算100以内奇数的和,s=0For i=1 to 100 if i%2=0 loop else s=s+i endifNext?s=,s,s=0For i=1 to 100 if i%2=0 loop endif s=s+iNext?s=,s,循环结构程序设计典型题目,累加或累乘,40,累具有初始值的结果变量循环变量表示当前待处理的值挑选满足条件的值(分支)做累加或累乘操作,计算110间能被3整除的数之积,s=1For i=1 to 10 if i%3=0 s=s*i endifNext?s=,s,循环结构程序设计典型题目,统计个数,41,统计用循环对每个字符进行判断判断方法很重要计数变量,初始值为0每出现一个满足条件的字符,计数变量加1,输入字符串,统计其中大写字母、数字和空格的个数,dx=0&大写字母的个数sz=0&数字的个数kg=0&空格的个数accept“请输入字符串”to xn=len(x)For i=1 to n c=substr(x,i,1)do case case c=“Z”and c=“0”and c=“9”sz=sz+1 case c=“”kg=kg+1 endcaseNext?“dx=“,dx,“sz=“,sz,“kg=“,kg,循环结构程序设计典型题目,打印图形,42,打印多行用外层循环控制行数每行后面以回车结尾每行中按 要求打印若干空格或指定字符用内层循环控制字符个数,打印下列图形*,?for i=1 to 3 for j=1 to 3-i?endfor for k=1 to 2*i-1?*endfor?endfor,分析:行数i 空格数j*数k 1 2 1 2 1 3 3 0 5 3-i 2*i-1,43,模块:是相对独立的程序段,它可以调用其它模块,也可以被其它模块所调用主程序:调用其它模块而没有被调用的模块非主程序模块通常有如下三种:子程序:单独的.prg文件 过程:可写在主程序内,也可作为单独的.prg文件 自定义函数:可写在主程序内,可作为单独的.prg 文件,使用方法与系统函数相同,8.4 多模块程序,44,一、子程序调用:主程序执行到DO命令时,执行就转 向子程序,称调用子程序返回:子程序执行到RETURN命令(或缺省该命令时子程序执行完毕)时,就返回主程序转出处(即DO命令)的下一条语句继续执行,称返回主程序,*主程序aaDo bb,*子程序bbreturn,45,带参数的子程序的调用与返回调用:DO WITH(1)中的参数可以是表达式,但若为内存变量,则必须有初值(2)中的参数要传递给子程序,子程序中必须设置相应的参数接收。接收时使用如下命令:PARAMETERS注:a.本语句必须是被调用程序的第一条语句 b.变量的个数必须与DO命令中参数的个数相同 c.中的变量在将值返回后被清除返回:(1)使用RETURN命令(2)PARAMETERS语句中的变量值返回给DO命令中的变量,46,设计一个计算圆面积的子程序,并要求在主程序中带参数调用它,*主程序abc.prgymj=05,10 say”请输入半径:”get bj default 0readdo js with bj,ymj?”圆面积为”,ymjreturn,*子程序js.prgparameters r,ss=pi()*r*rreturn,47,二、过程VFP允许在一个.prg文件中设置多模块,并将除主程序外的每个模块定义为一个过程。过程也可作为单独的.prg文件,称为过程文件过程的定义:PROCEDURE PARAMETERS RETURN 过程写在哪里?可以写在主程序的后面(在同一个文件中)。可以作为单独的过程文件;可以几个过程共同写在一个过程文件中。过程的调用:DO WITH IN,48,设计一个计算圆面积的程序,并要求使用过程调用,*abc.prgymj=05,10 say”请输入半;径:”get bj default 0readdo js with bj,ymj?”圆面积为”,ymjreturnprocedure jsparameters r,ss=pi()*r*rreturn,*abc.prgymj=05,10 say”请输入半;径:”get bj default 0readdo js with bj,ymj in jss?”圆面积为”,ymjreturn,*jss.prgprocedure jsparameters r,ss=pi()*r*rreturn,49,50,51,三、自定义函数自定义函数的建立:FUNCTION PARAMETERS RETURN 说明:a.作为独立文件时,不使用 FUNCTION,文件名就是函数名b.自定义函数不可以与系统函数同名c.值为函数返回值d.若缺省RETURN子句返回.T.e.自定义函数的使用方式与系统函数相同,52,设计一个自定义函数,用来求一元一次方程AX+B=0的根,*qg.prginput a=to ainput b=to bx=root(a,b)?xfunction rootparameters a,breturn iif(a=0,无解,-b/a),53,四、变量的作用域1、公共变量:任何模块中都可以使用的变量建立公共变量:PUBLIC注:a.所有内存变量初值为.F.b.公共变量只能用命令清除2、私有变量:在本模块及下层模块中使用声明私有变量:PRIVATE注:a.变量无初值 b.上层模块若有同名内存变量,将其屏蔽 c.本模块运行结束后,变量自动清除3、本地变量:只在本模块中使用建立本地变量:LOCAL注:a.初值为.F.b.LOCAL不可缩写 c.本模块运行结束后,变量自动清除,54,PUBLIC NUMNUM=1DO ARETURNPROC ANUM=NUM+5DO BRETURNPROC BNUM=NUM+6?NUMRETURN&结果为12,clear memorydo areturnproc alocal numnum=2do breturnproc bnum=num+5?numreturn&提示“找不到num变量”,CLEAR MEMORYDO A?NUMRETUPROC APRIVATE NUMNUM=2DO BRETUPROC BNUM=NUM+5?NUMRETU&先显示7,再提示“找不到num变量”,55,clearclear memorypublic x1store abc to x1,x2,x3,x4?主程序第一次显示:list memory like x*do p1?主程序第二次显示:list memory like x*return,procedure p1 local x2 private x4 store xxx to x1,x2,x3,x4?过程P1显示:list memory like x*do p2returnprocedure p2 local x2 private x4 store yyy to x1,x2,x3,x4?过程P2显示:list memory like x*return,56,57,输入任意 5个数,放在X数组中,并按从大到小排序并输出。,见Px.prg,58,打印图形分支语句求水仙花数统计输入的字符串中数字、字母、空格、符号的个数,

    注意事项

    本文(《数据库程序设计》第八章.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开