第6章程序设计基础.pdf
《第6章程序设计基础.pdf》由会员分享,可在线阅读,更多相关《第6章程序设计基础.pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 6 章章 程序设计基础程序设计基础 学习目标学习目标 在本章中将学习:l 如何创建程序 l 条件语句 l 循环语句 l 如何调试程序 6.1 程序与程序文件程序与程序文件 6.1.1 程序的概念程序的概念 什么是程序?打个比方,比如我们炒菜,流程如下:1 准备食材,佐料 2 清洁食材 3 整理食材(切块或切丝)4 开火,放上炒锅,倒入食用油,加热食用油 5 将食材放入炒锅翻炒 6 淋入料酒 7 加入食盐,鸡精等佐料 8 继续翻炒至熟 9 起锅装盘 这就是一个炒菜的基本程序,从上面我们可以看出,程序是一组指令的集合。计算机本身并不能主动地为我们工作,因此我们必须对它下达指令,而它根本不会也
2、不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。程序(Program)就是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。程序是人类思维逻辑的体现,可以说程序就是思维。而我们学习程序设计其实就是深入、强化、完善我们的逻辑思维能力。有句话说的好,不怕做不到就怕想不到,只要我们能够设计出相应的程序,那么计算机将可以为我们提供相应的服务。程序设计的步骤是:(1)研制程序逻辑以解决某一特别问题。(2)以某种编程语言的形式编写程序逻辑(编程)。(3
3、)汇编或者编译程序把它转换成机器语言形式。(4)检测和调试程序。(5)准备必要的文件编制。6.1.2 程序文件的建立与执行程序文件的建立与执行 Visual FoxPro 程序由代码组成,代码包括以命令形式出现的指令、函数或 Visual FoxPro 可以理解的任何操作。【例【例 6.1】在】在 Visual FoxPro 命令窗口中编写命令窗口中编写 Hello.prg 操作步骤:操作步骤:1.启动 VFP,打开窗口-命令窗口,在命令窗口中输入命令 MODIFY COMMAND Hello。2.编写程序如下:*-*程序名称:Hello.prg*功能说明:1.在屏幕上输出你好!2.弹出对话框
4、显示你好!*-?“你好!”&在屏幕中输出你好!MESSAGEBOX(“你好!”)&弹出对话框,显示你好!3.按 CTRL+W 存盘或点击“文件-保存”菜单存盘,程序文件的扩展名为.PRG。4.打开命令窗口,输入命令 DO Hello,运行程序。程序运行结果如图 6-1。图图 6-1 Hello.prg 程序运行结果程序运行结果 程序说明:程序说明:在这个程序中,前 4 行都是注释语句,行注释使用“*”号开始,后面可以书写对程序的说明文字。,第 5 行是在屏幕上输出你好!,第 6 行是弹出对话框显示你好!,使用了 MESSAGEBOX()函数。在命令行中,&表示行内注释,其后是说明性文字。通过此
5、例我们知道,使用命令 MODIFY COMMAND 可以创建并编辑 VFP 程序,使用DO 命令可以运行 VFP 程序。一、创建、编辑程序文件一、创建、编辑程序文件 创建和编辑程序文件的命令是 MODIFY COMMAND。语法:语法:MODIFY COMMAND FileName|?功能:功能:打开一个编辑窗口,从中可以修改或创建程序文件。参数:参数:FileName 指定打开或创建的程序文件名。?显示“打开”对话框。可以从中选择一个已有程序或键入要创建的新程序名。知识链接知识链接 若不指定新建程序文件的扩展名,Visual FoxPro 自动指定.PRG 为扩展名。MODIFY COMMA
6、ND 支持含有星号(*)和问号(?)通配符的文件梗概。名称与这个文件梗概匹配的每一个文件都在编辑窗口中打开。若省略文件名,将给打开的编辑窗口赋以一个初始名称“程序 1.PRG”。当关闭编辑窗口时,可以用另外的文件名保存该文件。创建 VFP 程序方法之二,点击菜单文件-新建-选择程序-新建。如图 6-2 所示 图 6-2 新建程序 二、程序文件的执行二、程序文件的执行 1以命令方式执行以命令方式执行 运行程序的命令是 DO 命令。语法:语法:DO ProgramName1|ProcedureName IN ProgramName2 WITH ParameterList 功能:功能:执行一个 Vi
7、sual FoxPro 程序或过程。参数:参数:ProgramName1 指定要执行的程序的名称。ProcedureName 指定要执行的过程的名称。IN ProgramName2 子句:执行 ProgramName2 指定的程序文件中的一个过程。WITH ParameterList 指定要传递给程序或过程的参数。列在 ParameterList 中的参数可以是表达式、内存变量、字母和数字、字段或用户自定义函数。说明说明 关于过程的概念和应用见 6.3 节。一个程序文件自身又可以包含其他的 do 命令,这种嵌套最多可允许 128 级。当使用 DO 运行一个程序时,包含在程序文件中的命令一直执行
8、,直到下列某一事件发生:l 遇到 RETURN 语句。l 执行了 CANCEL 命令。l 执行了另一个 DO 命令。l 到达文件末尾。l 执行了 QUIT 命令。当程序执行结束时,控件可以返回到:l 调用的程序。l 命令窗口。l 操作系统。如果是从“程序”菜单中选择“执行”命令,并在非当前的某个目录或驱动器上执行一个程序,Visual FoxPro 就自动地将默认的目录和驱动器改为包含该程序的目录和驱动器。知识链接知识链接 如果执行的程序不包含扩展名,Visual FoxPro 就以下列顺序查找并执行这些版本的程序:.EXE(可执行版本).APP(一个应用程序).FXP(已编译的版本).PRG
9、(程序)若要使用 DO 执行一个特定的菜单程序、表单程序或者查询,则必须包含它的扩展名(.MPR、.SPR 或者.QPR)。6.1.3 简单的输入输出命令简单的输入输出命令 一、一、?命令(输出命令)命令(输出命令)语法:语法:?|?Expression1 功能:功能:计算表达式的值,并输出计算结果。参数:参数:Expression1?Expression1 该命令计算表达式 Expression1 的值,然后先输出一个回车和换行符,再输出计算结果。计算结果显示在 Visual FoxPro 主窗口或者活动的用户自定义窗口的下一行。如果省略了表达式,则显示或打印一个空行。当包含多个表达式时,表
10、达式结果之间将插入一个空格。?Expression1 计算表达式 Expression1 的值,并把结果显示在 Visual FoxPro 主窗口、活动的用户定义窗口或者打印机当前行的当前位置上。输出计算结果前不回车换行。二、二、ACCEPT 命令命令 语法:语法:ACCEPT 提示信息 TO 内存变量 功能:功能:在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。说明:说明:该命令只接受字符型数据,输入的字符串不需要加定界符【例【例 6.2】输入姓名,显示“你好!】输入姓名,显示“你好!XXX”。”。操作步骤:(1)打开命令窗口,输入命令 MODIFY COMMAND S
11、AYHELLO(2)输入程序如下:*-*程序名称:SayHello.prg*功能说明:1.输入姓名 2.输出你好!XXX。*-ACCEPT ”请输入姓名:”TO XM&通过键盘输入姓名并赋值给 XM?”你好!”,XM&显示你好!XXX。(3)按 CTRL+W 存盘或点击“文件-保存”菜单存盘,运行程序。三、三、INPUT 命令命令 语法:语法:INPUT 提示信息 TO 内存变量 功能:功能:在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量。说明:说明:可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入
12、的数据赋值给指定内存变量。【例【例 6.3】输入任一分数,将】输入任一分数,将 student 表中总分大于此分数的学生显示出来。表中总分大于此分数的学生显示出来。Student 表表中数据如下:中数据如下:表 6-1 student 数据表 学号 姓名 性别 出生日期 系科 统招否 总分 20080001 张兰 女 1986-1-3 物理 1 515 20080002 李思宇 男 1985-2-4 化学 1 520 20080003 王从悟 男 1985-3-4 计算机 1 550 20080004 常珊 女 1985-4-7 数学 1 554 20080005 周学刚 男 1986-5-1
13、2 中文 1 530 20080006 刘之凡 男 1986-6-23 历史 1 570 20080007 赵海霞 女 1986-6-6 传播 1 640 20080008 汪蓓思 女 1986-8-8 物理 1 530 20080009 秦超 男 1986-9-20 数学 1 580 20080010 杨超宏 男 1986-10-30 化学 1 590 20080011 黄浩 男 1986-1-2 体育 1 540 20080012 刘灵 女 1986-9-7 体育 1 520 20080013 张凡 男 1985-9-3 计算机 1 620 20080014 孙倩 女 1986-8-4 中
14、文 1 590 20080015 周小虹 女 1986-8-2 历史 1 560 20080016 付斌 男 1985-6-9 物理 1 570 20080017 王程 男 1986-11-1 化学 1 540 20080018 李敏 女 1986-1-12 数学 1 560 20080019 赵同同 男 1986-12-11 传播 1 540 20080020 李小建 男 1986-11-1 计算机 1 560 操作步骤:操作步骤:(1)打开命令窗口,输入命令 MODIFY COMMAND QueryStudent(2)输入程序如下:*-*程序名称:QueryStudent.prg*功能说明
15、:1.输入成绩 2.显示大于此分数的学生*-INPUT ”请输入分数:”TO FS&通过键盘输入分数并赋值给 FS Select*from student where 总分FS&显示符合条件的学生记录。(3)按 CTRL+W 存盘或点击“文件-保存”菜单存盘,运行程序。知识链接知识链接 INPUT 命令可以输入多种类型的数据,但一定要注意数据输入的方法,如要输入字符型数据,输入数据的时候要加上单引号。输入日期型的数据要用标准格式,如2008/08/18。6.2 程序结构程序结构 Visual FoxPro 中有一类特殊的命令,它们可以反复执行其他命令或函数,并决定这些命令和函数何时执行以及执行
16、的次数。这类特殊命令可用来实现两种主要的程序结构:条件分支和循环,它们在程序设计过程中作用很大。6.2.1 分支结构分支结构 条件分支根据条件的测试结果执行不同的操作。Visual FoxPro 中有两条命令实现条件分支:IF.ELSE.ENDIF DO CASE.ENDCASE 只有逻辑条件值为“真”(.T.)时,才会执行在初始语句和 ENDIF 或 ENDCASE 语句之间的程序。一、一、IF.ENDIF 命令命令 功能:功能:根据逻辑表达式值,有选择地执行一组命令。语法:语法:IF lExpression Commands ELSE Commands ENDIF 参数:参数:lExpre
17、ssion 指定要计算的逻辑表达式。如果 lExpression 的计算结果为“真”(.T.),则执行 IF 语句之后、ELSE 或 ENDIF 语句(以先出现的语句为准)之前的所有命令。l 如果逻辑表达式为“假”(.F.)而且包含 ELSE 语句,则执行 ELSE 语句之后、ENDIF 语句之前的所有命令。l 如果逻辑表达式为“假”(.F.)但不包含 ELSE 语句,则忽略 IF 语句和 ENDIF 之间的所有命令。在这种情况下,程序从 ENDIF 语句后面的第一条命令开始,继续往下执行。说明:说明:一个 IF.ENDIF 语句块之中可以嵌套另一个 IF.ENDIF 语句块。【例【例 6.4
18、】输入两个数值,比较大小,并显示较大的那个数值】输入两个数值,比较大小,并显示较大的那个数值 操作步骤:1.打开命令窗口,输入命令 MODIFY COMMAND WhoMAX 2.输入程序如下:*-*程序名称:WhoMAX.prg*功能说明:1.两个数值 2.比较大小,显示较大的那个数值*-CLEAR INPUT “请输入数值 A:”TO A INPUT ”请输入数据 B:”TO B IF A=B Then?A,”比”,B,”大”ELSE?A,”比”,B,”大”ENDIF 3.按 CTRL+W 存盘或点击“文件-保存”菜单存盘,运行程序。二、二、DO CASE.ENDCASE 命令命令 功能:
19、功能:根据不同的条件表达式结果执行不同的命令。语法:语法:DO CASE CASE lExpression1 Commands CASE lExpression2 Commands .CASE lExpressionN Commands OTHERWISE Commands ENDCASE 参数:参数:l CASE lExpression1 Commands.当遇到第一个结果为“真”的 CASE 表达式时,就执行它后面的命令集合。命令集合连续执行,直到遇到下一个 CASE 或 ENDCASE。然后就从 ENDCASE 后面的第一个命令恢复程序的执行。如果一个 CASE 表达式为“假”(.F.)
20、,就忽略它与下一个 CASE 子句之间的命令集合。此命令只能执行一组命令,这些命令是 CASE 表达式计算为“真”(.T.)的第一个命令集合,而其他计算为“真”(.T.)的 CASE 表达式被忽略。l OTHERWISE Commands 如果所有的 CASE 表达式计算为“假”(.F.),就由 OTHERWISE 确定是否执行一组额外的命令:如果包含 OTHERWISE,就执行 OTHERWISE 后面的命令集,执行后跳到 ENDCASE 后的第一条命令执行。如果省略了 OTHERWISE,就跳到 ENDCASE 后面的第一条命令处执行。说明:说明:DO CASE 根据逻辑表达式的值执行一组
21、 Visual FoxPro 命令。当执行 DO CASE 时,先计算它后面的逻辑表达式,表达式的值决定了执行哪一组命令集。【例【例 6.5】根据判断计算机当前日期,判断属于哪一个季度】根据判断计算机当前日期,判断属于哪一个季度 操作步骤:1.打开命令窗口,输入命令 MODIFY COMMAND Quarter 2.输入程序如下:*-*程序名称:Quarter.prg*功能说明:1.获取当然月份 2.显示当然日期属于哪个季度*-CLEAR M=MONTH(DATE()&今天的月份 DO CASE CASE INLIST(m,1,2,3)?这个月是第一季度 CASE INLIST(m,4,5,6
22、)?这个月是第二季度 CASE INLIST(m,7,8,9)?这个月是第三季度 OTHERWISE?这个月是第四季度 ENDCASE 3.按 CTRL+W 存盘或点击“文件-保存”菜单存盘,运行程序。程序说明:程序说明:INLIST 函数判断一个表达式是否与一组表达式中的某一个相匹配。6.2.2 循环结构循环结构 循环结构可以按照需要多次重复执行一行或多行代码。在 Visual FoxPro 中有三种循环语句:DO WHILE.ENDDO FOR.ENDFOR SCAN.ENDSCAN 一、一、DO WHILE.ENDDO 功能:功能:在一个条件循环里执行一组命令。语法:语法:DO WHIL
23、E lExpression Commands LOOP EXIT ENDDO 参数:参数:lExpression 指定一个逻辑表达式,它的值决定是否执行 DO WHILE 和 ENDDO 之间的命令集。如果 lExpression 计算为“真”(.T.),就执行命令集。Commands 指定当 lExpression 计算为“真”(.T.)时,要执行的 Visual FoxPro 命令集。LOOP 直接将程序控件返回到 DO WHILE。LOOP 可放在 DO WHILE 和 ENDDO 间的任何位置。EXIT 将程序控件从 DO WHILE 循环的内部转到 ENDDO 后的第一个命令。EXI
24、T 可放在 DO WHILE 和 ENDDO 间的任何位置。ENDDO 表明 DO 语句的结束。说明:说明:只要逻辑表达式 lExpression 为“真”(.T.),就执行位于 DO WHILE 和 ENDDO 间的命令集。每个 DO WHILE 语句必须有一个相应的 ENDDO 语句。【例【例 6.6】显示】显示 Student 表中物理系学生的学号和姓名表中物理系学生的学号和姓名,Student 表中数据见【例表中数据见【例 6.3】操作步骤:1.打开命令窗口,输入命令 MODIFY COMMAND StuInfo 2.输入程序如下:*-*程序名称:StuInfo.prg*功能说明:显示
25、 Student 表中物理系学生的学号和姓名*-CLEAR CLOSE ALL&关闭所有数据库和数据表 Open Database 学生成绩数据库 USE Student GO TOP&将记录指针移动到首位置 DO WHILE NOT EOF()&判断条件为记录指针是否到尾部 IF 系科=物理 THEN?学号,姓名 ENDIF SKIP ENDDO 3.按 CTRL+W 存盘或点击“文件-保存”菜单存盘,运行程序。二、二、FOR.ENDFOR 功能:功能:按指定的次数重复执行一组命令。语法:语法:FOR MemVarName=nInitialValue TO nFinalValue STEP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章程 设计 基础
限制150内