




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第五章结构化程序设计,2,第一节程序文件,一、VisualFoxPro程序的几点说明1注释语句【格式1】*【格式2】&【功能】增强程序文件的易读性2对话开关语句【格式】SETTALKOFF|ON【功能】关闭或打开命令执行时的对话开关3命令的分行VisualFoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;若一条命令太长,一行写不下,也可分行书写,并在分行处加上续行符“;”,再按回车键。,3,二、程序文件的建立、修改与执行,1建立或修改程序文件1)命令方式:MODIFYCOMMAND程序文件名2)菜单方式:打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”,4,3)项目管理器:选定项目管理器“代码”选项卡中的“程序”项,选择“新建”命令。2保存程序文件程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W复合键,在“另存为”对话框中指定程序文件的存放位置和文件名,并单击“保存”按钮保存程序文件并退出文本编辑器。程序文件的默认扩展名是.PRG。,5,3执行程序文件程序文件建立后,可以用多种方式、多次执行它。下面是两种常用的方式。1)菜单方式单击【程序】【运行】菜单项,打开“运行”对话框;从文件列表框中选择要运行的程序文件,并单击“运行”命令按钮,启动运行该程序文件2)命令方式【格式】DO【功能】执行指定、下的程序文件当程序文件被执行时,文件中包含的命令将被依次执行,直到所有命令被执行完毕。,6,第二节程序的基本结构,由顺序、分支、循环三种基本结构构成。(1)顺序结构,如图6-1所示,该结构先执行A操作,再执行B操作。(2)分支结构:如图6-2所示,该结构中P代表一个条件,当条件P成立时执行A操作,否则执行B操作。,图6-1顺序结构流程图图6-2分支结构流程图,7,(3)循环结构:循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。,8,三条输入命令的异同ACCEPTTOACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束。WAITTOWAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键。INPUTTOINPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,如果是字符串,需用定界符,输入完毕按回车键结束。,9,分支结构形式有如下三种:1单向分支单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。【语句格式】IF条件表达式命令行序列ENDIF【语句功能】该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列;否则,执行ENDIF后面的第一条命令。,三、分支结构,10,【例6-9】求一元二次方程AX2BXC0的实根。程序文件名为PROG9.PRG。SETTALKOFFCLEARINPUTTOAINPUTTOBINPUTTOCZB2-4*A*CIFZ=0X1=(-B+SQRT(Z)/(2*A)X2=(-B-SQRT(Z)/(2*A)?X1,X2ENDIFSETTALKON,11,2双向分支双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。【语句格式】IF条件表达式命令行序列1ELSE命令行序列2ENDIF【语句功能】该语句首先计算条件表达式的值,当条件表达式的值为真时,执行命令行序列1中的命令;否则,执行命令行序列2中的命令;执行完命令行序列1或命令行序列2后都将执行ENDIF后面的第一条命令。,12,【例6-10】编写一密码校验程序(假设密码为ABC)。程序文件名为PROG10.PRG。SETTALKOFFCLEARACCEPT“请输入您的密码:”TOAAAIFAAA=”ABC”CLEAR?”欢迎使用本系统!”ELSE?”密码错误!”ENDIFSETTALKON,13,3多向分支多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。【语句格式】DOCASECASE条件表达式1命令行序列1CASE条件表达式2命令行序列2CASE条件表达式N命令行序列NOTHERWISE命令行序列N+1ENDCASE,14,【语句功能】该语句根据给出的N个条件表达式的值,选择N+1个命令行序列中的一个执行。当所有CASE中条件表达式的值都是假时,如果有OTHERWISE项,则执行命令行序列N+1,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。【例6-11】假设收入(P)与税率(R)的关系如下表,编程求税金。程序文件名为PROG11.PRG。0P800R=0.05800P20000.082000P50000.1P5000,15,SETTALKOFFCLEARINPUT“请输入收入:”TOPDOCASECASEP800R=0CASEP2000R=0.05CASEP5000R=0.08OTHERWISER=0.1ENDCASETAX=P*R?”税金为:”,TAXSETTALKON,16,四、循环结构,1DOWHILE循环语句【格式1】DOWHILEENDDO,17,【格式2】DOWHILELOOPEXITENDDO,LOOP语句:强行返回到循环开始语句。EXIT语句:强行跳出循环,接着执行ENDDO后的语句,18,【例6-12】编程求123100之和。程序文件名为PROG12.PRG。SETTALKOFFCLEARS=0I=1DOWHILEI=100S=S+II=I+1ENDDO?”123100”,SSETTALKON,19,【例6-13】逐条显示在STUDENT数据库的STUD表中性别为“男”的所有记录。程序文件名为PROG13.PRG。SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDDOWHILE.NOT.EOF()IF性别=”男”DISPLAYENDIFSKIPENDDOCLOSEDATABASEALLSETTALKON,20,【例6-14】编程显示STUDENT数据库的STUD表中除“孙业”以外的所有记录。程序文件名为PROG14.PRG。SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDDOWHILE.NOT.EOF()IF姓名=”孙业”SKIPLOOPENDIFDISPLAYSKIPENDDOCLOSEDATABASEALLSETTALKON,21,2FOR循环语句【格式】FOR=TOSTEPLOOPEXITENDFOR/NEXTFOR语句的执行流程如右图所示。,22,使用FOR循环语句的有关说明:省略STEP,则步长为默认值1;初值、终值和步长都可以是数值表达式,但这些表达式仅在循环语句开始执行时计算一次。循环语句执行过程中,初值、终值和步长是不会改变的,并由此确定循环的次数;EXIT和LOOP命令可以出现在循环体内。执行LOOP命令时,结束本次循环,循环变量增加一个步长值,返回FOR循环头判断循环条件是否成立。执行EXIT命令时,程序跳出循环,执行循环尾后面的语句。,23,3“指针”型循环控制语句“指针”型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数据。【语句格式】SCANFOR条件表达式命令行序列ENDSCAN【语句功能】该语句在指定的范围内,用数据记录指针来控制循环次数。执行语句时,首先判断函数EOF()的值,若其值为“真”,则结束循环,否则,结合(条件表达式),执行(命令行序列),记录指针移到指定的范围和条件内的下一条记录,重新判断函数EOF()的值,直到函数EOF()的值为真时结束循环。,24,【例6-18】输出STUDENT数据库的STUD表中所有男生的姓名和地址。程序文件名为PROG18.PRG。SETTALKOFFCLEARCLOSEDATABASEALLOPENDATABASESTUDENTUSESTUDSCANFOR性别=“男”?姓名,地址ENDSCANCLOSEDATABASEALLSETTALKON,25,4使用循环语句时应注意的几点(1)DOWHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必须配对使用。(2)循环变量应是数值型的内存变量或数组元素。(3)EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的第一条命令;LOOP的功能是转回到循环的开始处,重新对“条件”进行判断。,26,第三节过程的模块化,VFP模块化在具体实现上提供三种形式,它们是子程序、过程和函数。一子程序子程序也叫外部过程,是以程序文件(.PRG)的形式单独存储在磁盘上。子程序的结构与一般的程序文件一样,可以用MODIFYCOMMAND命令来建立、修改、和存盘,扩展名也默认为.PRG。子程序与其他程序文件的唯一区别是其末尾或返回处必须有返回语句RETURN。子程序的调用:DO,27,二、过程(内部),内部过程:把多个过程组织在一个文件中(这个文件称之为过程文件),或者把过程放在调用它的程序文件的末尾。过程文件格式为:PROCEDUREPARAMETERRETURN过程有两种存放方式:(1)把所有的过程集中写入一个被称为过程文件(.prg文件)的磁盘文件中(2)直接把过程写在调用它的主程序文件中,主程序被打开时,过程同时被调入内存(调用时可节省时间)。(3)如果缺省RETURN,则在过程尾部自动执行一条隐含的RETURN命令,若不带则返回逻辑值.T.。,28,【例6-22】建立如下程序文件,过程放在程序文件中。*MAIN.PRGSETTALKOFF?”正在执行主程序”DOSUB1SETTALKONProcedureSUB1?”正在执行SUB1”RETURN,29,三、过程文件的建立,过程文件的建立方法与程序文件相同。可用MODIFYCOMMAND命令或调用其他文字编辑软件来建立。过程文件的结构一般为:PROCEDURERETURNPROCEDURERETURNPROCEDURERETURN,30,1过程文件的调用调用某过程文件中的过程时,必须先打开该过程文件,打开过程文件命令为:【格式】SETPROCEDURETO任何时候系统只能打开一个过程文件,当打开一个新的过程文件时,原已打开的过程文件自动关闭。调用过程文件DOWITH参数表2过程文件的关闭关闭过程文件可用下列命令:【格式一】SETPROCEDURETO【格式二】CLOSEPROCEDURE,31,参数传递,当用主程序调过程时,可以将主程序中的参数传递给过程,在过程中经过处理后再返回到主程序。调用程序的格式:格式1:DOWITH,格式2:,实参可以是常量、变量或表达式。调用程序时将发送实参。接收参数命令:PARAMETERS,此时形参为私有变量。LPARAMETERS,此时形参为局部变量。,32,规则:(1)当实参数量大于形参数量时,系统将提示出错。(2)当实参数量等于形参数量时,实、形参数一一对应发、接参数。(3)当实参数量小于形参数量时,多余的形参将被赋值为逻辑假F。参数的两种传递方式:(1)按值传递。形参变量值的改变不会影响实参变量的值。(2)按地址(引用)传递。形参变量值的改变时,实参变量也随之改变。两种方式的设置命令:SETUDFPARMSTOVALUEREFERENCE,按值传递,按地址,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 蒸汽包安全知识培训总结课件
- 2025年安全员C证考试题库(含答案)
- 小班常识教学题目及答案
- 线段的判断题目及答案
- 显著性检验题目及答案
- 沧州十四中一模考试题及答案
- 物业保安证试题及答案
- 2025年4月中药药剂学模拟考试题与参考答案
- 2025年化工自动化控制仪表考试试题题库
- 2025年超细铜粉项目建议书
- 神经外科手术机器人辅助脑干出血穿刺引流术专家共识解读
- 2025年吴忠市公安局招聘警务辅助人员招聘考试笔试试题(含答案)
- 代建工作管理办法
- 《剪映短视频剪辑+即梦AI从入门到精通》AI短视频生成与剪辑全套教学课件
- 民建支部管理办法
- 2025年院感知识理论考试题库及答案
- 科技伦理审查管理办法
- 中学教学常规管理汇报
- 胸部损伤外科诊疗体系
- 土石方工程计量计价课件
- 第27课 中国特色社会主义的开创与发展 课件 中外历史纲要(上)
评论
0/150
提交评论