结构化程序设计讲义.pptx
《结构化程序设计讲义.pptx》由会员分享,可在线阅读,更多相关《结构化程序设计讲义.pptx(71页珍藏版)》请在课桌文档上搜索。
1、2023年4月27日星期四,1,结构化程序设计讲义,本章要求:1.掌握VFP程序的建立、修改、运行。2.掌握程序的三种基本结构。3.了解过程和过程文件。本章要点:程序的三种控制结构。学时安排:6学时(理论)+6学时(实践),课程要求,结束,作业,第8章 程序设计基础,8.1 程序文件及其编辑环境 8.2 程序中几种常用命令 8.3 程序的基本控制结构 8.4 过程和用户自定义函数,8.1 程序文件及其编辑环境,在Viusal FoxPro中,程序是由一系列Viusal FoxPro可以理解的命令、函数和操作组成的,这些命令和函数可以在Viusal FoxPro中的命令窗口和以人工方式逐一执行,
2、也可以把它们放在一个程序文件中,以文件的形式来执行。【8.1】假定学号的前四位为入学年份,第5,6位为专业代码.编写命令文件test.prg,分别统计所有学生和2010年入学,专业代码为03的学生选修课程号为101课程的平均成绩.,SET TALK OFFSET DEFAULT TO d:学生管理OPEN DATA 学生管理SELECT AVG(成绩)FROM 成绩 WHERE;课程号=“101”INTO ARRAY m1SELECT AVG(成绩)FROM 成绩 WHERE;课程号=“101”AND LEFT(学号,4)=“2010”;AND SUBS(学号,5,2)=“03”INTO AR
3、RAY m2CLEAR?”所有学生的平均成绩:”font“宋体”,20,m1(1)font“宋体”?”指定学生的平均成绩:”font“宋体”,20,m2(1),font“宋体”CLOSE DATASESET TALK ONRETURN,(1)以命令方式建立、修改程序文件,Modify Command,格式:,功能:,创建、编辑以“程序文件名”为名的程序文件,说明:,1.在编辑窗口输入一条条命令。2.w或关闭窗口存盘、q或者放弃存盘3.程序文件的扩展名为.prg,可以省略。,(2)以菜单方式建立、修改程序文件,文件,新建,文件,打开,已有的程序文件,.prg,8.1.1 程序文件的建立和运行,1
4、程序文件的建立,(2)命令方式,(1)菜单方式,程序,运行,Do,格式:,功能:,运行程序文件,程序文件建立后,可以用多种方式、多次执行它。下面是两种常用的方式。,选中,运行,2.程序文件的运行、调用,8.1.2 Visual FoxPro编程特点,1.变量不区分大小写,建议的变量命名约定,2.变量不需预先声明,当把一个值保存到某一变量而该变量原先不存在时,Visual FoxPro系统会隐含地声明它,并有初始值存在。用户在变量里放什么数据,变量就是什么类型。,3.命令分行,程序中每条命令都以回车键结尾,一行只能写一条命令。若需分行书写,可以使用分号“;”表示续行。,4.添加注释,Visual
5、 FoxPro 系统对整行注释和行中部分注释有不同的格式。整行注释使用“*”引导,行中部分注释使用“&”引导。,8.2 程序中几种常用命令,8.2.1 基本输入命令,1.Wait命令,暂停程序的运行,直到用户输入一个字符,也可用于输出一条提示信息WAIT TO WINDOW AT,NOWAIT CLEAR NOCLEAR TIMEOUT,保存键入的字符,省略TO子句不保存,省略则显示“按任意键继续.,不等待用户输入,关闭提示窗口,不关闭提示窗口,直到下一个WAIT命令自动关闭,WINDOW子句使屏幕出现一个WAIT提示窗口,内容由确定,位置有AT子句指定.省略AT子句则出现在屏幕右上角,TIM
6、EOUT子句设定等待时间(以秒为单位),说明:若指定WINDOWS子句,则会出现一个WAIT提示窗口,用以显示提示信息.提示窗口在主窗口的右上角,也可以用AT短语指定其在主窗口中的位置.若同时选用NOWAIT短语和WINDOWS子句,系统将不等待用户按键,直接往下执行.若选用NOCLEAR短语,则不关闭提示窗口,直到用户执行下一条WAIT WINDOWS命令或WAIT CLEAR命令为止.TIMEOUT子名用来设定等待时间(秒数)。,例如执行:Wait“欢迎使用!”Windows,在屏幕右上角弹出一个窗口,显示“欢迎使用!”,按任意键后窗口消失。,2.Accept命令,Accept To,格式
7、:,功能:,在程序执行过程中,暂停执行,等待用户从键盘输入字符串。当用户以回车键结束输入完数据后,系统将用户输入的内容作为字符串赋值给指定内存变量。然后继续往下执行程序。,说明:,(1)如果选用提示信息,系统会在屏幕上显示提示信息;(2)输入的数据只能是字符型数据,并且不用定界符;(3)如果用户什么数据都不输,就按下回车键,系统认为是输入了一个空串,自动会把空串赋给指定的内存变量中。,【例8.2】编程从键盘输入某数据库的文件名,要求打开该数据库并显示其内容.程序文件名为 PROG1.PRG。SET TALK OFFSte default to d:学生管理CLEARACCEPT 请输入数据库名
8、:TO AAAOPEN DATABASE&AAAACCEPT 请输入表名:TO BBBUSE&BBBbrowseUSESET TALK ONRETURN,Do prog1请输入数据库名:学生管理请输入表名:学生,Use 人才档案 Exclusive Accept 请输入编号:To bh Locate For 编号=bh?编号,姓名 Use,set default to d:人才管理 open data 人才管理 Accept 请输入职称:to zc select*from 专业特长;where 职称=zc,【例8.3】输入姓名,在人才档案表中查询某编号对应的姓名,【例8.4】编写程序,浏览专业
9、特长表中不同职称的记录集。,Do 8.4请输入职称:教授,Do 8.3请输入编号:sh01001Sh01001 金银桥,输入字符串时不加定界符,3.Input命令,Input To,格式:,功能:,(1)如果选用,那么系统会首先显示该提示信息的值,作为提示信息。(2)输入的数据可以是常量、变量,也可以是一般的表达式。但不能不输入任何内容直接按回车键。(3)输入字符串是必须加定界符“”,输入逻辑型常量要用圆点定界符(如.T.,.F.),输入日期时间型常量是要用大括号(如 2012-03-01)。,说明:,等待用户从键盘输入数据,用户可以输入任意合法的表达式。当以回车键结束输入时,系统将表达式的值
10、存入指定的内存变量,程序继续运行。,【例8.5】编写命令文件test1.prg,查找指定日期 以后出生的学生 SET DEFAULT TO d:学生管理OPEN DATABASE 学生管理INPUT 输入日期:TO mrqSELECT 学号,姓名,出生日期 FROM 学生;WHERE 出生日期 mrq;NOWAITCLOSE DATABASERETURN,Do test1输入日期:1993-01-01,ClearInput“长方形一边的长为:”TO AInput“长方形另一边的长为:”TO BS=A*B?长方形的面积为:,S,【例8.6】从键盘输入两个任意正数,编程求以两数为边长的长方形面积。
11、程序文件名为8.6.prg,在命令窗口中输入:Modify Command 8.6,Do 8.6长方形一边的长为:5长方形另一边的长为:6运行结果:长方形的面积为:30,屏幕显示,键盘输入,Set default to d:人才管理Input 请输入要删除的人的出生日期:to CsrqDelete from 人才档案 where 出生日期=CsrqSelect 人才档案 BrowClose data,【例8.7】编写程序,将人才档案表中指定的出生日期的记录逻辑删除。,请输入要删除的人的出生日期:1969-02-03,4.格式输入语句,格式:,Say get Say get.Read,功能:,在
12、指定的行、列位置输入一个常量,当执行到Read语句时,将常量赋值给指定的变量。,说明:,1、多个语句可以配置一个Read语句。但是中间不能有别的语句。2、Get后面的变量要先赋值。,ClearSet default to d:人才管理Use 专业特长 ExclusiveAccept 请输入职称:to zcLocate All For 职称=zc2,10 Say 编号 Get 编号 3,10 Say 专业 Get 专业4,10 Say 毕业学校 Get 毕业学校5,10 Say 专业年限 Get 专业年限6,10 Say“职称”Get 职称ReadClose data,【例8.8】编写程序,在指
13、定的位置显示修改“专业特长”表中指定职称的记录。,Say Picture,格式:,功能:,(1)在指定的行、列输出表达式的值。(2)格式描述符用来限定数据输出的类型、长度及格式。,8.2.2 基本输出语句,1.格式输出语句,常用格式描述符的功能,Use 人才档案 Exclusive Accept 请输入编号:to bh Locat For 编号=bh 13,20 Say 编号 Picture!14,20 Say 姓名 Picture xxxxxxxxx Use,【例8.9】输入编号,在人才档案表中查询某编号对应的姓名。,字符转换成大写,任意字符,x1=Messagebox(您真的要退出系统吗?
14、,4+16+0,退出系统)If x1=6 ReturnEndif,Messagebox(,),格式:,功能:,在屏幕上弹出一个指定格式的对话框。,说明:,对话框类型是由“按钮个数+显示图标+默认按钮”组成。,提示信息,对话框标题,提示信息,对话框标题,对话框类型,按钮个数,显示图标,默认按钮,2.对话框MessageBox函数,P67,按钮个数代码,显示图标代码,默认焦点按钮的代码,单击对话框按钮的返回值,4+16+0,单击“否”,返回7,返回值送到x1,如果x1=“是”,返回系统,单击“是”,返回6,8.2.3 程序结尾命令,1、程序的末尾可以使用Return命令,能使程序执行结束,并返回到
15、调用它的上级程序继续执行,若无上级程序则返回到命令窗口。2、使用另一条命令为Cancel,它可以中止程序运行,并返回到命令窗口。3、使用Quit命令可以结束程序运行退出Visual FoxPro系统,8.3 程序的基本控制结构,常见的控制结构如下:1顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。Visual FoxPro系统中的大多数命令都可以作为顺序结构中的语句。2分支结构 分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3循环结构 循环结构则能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个
16、固定的位置上重复操作,使用循环是最好的选择。,8.3.1 顺序结构,顺序结构是一种线性结构。是程序设计中最简单同时也是最基本的结构。它要求顺序地执行每一个基本的加工处理单位。,【例8.10】计算圆的周长和面积。,ClearInput 请输入圆的半径:To r&输入半径c=2*3.14*r&计算圆的周长s=3.14*r*r&计算圆的面积?圆的周长:,c&输出周长?“圆的面积:”,s&输出面积Return,8.3 程序的基本控制结构,分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句。,If EndIf,格式:,功能:,首先计算条件表达式的值,当条件表达式的值为真时,执行语句序列;否则
17、,执行EndIf后面的第一条语句。,1.简单的条件语句,8.3.2 条件分支结构,ClearInput X=TO xInput Y=TO yIf x/3=Int(x/3)y=y+xEndIf?Y=,y,【例8.11】编写程序:先从键盘接收两个数x和y,然后判断x能否被3整除。如果x能被3整除,那么y的值增加x;否则y的值不变。,If mod(X,3)=0,【例8.12】编写程序:修改“专业特长”表中的数据,把编号为“zj01002”的职称从“副教授”改为“教授”。,ClearUse 专业特长 ExclusiveLocate For 编号=zj01002 If 职称=副教授 Replace 职称
18、 With 教授 EndIfBrowse Last,2.带Else的条件语句,If条件表达式 语句序列1 Else 语句序列2 EndIf,格式:,功能:,该语句首先计算条件表达式的值,当条件表达式的值为真时,执行语句序列1中的命令;否则,执行语句序列2中的命令;执行完命令行序列1或命令行序列2后都将执行EndIf后面的第一条语句。,【例8.13】输入一个姓名,在“学生”表中查找该姓名的学生,如果找到,显示该记录的姓名、性别和出生日期,否则显示“查无此人!”,程序名为test2.prg,SET DEFAULT TO d:学生管理OPEN DATABASE 学生管理USE 学生 IN 0SELE
19、CT 学生ACCEPT“请输入待查学生姓名:”TO NAMELOCATE FOR 姓名=NAMEIF EOF()=.F.?”姓名:”+姓名 FONT“宋体”,20?”性别:”+IIF(性别=.t.,“男”,”女”)FONT“宋体”,20?”出生日期:”+DTOC(出生日期,1)FONT“宋体”,20ELSE?”查无此人!”FONT“宋体”,20ENDIFCLOSE DATABASERETURN,messagebox(“查无此人!”,0+48+0,”例8.13”),语句执行时,依次判断Case后面的条件是否成立。当发现某个Case后面的条件成立时,就执行该Case和下一个Case之间的语句序列,
20、然后执行EndCase后面的语句令。如果所有的条件都不成立,则执行Otherwise与EndCase之间的语句序列,然后转向EndCase后面的语句。,3.多分支语句,Do Case Case条件表达式1 语句序列1 Case条件表达式2 语句序列2 Case条件表达式N 语句序列N Otherwise 语句序列N+1 EndCase,格式:,功能:,不管有几个Case条件成立,只有最先成立的那个Case条件的对应命令序列被执行。如果所有的Case条件都不成立,且没有Otherwise子句,则直接跳出本结构。Do Case 和 EndCase必须配对使用,Do Case 是本结构的入口,End
21、Case是本结构的出口。Do Case和第一个Case子句之间不能插入任何命令。,说明:,Do Case Case条件表达式1 命令行序列1 Case条件表达式2 命令行序列2 Case条件表达式N 命令行序列N Otherwise 命令行序列N+1 EndCase,Input 请输入考试成绩:To x Do Case Case x60?不及格 Case x70?及格 Case x80?中等 Case x90?良好 Otherwise?优秀EndCase,【例8.13】显示当前季节。程序文件如下。,ClearYue=Month(Date()Do Case Case yue4 jj=春 Case
22、 yue7 jj=夏 Case yue10 jj=秋 Otherwise jj=冬EndcaseWait jj Window,从今天的日期里取出月份送到yue,测试表达式的值是否在表达式中,是就返回.T.,【例8.14】假设收入(P)与税率(R)的关系如下表,编程求税金。,0 P 3500R=0.05 3500 P 4500 0.08 4500P 6500 0.1 P6500,ClearInput 请输入收入:To PDo CaseCase P=3500 R=0Case P=4500 R=0.05Case P=6500 R=0.08Otherwise R=0.1EndCaseTax=(p-35
23、00)*r?税金为:+Str(tax),【例8.15】输入一个字符“男”或者“女”到变量“性别”中,再输入一个数值到变量“身高”中。计算:如果性别=“男”并且身高又在180以上,输出“参加篮球比赛”,否则输出“参加足球比赛”。如果性别为“女”并且身高在170以上输出“参加模特大赛”,否则输出“参加健美操比赛”。,Acce 请输入你的性别:To 性别Input 请输入你的身高:To 身高If 性别=男 Do Case Case 身高=180?参加篮球比赛!Case 身高 180?参加足球比赛!EndCaseElse,Do Case Case 身高=170?参加模特比赛!Case 身高 170?参
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 程序设计 讲义

链接地址:https://www.desk33.com/p-363199.html