程序设计 课件第7章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《程序设计 课件第7章.ppt》由会员分享,可在线阅读,更多相关《程序设计 课件第7章.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章程序设计基础程序设计基础n掌握程序文件的概念及创建方法n熟悉简单的交互式输入输出命令的使用n熟悉应用程序的调试与执行方法n掌握顺序、选择和循环这三种结构的程序设计方法n掌握过程与过程调用的方法基本要求与基本知识点基本要求与基本知识点教学重点与难点教学重点与难点n程序文件的建立及修改n简单的交互式输入输出命令n程序设计的三种基本结构:顺序、选择和循环结构n变量的类别及作用域n过程调用的方式及调用中参数的传递主要介绍面向过程设计中用到的顺序语句、分支主要介绍面向过程设计中用到的顺序语句、分支结构、循环结构等语句的使用及格式,用其组成结构、循环结构等语句的使用及格式,用其组成应用程序,完成
2、一定的程序功能。应用程序,完成一定的程序功能。程序是能够完成一定任务的命令的有序集合。程序是能够完成一定任务的命令的有序集合。程序的特点:程序的特点:1.1.程序控制流模式,由顺序、选择、循环三种基程序控制流模式,由顺序、选择、循环三种基本结构构成,每一个基本结构可以包含一条或多本结构构成,每一个基本结构可以包含一条或多条语句。条语句。2.2.面向对象可视化的结构程序模块,每个模块也面向对象可视化的结构程序模块,每个模块也是由程序控制流组成的。是由程序控制流组成的。7.1程序与程序文件程序与程序文件1)命令注释:提高程序的可读性命令注释:提高程序的可读性以以note或或*开头的代码行为注释行,
3、在命令开头的代码行为注释行,在命令行后也可以加上注释,该注释以行后也可以加上注释,该注释以&符号开头符号开头标识标识2)命令分行:用)命令分行:用分号分号完成行的延续完成行的延续3)是否显示命令的执行结果)是否显示命令的执行结果用用settalkon|off完成设置完成设置4)4)VisualFoxPro命令或语句中的关键字在一般情命令或语句中的关键字在一般情况下只输入前况下只输入前4个字符就有效。个字符就有效。程序编写时注意的问题程序编写时注意的问题1.建立:建立:项目管理器项目管理器“文件文件”“新建新建”“程序程序”modifycommand或用菜单方式或用菜单方式在程序编辑窗口中编辑程
4、序代码在程序编辑窗口中编辑程序代码存盘退出:存盘退出:Ctrl+W或或Ctrl+End或按或按“关闭关闭”按按钮钮取消当前编辑的代码:取消当前编辑的代码:Ctrl+Esc源程序文件的扩展名为源程序文件的扩展名为.prg,执行程序时会自动执行程序时会自动编译,生成与源文件主文件名相同、扩展名为编译,生成与源文件主文件名相同、扩展名为.fxp的文件。的文件。7.1.2建立、修改与执行程序建立、修改与执行程序说明说明:1)1)是是要要建建立立或或修修改改的的文文件件名名。若若省省略略文件名,则打开名为文件名,则打开名为“程序程序1”的程序编辑窗口。的程序编辑窗口。2)系统默认扩展名为系统默认扩展名为
5、.prg。3)在在中中可可含含通通配配符符“*”和和“?”,这这时时与与之之相相匹匹配配的的每每个个文文件件会会出出现现在在不不同同的的编编辑辑窗窗口口中。中。4)如如使使用用“?”,则则显显示示“打打开开”对对话话框框,用用户户可可在在此此框框中中输输入入要要建建立立的的新新的的程程序序文文件件或或选选择择已已存存在在的程序文件。的程序文件。5)如如使使用用NOEDIT选选项项,则则将将此此程程序序设设置置为为只只读读,可以查看或将其复制到剪贴板,但不能修改。可以查看或将其复制到剪贴板,但不能修改。do程序名程序名或程序菜单中的或程序菜单中的doprogram说说明明:当当执执行行程程序序文
6、文件件时时,文文件件中中包包含含的的命命令令、语语句句将将被被依依次次执执行行,直直到到所所有有的的命命令令、语语句句被被执执行行完完毕毕,或者执行到以下命令为止:或者执行到以下命令为止:CANCEL终终止止程程序序运运行行,清清除除所所有有的的程程序序中中设设置的变量,返回命令窗口。置的变量,返回命令窗口。2.运行运行DO转去执行另一程序,然后返回本程序转去执行另一程序,然后返回本程序。RETURN结结束束当当前前程程序序的的执执行行,返返回回到到调调用用它的上一级程序,若无上级程序则返回到命令窗口它的上一级程序,若无上级程序则返回到命令窗口。QUIT退出退出VFP系统,返回到操作系统系统,
7、返回到操作系统。当当用用DO命命令令执执行行程程序序文文件件时时,如如果果没没有有指指定定文文件件的的扩扩展展名名,系系统统将将按按下下列列顺顺序序:VisualFoxPro执执行行文文件件(扩扩展展名名为为.exe)、VisualFoxPro应应用用程程序序文文件件(扩扩展展名名为为.app)、编编译译文文件件(扩扩展展名名为为.fxp)、源源程程序序文文件件(扩扩展展名名为为.prg)。3.修改程序:修改程序:同建立的方法同建立的方法1.accept命令命令接受用户输入的信息,作为字符串赋给相应的变量,不接受用户输入的信息,作为字符串赋给相应的变量,不须另加定界符,否则作为字符串内容。须另
8、加定界符,否则作为字符串内容。格式:格式:acceptto例如:例如:accept“请输入学生姓名:请输入学生姓名:”toxmaccept“请输入文件名:请输入文件名:”tofilenameuse&filename注意:不输入直接回车,变量内容为空串。注意:不输入直接回车,变量内容为空串。7.1.3基本的输入输出命令WAIT TO WINDOW AT,TIMEOUT 接受单个字符,一般用于等待用户键入某一字符信息接受单个字符,一般用于等待用户键入某一字符信息例如:例如:wait说明说明:1)若若无无选选项项,显显示示默默认认提提示示“按按任任意意键键继继续续”,等待用户按任意键或单击鼠标。,等
9、待用户按任意键或单击鼠标。2.wait命令命令2)若包含若包含TO项,则将键盘的输入以字符形式存项,则将键盘的输入以字符形式存入所指定的内存变量。如输入的是回车键、不可打印的字符、入所指定的内存变量。如输入的是回车键、不可打印的字符、组合键或单击鼠标,则将一个空串保存在内存变量中。组合键或单击鼠标,则将一个空串保存在内存变量中。若若包包含含WINDOW选选项项,则则将将显显示示在在VisualFoxPro主窗口右上角的系统消息窗口中。主窗口右上角的系统消息窗口中。若若包包含含AT,选选项项,则则在在主主窗窗口口中中指指定消息窗口的位置。定消息窗口的位置。TIMEOUT选选项项必必须须是是命命令
10、令中中的的最最后后一一个个子子句句,用用于于规规定定等等待待键键盘盘输输入入的的时时间间限限制制,可可为为小小数数。一旦超时就不再等待用户按键,程序自动往下执行。一旦超时就不再等待用户按键,程序自动往下执行。例例:?欢迎使用欢迎使用Visual FoxPro!WAIT?Visual FoxPro!WAIT WINDOW?FoxPro!CANCEL接受用户输入的各类表达式的值,赋给相应的变量,可以接受接受用户输入的各类表达式的值,赋给相应的变量,可以接受C、D、N、L型数据,型数据,C、D、L型输入时要加上定界符型输入时要加上定界符格式:格式:inputto说明说明:1)可可以以是是字字符符型型
11、变变量量,也也可可以以是是字字符符串串,如如果果是是字符串,必须用单引号、双引号或方括号括起。字符串,必须用单引号、双引号或方括号括起。2)输输入入的的数数据据可可以以是是常常量量、变变量量,也也可可以以为为一一般般的的表表达达式式。表表达达式式可可以以是是数数值值型型、字字符符型型、逻逻辑辑型型或或日日期期型型。但但不不能能不不输输入入任何内容直接按回车键。任何内容直接按回车键。3.input命令命令3)的数据类型由从键盘上所输入的表达式的类型的数据类型由从键盘上所输入的表达式的类型所决定。输入字符串时必须加定界符,输入逻辑型常量时要用所决定。输入字符串时必须加定界符,输入逻辑型常量时要用圆
12、点定界,如圆点定界,如.T.、.F.,输入日期时间型常量时要用大括号输入日期时间型常量时要用大括号例如:例如:input“请输入学生姓名:请输入学生姓名:”toxm输入时:输入时:“李昆李昆”input“请输入学生总分:请输入学生总分:”toZF输入时:输入时:560input“继续输入吗?(继续输入吗?(Y/N):):”toconfirm输入时:输入时:.Y.或或.N.或或.T.或或.F.格式化输入命令格式化输入命令say表达式表达式GET READ【功功能能】在在指指定定的的位位置置显显示示提提示示信信息息并并允允许许输输入入一一个个常常量量,当当执执行行READ时时将将常常量量赋赋给给指
13、指定的变量。定的变量。【说说明明】命命令令中中的的可可以以是是内内存存变变量量和和字字段段变量。变量。4.定位输出命令定位输出命令格式化格式化输输出出语语句。句。【格格式式】SAY PICTURE 【功能】【功能】在指定的在指定的,按指定的格式,按指定的格式输输出出。【说说明明】用用来来限限定定数数据据输输出出的的类类型型、长长度度及及格格式。式。表表7.1给出常用格式描述符的含给出常用格式描述符的含义义。【例】CLEARxm=USE d:ssstud10,10 SAY请输入姓名:请输入姓名:GET xmREADxm=ALLTRIM(xm)LOCATE FOR 姓名姓名=xm13,10 SAY
14、 学号学号PICTURE xxxxxxx13,18 SAY 学号学号PICTURE99999999914,10 SAY 姓名姓名 PICTURExxxxxxx14,18 SAY 姓名姓名 PICTURExxxxxxxCANCEL顺序结构顺序结构:自上而下的执行方向自上而下的执行方向例:打开学生表,查询姓名为所输入的姓名值的记录,并显示例:打开学生表,查询姓名为所输入的姓名值的记录,并显示7.2.1分支结构程序设计分支结构程序设计根据条件的成立与否,决定程序的走向。根据条件的成立与否,决定程序的走向。1.单分支结构:单分支结构:ifEndif注:条件表达式为关系表达式、逻辑表达式或产生注:条件表
15、达式为关系表达式、逻辑表达式或产生逻辑结果值的函数等。逻辑结果值的函数等。7.2结构化程序设计结构化程序设计A=10If a=10 s=0EndifS=1?sInput to aIf a=0 if a0 s=0 else s=1 endifElse s=-1EndifS=1?s程序运行后的结果分别是什么程序运行后的结果分别是什么?ifelseEndif3.if语句可以嵌套语句可以嵌套IfifelseEndifelseendif条件语句序列1语句序列2ENDIF后的其他语句YN例子USE e:zwssstudAccept “请输入姓名”to xmLocate for 姓名=xmIf found(
16、)dispElse?”没有此学生”endif2.双分支结构双分支结构【例】在stud表中,查找姓名为“牛耕耘”的记录,如果找到,给该记录加上删除标记,没有找到则显示提示信息“查无此人”。Open Database e:zwssstudentUse studLocate For 姓名=牛耕耘If.Not.Eof()DeleteElse2,30 Say 查无此人EndIfBrowseClose DatabaseReturnDocasecase.caseotherwiseEndcase例:根据学生成绩表中的例:根据学生成绩表中的成绩信息输出其成绩等级。成绩信息输出其成绩等级。90分以上为优秀分以上为
17、优秀80分以上为良好分以上为良好Do case条件1条件2条件n语句序列语句序列n+1endcase语句序列语句序列1语句序列语句序列2语句序列语句序列nYYY4.多分支结构多分支结构【例例】设设计计程程序序,输输入入任任意意一一个个百百分分制制成成绩绩,按按优优秀秀、良良好好、及及格格和和不不及及格格四四个个等等级级输输出出结结果果。具具体体为为:0至至59分分为为不不及及格格,60至至74分为及格,分为及格,75至至89分为良好,分为良好,90至至100分为优秀。分为优秀。CLEARINPUT 请输入成绩请输入成绩(1100):TO fsDO CASECASE fs100 .OR.fs89
18、?优秀优秀CASE fs74?良好良好CASE fs59?及格及格OTHERWISE?不及格不及格ENDCASECANCEL 完成重复操作的程序结构。完成重复操作的程序结构。设计循环时,需设计循环变量的初始值、循环的入口设计循环时,需设计循环变量的初始值、循环的入口条件、循环的出口条件。条件、循环的出口条件。7.2.2 循环结构1.当型循环当型循环当条件满足时执行循环体当条件满足时执行循环体dowhileloopexitenddoLoop:强制进入下次循环,后面强制进入下次循环,后面的循环体不执行的循环体不执行Exit:强制退出循环强制退出循环语句行序列1条件表达式1语句行序列2条件表达式2语
19、句行序列3loopexit循环条件NYYYN7.2.2 循环结构循循环环体体Set talk offS=0I=1Input“n=?”to nDo while s10&假设表中有单价字段假设表中有单价字段 a=a+1 EndifSKIPENDDO?aUSEDime k(2,3)I=1ClearDo while I=2 j=1 do while j=3k(I,j)=I*j?k(I,j)j=j+1 enddo I=I+1?enddo 123246【例例】按按姓姓名名对对stud表表进进行行查查询询,要要求求所所查查人人员员不不存存在在时时有有提示信息。提示信息。Open Database d:sss
20、tudentUse studClearDo While .t.Accept 请输入所查询人员的姓名:请输入所查询人员的姓名:To xmLocate For 姓名姓名=xmIf .Not.Eof()DispElse?查无此人查无此人!EndIfWait 继续查询吗继续查询吗?(YN)TO jxIf jx Y .And.jx yExitEndIfEndDoClose DatabaseCancel 等价于Ucase(jx)Y将表中工龄将表中工龄20的每人增加的每人增加60元,工龄元,工龄20年的每人增年的每人增加加100元,请将程序补充完整。元,请将程序补充完整。Set talk offUse ge
21、qkDo while _ if 工龄工龄20 replace 工资工资 with 工资工资+60 else replace 工资工资 with 工资工资+100 endif _EnddouseSet talk on returnFor=tosteploopexitEndfor/next功能功能:先将先将赋给赋给,并记住并记住和和,然后按,然后按变化的方向,用变化的方向,用的值与的值与比较,如比较,如的值超过的值超过,则跳出,则跳出循环,执行循环,执行EndForNext的后续语句;否则执行循环体语句,当执行的后续语句;否则执行循环体语句,当执行到到EndForNext时,时,的值与的值与相加后
22、,重新返回相加后,重新返回for语句与语句与比较,直到比较,直到的值超过的值超过为止。为止。2.固定次数的循环结构固定次数的循环结构初值循环变量循环体循环变量+步长值循环变量.F.T.循环变量终值说明说明:如果省略如果省略Step 项,则项,则默认为默认为1。、和和均为数值型表达式。均为数值型表达式。Exit与与Loop命命令令同同样样可可以以出出现现在在循循环环语语句句的的循循环环体体内内。循循环环体体中中可可包包含含VisualFoxPro的任何语句,如有循环语句,则为循环的嵌套。的任何语句,如有循环语句,则为循环的嵌套。如如为为正正,为为递递增增循循环环,超超过过的的意意思思是是比比大大
23、;如如为负,则为递减循环,超过为负,则为递减循环,超过的意思是比的意思是比小。小。clearForI=15to5step3ifI%3=0I=I-1endifI=I-2?IEndfor最后I的值为多少?循环了多少次?例:计算自然对数例:计算自然对数e的近似值(的近似值(n为为20)e=1+1/1!+1/2!+1/n!store1tot,eforI=1to20t=t*Ie=e+1/tendfor例:请填空完成计算例:请填空完成计算p=1+1/(2X2)+1/(3X3)+1/(10X10)的程序。的程序。p=0n=1dowhile_p=p+1/(n*n)_enddo?preturn【例例】设设计计程
24、程序序,对对stud表表进进行行操操作作,逐逐条条输输出出1988年年出出生生的学生信息。的学生信息。Open Database d:ssstudentUse d:ss studClearCount FOR YEAR(出生日期出生日期)=1988 To csLocate for Year(出生日期出生日期)=1988*Go TopFor i=1 To csDisplayWait Window TimeOut 2ContinueEndForClose DatabaseCancel【例例】设设计计程程序序,对对stud表表进进行行操操作作,逐逐条条输输出出1988年年出出生生的学生信息。的学生信息
25、。Open Database d:ssstudentUse d:ss studClearLocate for Year(出生日期出生日期)=1988Do while not eof()DisplayWait Window TimeOut 2ContinueEndDoClose DatabaseCancel【例】在屏幕上显示九九乘法表。【例】在屏幕上显示九九乘法表。Set talk offClearFor j=1 to 9?str(j,2)+)for k=1 to j?str(j*k,6)endfor?Endforreturn例:任意输入一个数,判断是否素数并输出相应结果。例:任意输入一个数,判
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 课件第7章 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内