《多模块程序优秀PPT.ppt》由会员分享,可在线阅读,更多相关《多模块程序优秀PPT.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、多模块程序第1页,本讲稿共41页复习提问复习提问DOWHILE-ENDDO循环循环LOOP及及EXIT命令的使用命令的使用FORENDFOR循环循环SCANENDSCAN循环循环第2页,本讲稿共41页第十一讲:程序设计(三)第十一讲:程序设计(三)重点掌握模块的定义和调用重点掌握模块的定义和调用介绍带参数的过程调用介绍带参数的过程调用重点介绍变量的作用域重点介绍变量的作用域第3页,本讲稿共41页一一.模块的定义和调用模块的定义和调用模块是一个相对独立的程序段模块是一个相对独立的程序段,它可被其它可被其他模块所调用他模块所调用,也可调用其他模块也可调用其他模块模块可是命令文件模块可是命令文件,也
2、可是过程也可是过程第4页,本讲稿共41页一一.模块的定义和调用模块的定义和调用程序设计时,常常有些运算或处理程序是相同的程序设计时,常常有些运算或处理程序是相同的可以将重复出现的或能单独使用的程序写成可供其他程序可以将重复出现的或能单独使用的程序写成可供其他程序调用的独立程序段称为子程序,在调用的独立程序段称为子程序,在VFPVFP中也称为过程中也称为过程过程与主程序过程与主程序同样的方法建立同样的方法建立 、运行、运行同样的文件形式存放在磁盘上同样的文件形式存放在磁盘上有相同的扩展名有相同的扩展名(.PRG)(.PRG)惟一不同的是,一个过程中至少应有一条返回语句惟一不同的是,一个过程中至少
3、应有一条返回语句第5页,本讲稿共41页一一.模块的定义和调用模块的定义和调用1.过程定义过程定义格式格式PROCEDURERETURE表达式表达式ENDPROC说明说明1)过程名是以字母开头的字符串过程名是以字母开头的字符串(包含字母、数字及下划线包含字母、数字及下划线),最多可达,最多可达8 8个字符个字符第6页,本讲稿共41页一一.模块的定义和调用模块的定义和调用2)若缺省若缺省ENDPROC,过程结束于下一条过程结束于下一条PROCEDURE或文件结尾处或文件结尾处3)执行到执行到RETURN命令时命令时,转回到调用程序转回到调用程序返回表达式的值返回表达式的值.缺省缺省RETURN,自
4、动执行自动执行一条隐含的一条隐含的RETURN,若不带表达式若不带表达式,返回返回.T.4)过程可放置在程序文件代码的后面过程可放置在程序文件代码的后面,也可也可保存在称为过程文件的单独文件里保存在称为过程文件的单独文件里.第7页,本讲稿共41页一一.模块的定义和调用模块的定义和调用过程文件只包含过程过程文件只包含过程,这些过程能被任何其他程序这些过程能被任何其他程序所调用所调用,可以容纳可以容纳128128个过程个过程5)5)调用过程文件中过程之前要先打开过程文件调用过程文件中过程之前要先打开过程文件打开过程文件命令打开过程文件命令:SET PROCEDURE TO SET PROCEDUR
5、E TO 过程文件名表过程文件名表功能功能:打开打开过程文件名表过程文件名表所指定的过程文件所指定的过程文件说明:说明:调用过程文件仍使用调用过程文件仍使用DODO语句语句第8页,本讲稿共41页一一.模块的定义和调用模块的定义和调用6)SETPROCEDURETO命令命令,关闭所有关闭所有打开的过程文件打开的过程文件2.过程过程(模块模块)调用调用DOWITH,实参实参2,.下册下册132页例页例6.6第9页,本讲稿共41页二二.带参数的过程调用带参数的过程调用 允许在调用命令和被调用过程中设置数量相同,类型一致允许在调用命令和被调用过程中设置数量相同,类型一致的参数,按其排列顺序一一对应的参
6、数,按其排列顺序一一对应调用命令将一系列参数的调用命令将一系列参数的 值传送给被调用程序中的对应参数值传送给被调用程序中的对应参数被调用程序运行结束时,再将相应参数的值被调用程序运行结束时,再将相应参数的值(可能已被改变可能已被改变)返回返回这种方法可用带参数传递语句来实现这种方法可用带参数传递语句来实现第10页,本讲稿共41页二二.带参数的过程调用带参数的过程调用语句格式:语句格式:DO DO 文件名文件名 WITH WITH 实参表实参表语句功能:语句功能:带参数调用一般过程和过程文件中的过程及带参数调用一般过程和过程文件中的过程及应用程序应用程序第11页,本讲稿共41页 说明:说明:参数
7、可以是常量、变量和表达式参数可以是常量、变量和表达式被调用的程序中第一个可执行的语句必须是参数被调用的程序中第一个可执行的语句必须是参数语句,参数语句有以下格式:语句,参数语句有以下格式:语句格式:语句格式:PARAMETERS PARAMETERS 形参表形参表语句功能:语句功能:接受调用命令中相应参数的值,并在调用结束后返回对应参接受调用命令中相应参数的值,并在调用结束后返回对应参数的计算值数的计算值第12页,本讲稿共41页说明:说明:参数表必须与调用命令中的参数相匹配。形参数表必须与调用命令中的参数相匹配。形参数目不能少于实参的数目参数目不能少于实参的数目,若形参多于实若形参多于实参参,
8、则多余的形参取初值则多余的形参取初值.f.f.参数语句与带参数调用语句必须配合使用,参数语句与带参数调用语句必须配合使用,成对出现成对出现若实参为常量或表达式若实参为常量或表达式,将值赋给形参为按将值赋给形参为按值传递值传递若实参为变量若实参为变量,在模块中对形参的改变在模块中对形参的改变,也对也对实参变量值进行改变实参变量值进行改变,称为按引用传递称为按引用传递下册下册141页方法二页方法二第13页,本讲稿共41页三三.变量作用域变量作用域在在VFP中,内存变量可分为公共变量、中,内存变量可分为公共变量、私有变量、局部变量三类私有变量、局部变量三类1、公共变量、公共变量在任何模块中都可使用的
9、变量称为公共在任何模块中都可使用的变量称为公共变量变量1)公共变量要先建立后使用公共变量要先建立后使用PUBLIC功能功能:建公共变量建公共变量,赋初值为赋初值为.F.第14页,本讲稿共41页变量作用域变量作用域2)公共变量一旦建立一直有效公共变量一旦建立一直有效,只有执行只有执行QUIT等命令后等命令后,才被释放才被释放3)在命令窗口中直接使用的变量也为公共在命令窗口中直接使用的变量也为公共变量变量第15页,本讲稿共41页变量作用域变量作用域2.私有变量私有变量在程序中直接使用的变量为私有变量在程序中直接使用的变量为私有变量1)作用域是建立它的模块及其下属的各层作用域是建立它的模块及其下属的
10、各层模块模块2)一旦建立它的模块程序运行结束一旦建立它的模块程序运行结束,这些私这些私有变量将自动清除有变量将自动清除第16页,本讲稿共41页变量作用域变量作用域3.局部变量局部变量只能在建立它的模块中使用只能在建立它的模块中使用建立局部变量的命令建立局部变量的命令:LOCAL功能功能:建立局部变量建立局部变量,赋初值为赋初值为.F.1)建立它的模块程序运行结束时建立它的模块程序运行结束时,局部变量自动释放局部变量自动释放2)LOCAL不能缩写不能缩写第17页,本讲稿共41页变量作用域变量作用域4.隐藏主程序中存在的变量隐藏主程序中存在的变量PRIVATE隐藏指定的在上层模块中可能已存在的隐藏
11、指定的在上层模块中可能已存在的内存变量内存变量,使得这些变量在当前模块程序使得这些变量在当前模块程序中暂时无效中暂时无效,一旦返回上层模块时一旦返回上层模块时,被隐藏被隐藏的内存变量就自动恢复有效性的内存变量就自动恢复有效性,并保持原并保持原有的取值有的取值下册下册137页例页例6.6134页例页例6.12第18页,本讲稿共41页小结:小结:重点掌握模块的定义和调用重点掌握模块的定义和调用介绍带参数的过程调用介绍带参数的过程调用重点介绍变量的作用域重点介绍变量的作用域第19页,本讲稿共41页练习:练习:建立表操作建立表操作1.1.建立一个表建立一个表ZGDA.DBFZGDA.DBF,表的内容可
12、以,表的内容可以自己定义(备注型字段的内容如何查阅、自己定义(备注型字段的内容如何查阅、修改)修改)第20页,本讲稿共41页4.4.将将ZGDA.DBFZGDA.DBF表先添加一个表先添加一个“工资工资”字段,然字段,然后进行如下操作:后进行如下操作:(1)(1)显示工资小于显示工资小于140140元的姓名、工资两个字段的内容元的姓名、工资两个字段的内容(2)(2)显示性别为显示性别为“男男”的全部记录的内容的全部记录的内容(3)(3)显示性别为显示性别为“女女”的姓名、职称与工资的内容的姓名、职称与工资的内容(4)(4)显示全部姓显示全部姓“刘刘”的记录内容的记录内容(5)(5)显示职称是显
13、示职称是“讲师讲师”且年龄为且年龄为4040岁以下的记录岁以下的记录(6)(6)显示年龄在显示年龄在5050岁以下,工资在岁以下,工资在650650元以上记录的内容元以上记录的内容第21页,本讲稿共41页1.1.将将ZGDAZGDADBFDBF表拷贝生成一个新表表拷贝生成一个新表Z1Z1DBFDBF并进行下面的修改操作:并进行下面的修改操作:(1)(1)用用EDITEDIT命令只修改第四号记录命令只修改第四号记录“王秋燕王秋燕”,将职称由将职称由“讲师讲师”改为改为“副教授副教授”,工资由,工资由6 6 00.0000.00元改为元改为800.00800.00元,显示修改后表的内容元,显示修改
14、后表的内容(2)(2)用用CHANGECHANGE命令将工资小于命令将工资小于800800元的增加元的增加200200元,元,显示修改后表的内容。显示修改后表的内容。(3)(3)用用BROWSEBROWSE命令只显示姓名、职称和工资三个命令只显示姓名、职称和工资三个字段,并作一些修改,显示修改后表的内容字段,并作一些修改,显示修改后表的内容第22页,本讲稿共41页用用REPLACEREPLACE命令进行如下操作:命令进行如下操作:1)1)将所有的记录年龄增加一岁;将所有的记录年龄增加一岁;2)2)将所有的讲师工资增加将所有的讲师工资增加100100元;元;3)3)将所有的将所有的“讲师讲师”改
15、成改成“副教授副教授”;4)4)将所有的将所有的“助教助教”改成改成“讲师讲师”;第23页,本讲稿共41页2.2.用用ZGDAZGDADBFDBF表进行拷贝操作:表进行拷贝操作:(1)(1)用用COPY FILECOPY FILE命令,将命令,将ZGDAZGDADBFDBF表拷贝生成新的表表拷贝生成新的表A1A1DBFDBF,显示新表的内容;,显示新表的内容;(2)(2)用用COPY TOCOPY TO命令,将命令,将ZGDAZGDADBFDBF表拷贝生成新的表表拷贝生成新的表A2A2DBFDBF,显示新表的内容;显示新表的内容;(3)(3)将将ZGDAZGDADBFDBF表拷贝生成新的表表拷
16、贝生成新的表A3A3DBFDBF,A3A3DBFDBF的结构由的结构由姓名、性别、年龄、姓名、性别、年龄、职称四个字段组成,显示新表的内容;职称四个字段组成,显示新表的内容;(4)(4)将将ZGDAZGDADBFDBF表职称是讲师的记录拷贝出来生成新的表表职称是讲师的记录拷贝出来生成新的表A4A4DBFDBF,A4A4DBFDBF的结构的结构 由姓名、年龄、职称和工作时间四个字由姓名、年龄、职称和工作时间四个字段组成,显示新表的内容;段组成,显示新表的内容;(5)(5)将将ZGDAZGDADBFDBF表年龄大于表年龄大于4040岁的记录拷贝出来,生成新的表岁的记录拷贝出来,生成新的表A5A5D
17、BFDBF,显示新,显示新 表的内容。表的内容。第24页,本讲稿共41页3.3.用用DELETEDELETE命令和命令和PACKPACK命令删除命令删除(1)(1)真正删除第真正删除第1 1号和第号和第7 7号记录,真正删除第号记录,真正删除第3 3号至号至第第6 6号记录;号记录;(2)(2)将第将第2 2号记录打删除标记,然后再恢复,真正删号记录打删除标记,然后再恢复,真正删除除Z1Z1DBFDBF表的全部记录。表的全部记录。第25页,本讲稿共41页重新组织表重新组织表1.1.有一个表有一个表W1.DBFW1.DBF内容如下,请分别按工内容如下,请分别按工资降序排列,按职称升序排序。资降序
18、排列,按职称升序排序。2.2.将将W1.DBFW1.DBF表分别按姓名、按性别进行索表分别按姓名、按性别进行索引。引。3.3.用用FINDFIND、SEEKSEEK命令查找李志和秋天两个命令查找李志和秋天两个记录,并显示其内容。记录,并显示其内容。4.4.用用LOCATELOCATE和和CONTINUECONTINUE命令查找所有职称命令查找所有职称是讲师的记录。是讲师的记录。第26页,本讲稿共41页5.5.建立索引文件:建立索引文件:(1)(1)按姓名建立索引文件;按姓名建立索引文件;(2)(2)按工资建立索引文件;按工资建立索引文件;(3)(3)按工作时间建立索引文件;按工作时间建立索引文
19、件;(4)(4)按职称和工资建立索引文件。按职称和工资建立索引文件。第27页,本讲稿共41页6.6.查询操作:查询操作:(1)(1)用用LOCATELOCATE命令查询命令查询“李艳李艳”的有关数据;的有关数据;(2)(2)用用LOCATELOCATE和和CONTINUECONTINUE命令查询年龄命令查询年龄4545岁的全部记岁的全部记录。录。第28页,本讲稿共41页6.4 6.4 统计命令统计命令1.1.有一个学生成绩表有一个学生成绩表CJ.DBFCJ.DBF,其内容如下,其内容如下,进行统计平均年龄、每科成绩的总分与进行统计平均年龄、每科成绩的总分与平均分等操作:平均分等操作:第29页,
20、本讲稿共41页2.2.进行下列统计操作:进行下列统计操作:(1)(1)统计女职工的平均工资,男职工的平均年龄;统计女职工的平均工资,男职工的平均年龄;(2)(2)分别统计男、女职工的人数;分别统计男、女职工的人数;(3)(3)统计年龄大于统计年龄大于4040岁的人数;岁的人数;(4)(4)统计职称是讲师的人数;统计职称是讲师的人数;(5)(5)统计统计19721972年之前参加工作的人数。年之前参加工作的人数。第30页,本讲稿共41页6.5 6.5 程序设计程序设计写出运算结果写出运算结果:(1)(1)S=0S=0 P=1 P=1 DO WHILE P=100 DO WHILE P=100 S
21、=S+P S=S+P P=P+1 P=P+1 ENDDO ENDDO?S=,S?S=,S CANCEL S=5050 CANCEL S=5050第31页,本讲稿共41页(2)5!(2)5!的值的值 SET TALK OFFSET TALK OFF T=1 T=1 N=1 N=1 DO WHILE N=5 DO WHILE N=5 T=T*N T=T*N N=N+1 N=N+1 ENDDO ENDDO?T=,T?T=,T CANCEL T=120 CANCEL T=120第32页,本讲稿共41页(3)(3)求求S=1!+2!+3!+S=1!+2!+3!+5!+5!的值。的值。SET TALK O
22、FFSET TALK OFF S=0 S=0 T=1 T=1 N=1 N=1 DO WHILE N=5 DO WHILE N=5 T=T*N T=T*N S=S+T S=S+T N=N+1 N=N+1 ENDDO ENDDO?S=,S?S=,S CANCEL S=153 CANCEL S=153第33页,本讲稿共41页(4)写出程序的运行结果写出程序的运行结果SETTALKOFFI=1DOWHILEI=3J=5DOWHILEJ=7?I,JJ=J+1ENDDOI=I+1ENDDOCANCEL第34页,本讲稿共41页(5)写出程序的运行结果写出程序的运行结果FORI=10TO1STEP-2?I=,
23、INEXT?I=,IRETURN第35页,本讲稿共41页2.编一个程序求编一个程序求0100之间之间(S=2+4+6+100)的偶数之和的偶数之和S=0FORI=0TO100STEP2S=S+IENDFOR?SRETU第36页,本讲稿共41页3.编写计算下列两个表达式值编写计算下列两个表达式值S=1+2+3+30Y=1+12+13+130STORE0TOS,TFORI=1TO30S=S+IT=T+1/IENDFOR?S,TRETU第37页,本讲稿共41页4.编一个程序编一个程序(S=1+(1+2)+(1+2+3)+(1+2+3+4+100)S=0T=0FORI=1TO100T=T+IS=S+TENDFOR?SRETU第38页,本讲稿共41页5.选修的学分收费。选修的学分收费。学分在学分在12分以下的收费分以下的收费4000元,若超过元,若超过12学分,学分,则超过部分每学分加收则超过部分每学分加收200元元编一个程序计算收费,输入学号编一个程序计算收费,输入学号I及学分及学分U,输出学生,输出学生号及应缴学费号及应缴学费T4000U124000+200(U-12)U12第39页,本讲稿共41页6.显示下列图形显示下列图形#第40页,本讲稿共41页SETTALKOFFCLEAFORI=1TO7FORJ=1TO10?“#”ENDFOR?ENDFORRETU第41页,本讲稿共41页