1、 结构化程序设计1谢谢观赏2019-6-17 6.1.1 基本概念1 1程序程序 能够完成特定任务的命令序列,存储在命令文件(.PRG)中。运行该文件可自动执行一系列操作。2 2结构化程序设计结构化程序设计 用结构化编程语句来编写程序。3 3程序的基本结构程序的基本结构(1)说明部分:一般是一组注释语句。(2)初始化部分:设置程序运行时的系统状态和参量初值。(3)程序主体部分:包括数据输入、处理和输出3个模块。(4)还原部分:将当前的工作环境恢复到执行该程序前的状态。(5)程序的退出:程序运行完毕,返回 VFP 应用程序窗口或退出VFP,返回操作系统。 2谢谢观赏2019-6-17 6.1.2
2、 程序文件的建立1 1项目管理器项目管理器 :选择 “程序”项,单击“新建”按钮,打开代码编辑窗口,输入程序内容。然后选择“文件|保存”命令将编写的代码存入磁盘。2. 2. 菜单:菜单:选择“文件|新建”,在“新建”对话框中选择“程序”文件类型,单击“新建文件”按钮,进入代码编辑窗口。3. 3. 命令:命令:MODIFY COMMAND MODIFY COMMAND 程序文件名程序文件名 输入命令语句时,必须一条命令占一行,一行写不下时,在行尾加续行符(;),换行后接着书写该命令语句。 3谢谢观赏2019-6-17命令序列注释语句4谢谢观赏2019-6-17 6.1.3 程序文件的修改对已建立
3、的程序文件可以重新进入代码编辑窗口修改内容。 1 1项目管理器:项目管理器:选中要修改的程序文件,单击“修改”按钮,重新打开代码编辑窗口。修改后,选择“文件|保存”命令,保存程序。2 2菜单:菜单:选择“文件|打开”命令,将要修改的程序文件调入代码编辑窗口。 3 3命令:命令:MODIFY COMMAND MODIFY COMMAND 程序文件名程序文件名5谢谢观赏2019-6-17 1 1项目管理器:项目管理器:选中要执行的程序文件, 单击“运行”按钮。2. 2. 菜单:菜单:选择“程序|运行”命令。3. 3. 命令命令:DO DO 程序文件名程序文件名 6.1.4 程序文件的执行6谢谢观赏
4、2019-6-17 6.2.1 基本命令l l注释命令注释命令 非执行语句,用于提高程序的可读性。非执行语句,用于提高程序的可读性。 NOTENOTE、* *(行首注释)、(行首注释)、&(行尾注释)(行尾注释) 命令格式命令格式1:NOTE 注释注释内容内容note not字符字符 命令格式命令格式2:* 注释内容注释内容注释字符注释字符 命令功能:对程序作注释,不执行任何操作。命令功能:对程序作注释,不执行任何操作。例如:例如: * *计算园的面积计算园的面积 r=5 &r=5 &园的半径为园的半径为5 5 s=3.14 s=3.14* *r r* *r r ?”s=“,s ?”s=“,s
5、7谢谢观赏2019-6-172文本显示命令文本显示命令 TEXT 文本内容文本内容 ENDTEXT功能:将文本内容功能:将文本内容 原样显示原样显示 注意注意文本内容文本内容 不用加定界符不用加定界符例如:例如: TEXT 西北师范大学一所重点大学西北师范大学一所重点大学 ENDTEXT8谢谢观赏2019-6-172. 2. 环境设置命令环境设置命令 set set 命令。命令。 set talk 命令命令 命令格式:命令格式:set talk on/offS 命令功能:在命令功能:在on状态下,在执行一些非显示命状态下,在执行一些非显示命令时,将把执行结果等信息送到显示器显示;在令时,将把执
6、行结果等信息送到显示器显示;在off状态下,屏幕上只显示命令要求输出的结果。状态下,屏幕上只显示命令要求输出的结果。 set printer命令命令 命令格式:命令格式: set printer on/offst printer off/on 命令功能:在命令功能:在on状态下,输出结果将传送到打状态下,输出结果将传送到打印机输出;在印机输出;在off状态下,关闭向打印机输出。状态下,关闭向打印机输出。9谢谢观赏2019-6-173、系统初始化命令、系统初始化命令 命令格式命令格式: clear all 命令功能:该命令关闭所用打开的库文件、表命令功能:该命令关闭所用打开的库文件、表文件及有关
7、文件,清除所有内存变量,清除所有用文件及有关文件,清除所有内存变量,清除所有用户自定义下拉菜单、弹出式菜单和窗口,选择户自定义下拉菜单、弹出式菜单和窗口,选择1号工号工作区为当前工作区。常用于应用程序主控模块的开作区为当前工作区。常用于应用程序主控模块的开头。头。4、 清屏命令清屏命令 命令格式:命令格式: CLEAR命令功能:清除命令功能:清除VFP主窗口或当前用户自定义窗口,主窗口或当前用户自定义窗口,常用于应用程序某模块的开头,或在各输出命令前常用于应用程序某模块的开头,或在各输出命令前使用。使用。10谢谢观赏2019-6-175. 5. 关闭文件命令:关闭文件命令: CLOSE ALL
8、CLOSE ALL (关闭所有文件)(关闭所有文件) CLOSE CLOSE 文件类型文件类型(关闭指定类型的(关闭指定类型的文件)文件)6. 6. 运行中断和结束命令运行中断和结束命令n CancelCancel 终止程序运行,返回命令窗口。终止程序运行,返回命令窗口。 n RETURNRETURN 结束当前程序的执行,返回到调用它结束当前程序的执行,返回到调用它的上级程序。的上级程序。n QUIT QUIT 关闭所有文件,退出关闭所有文件,退出 VFP VFP 系统,返回操系统,返回操作系统环境。作系统环境。11谢谢观赏2019-6-171 1基本输出命令:基本输出命令:?|? ?|? 表
9、达式表表达式表 功能:计算各表达式的值,并将功能:计算各表达式的值,并将 结果送到主窗口结果送到主窗口 注意注意 各表达式之间用逗号相隔各表达式之间用逗号相隔 例如:?例如:?“r=“,3+5r=“,3+5 6.2.2 输入/输出命令12谢谢观赏2019-6-172.2.键盘输入单字符键盘输入单字符命令:命令:WAIT 命令格式:命令格式: wait “提示信息提示信息” TO 内存变量内存变量功能:暂停程序的执行,并显示功能:暂停程序的执行,并显示“提示信息提示信息”,等待用户输,等待用户输入任何单个字符后再继续执行程序。入任何单个字符后再继续执行程序。注意注意 1“提示信息提示信息”可有可
10、无,如果有显示可有可无,如果有显示“提示信息提示信息”,如果无,则显示如果无,则显示“按任意键继续按任意键继续”。 2如果有如果有 “TO 内存变量内存变量”,则输入的字符将存人指,则输入的字符将存人指定的内存变量。定的内存变量。例如:例如: 1 wait 2 wait “请用户按任意键继续请用户按任意键继续” 3 wait “请用户按任意键继续请用户按任意键继续” to h ZH “提示信息提示信息” to wait “提示信息提示信息” to 13谢谢观赏2019-6-173键盘输入字符串语句键盘输入字符串语句 命令格式:命令格式:accept ”提示信息提示信息” to 内存变量内存变量
11、 功能:显示”提示信息提示信息” ,暂停程序的执行暂停程序的执行,等待用等待用户从键盘输入内容并存人内存变量户从键盘输入内容并存人内存变量. 注意注意此命令无论输入任何类型的数据此命令无论输入任何类型的数据,都作为字都作为字符型数据处理符型数据处理,输入字符型数据时不需要加定界符输入字符型数据时不需要加定界符.accept “提示信息提示信息” to 示例:示例:accept ”请输入姓名请输入姓名:” to xm14谢谢观赏2019-6-174键盘输入语句键盘输入语句 命令格式:命令格式:input “提示信息提示信息” to 内存变内存变量量 “ 功能:显示”提示信息提示信息” ,暂停程序
12、的执行暂停程序的执行,等等待用户从键盘输入内容并存人内存变量待用户从键盘输入内容并存人内存变量. 注意注意此命令可接受任何类型的数据此命令可接受任何类型的数据,输入字符输入字符型数据时定界符型数据时定界符,输入逻辑型数据时输入逻辑型数据时,用小圆点用小圆点,如如: .T.或或.F.。输入日期型数据时,要加大括号,如:。输入日期型数据时,要加大括号,如:2005-04-25能解放能解放 息息” to 示例:示例:input “请输入数据请输入数据” to z15谢谢观赏2019-6-175 5格式输入输出命令格式输入输出命令n格式格式1 1: 行号行号, ,列号列号 SAY SAY 表达式表达式
13、 功能:在主窗口指定的位置处显示表达式的值功能:在主窗口指定的位置处显示表达式的值n格式格式2 2: 行号行号, ,列号列号 SAY SAY 表达式表达式 GET GET 变量变量 READREAD 功能功能:在窗口指定位置处分别显示表达式和变量在窗口指定位置处分别显示表达式和变量的值。若使用的值。若使用READREAD语句,则可以对变量的值进行修语句,则可以对变量的值进行修改。改。 注意注意格式格式2,如果是内存变量如果是内存变量,必须要先赋值必须要先赋值,表表达式达式 如果为字符型的数据如果为字符型的数据, ,则要加定界符则要加定界符. .16谢谢观赏2019-6-17XM=“杨灵”2,1
14、0 SAY “姓名是:”3,10 SAY XMXB =男5,10 say “性别是:”7,10 say XBREAD17谢谢观赏2019-6-17 6.3 程序的基本控制结构 应用程序是用户为解决一个特定的问题而将有关的命令按一定的结构组成的序列.顺序结构、选择结构、循环结构是三种基本的控制结构。 在进行程序设计时,为了把解题的步骤清晰的表达出来,我们常常图形来描述流程图。它是用特定的图形符号和必要的文字来描述解题步骤。18谢谢观赏2019-6-17数据的输入输出框程序的开始与结束框计算与处理数据框 判断框连接线,并指出执行顺序19谢谢观赏2019-6-17ClearUse c:XJKLOCA
15、TE FOR 姓名姓名=“杨灵杨灵”DISPUSE开始清屏打开表查找显示关闭结束20谢谢观赏2019-6-17编写程序的步骤编写程序的步骤(1)明确题目要求解决什么问题)明确题目要求解决什么问题(2)明确输入什么数据,处理什么数据,)明确输入什么数据,处理什么数据, 输出什么数据。输出什么数据。(3)画出流程图)画出流程图(4)根据流程图编写程序)根据流程图编写程序(5)运行调试程序)运行调试程序21谢谢观赏2019-6-17输入程序的规则输入程序的规则: (1)一行只能输入一个命令且输完后要一行只能输入一个命令且输完后要 按回车键按回车键; (2)如果一个命令一行输不下如果一个命令一行输不下
16、,则要分行则要分行输入且前一行的后面一定要输入分号输入且前一行的后面一定要输入分号,且要且要按回车键按回车键; 如如: disp all for 语文语文80 .and. 化学化学0 X=X+1 ? X= ,X ENDIF X=X-1 ? X= ,X26谢谢观赏2019-6-17(2) USE XJKACCEPT “请输入姓名请输入姓名:” TO XMLOCA FOR 姓名姓名=XMIF FOUND( )REPL 语文语文 WITH 100ENDIF 注意注意: FOUND ( ) 可改为可改为: FOUND ( )=.T. 或或 .NOT.EOF( )27谢谢观赏2019-6-17(二二).
17、第二种格式第二种格式 1. IF 条件表达式条件表达式 (THEN) 语句序列语句序列1 ELSE 语句序列语句序列2 ENDIF 2.执行过程执行过程:当条件成立时执行当条件成立时执行语句序列语句序列1, 然后退到然后退到ENDIF后面去执行后面去执行;当条件不成当条件不成 立时立时,执行执行语句序列语句序列2,然后退到然后退到ENDIF后后 面去执行面去执行;28谢谢观赏2019-6-17举例举例(1)INPUT X= TO X IF X0 ?X-1 ELSE ?X+1 ENDIF ? “结束结束” 29谢谢观赏2019-6-17(2)USE XJK ACCEPT “请输姓名请输姓名” T
18、O XM IF FOUND( ) DISP 姓名姓名,语文语文 ELSE ? “查无此人查无此人” ENDIF30谢谢观赏2019-6-17(3)如果有多个条件如果有多个条件,可用多个可用多个IF语句语句 X X0 Y= X+1 X-2 X+3 -2X0 ?X ENDIF IF X-2 .AND. X0 ?X CASE X0 ?X-1 CASE X=0 ?X+1 ENDCASE34谢谢观赏2019-6-17(2) USE XJK ? * ? *1.追加记录追加记录 * ? *2.删除记录删除记录 * ? *3.显示记录显示记录 * ? *4.退出退出 * ? * ACCEPT 请选择请选择1-
19、4 TO X DO CASE CASE X=1 APPEND CASE X=2 ACCEPT 请输入条件请输入条件 TO H 35谢谢观赏2019-6-17 DELE FOR &H PACK CASE X=3 ACCEPT “请输入条件请输入条件” TO K DISP FOR &K CASE X=4 CANCEL ENDCASE36谢谢观赏2019-6-17(3)CLEAR 10,10 SAY “*” 11,10 SAY “*学生挡案管理系统学生挡案管理系统*” 12,10 SAY “*1建立库结构建立库结构 *” 13,10 SAY “*2追加记录追加记录 *” 14,10 SAY “*3退
20、出退出 *” 15,10 SAY “*”37谢谢观赏2019-6-17X= 18,10 SAY “请输入请输入1-3” GET X READ DO CASE CASE X=1 CREAT YYY CASE X=2 USE YYY APPE CASE X=3 EXIT ENDCASE38谢谢观赏2019-6-17三三.循环结构循环结构一一.循环结构循环结构:某个程序段的反某个程序段的反 复执行的结构复执行的结构;二二.基本格式基本格式39谢谢观赏2019-6-17(1)第一种格式第一种格式 1.DO WHILE 条件表达式条件表达式 语句序列语句序列 ENDDO 2.执行过程执行过程:当条件成立
21、时当条件成立时,执行语句序执行语句序 列列,执行完后自动返回到执行完后自动返回到 DO WHILE 语句语句,再判断条件再判断条件, 如果成立如果成立,再执行语再执行语 句序列句序列, 如果不成立则退到如果不成立则退到ENDDO后后 面去执行面去执行;40谢谢观赏2019-6-173.举例举例 X=1 DO WHILE X80 DO WHILE .NOT.EOF( ) REPL 化学化学 WITH 100 CONT ENDDO ? “全部改完全部改完”47谢谢观赏2019-6-17(三三)有限次循环控制方式有限次循环控制方式 (1) A=常量常量1 B=常量常量2 DO WHILE A (=)
22、B 语句序列语句序列 A=A+1 A=A-1 ENDDO48谢谢观赏2019-6-17(2)说明说明:当当AB 时退到时退到ENDDO后面去执行后面去执行;(3)举例举例: 求求1+2+3+.+10 S=0 P=1 DO WHILE P=10 S=S+P P=P+1 ENDDO ?S注意注意当给一个变量多次赋值时当给一个变量多次赋值时,取最后取最后 赋予的只值赋予的只值; 49谢谢观赏2019-6-17求求1+2+3+.+N S=0 P=1 INPUT “请输入请输入N的值的值:” TO N DO WHILE P=1 ?P P=P-1ENDDO求求2+4+6+N(偶数偶数) S=0 P=2 INPUT “N=“ TO N DO WHILE P200 EXIT ENDIF P=P+1 S=S+P ENDDO ?S56谢谢观赏2019-6-17(2)求自然数中偶数之和求自然数中偶数之和,当和大于当和大于200时时 退出退出; S=0 P=0 DO WHILE .T. P=P+1 IF P/2INT(P/2) LOOP ENDIF S=S+P IF S200 EXIT ENDIF ENDDO ?S57谢谢观赏2019-6-17