结构化程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 解:只需对例8.5中的程序稍微修改即可。
• 另存为“IF双分支程序示例1.prg”,程序代 码如下:
• 【例8.7】 编写程序,实现从键盘输入 一成绩,若成绩值大于等于60,则显示“及 格”,否则显示“不及格”。
• 解:建立程序文件“IF双分支程序示例 2.prg”,程序代码如下:
• 【例8.8】 编写程序,实现从键盘输入 一成绩,显示相应成绩的等级。
图8.8 INPUT命令示例程序运行结果
3.单个字符接收命令
• 单个字符接收命令格式:
• WAIT[<提示信息>] [TO <内存变量>] [WINDOW [AT<行>,<列>]] • [NOWAIT] [CLEAR|NOCLEAR] [TIMEOUT<数值表达式>]
• 【例8.3】 完成在限定时间做出判断“是 ”或“否”功能。
• 然后单击“是”按钮,随即将打开 “另存为”对话框,输入程序文件名称, 最后单击“保存”按钮。
图8.6 保存文件确认对话框
3.修改程序文件
• (1)使用菜单方式。 • (2)使用项目管理器。 • (3)使用命令方式。
4.程序文件的执行
• (1)使用菜单方式。 • (2)使用项目管理器。 • (3)使用命令方式。
• ① 格式1:CLOSE ALL • ② 格式2:CLOSE <文件类型>
(5)运行中断和结束命令。
• ① 格式1:QUIT • ② 格式2:CANCEL • ③ 格式3:RETURN [TO MASTER]
2.顺序结构的举例
• 【例8.4】 输入半径值,求解圆的周长。
• 解:建立程序文件“cirle.prg”,程序代 码如下:
• (1)选择“文件”/“保存”命令,或者 单击工具栏中“保存”按钮,如果是第一 次保存则会出现如图8.5所示的“另存为 ”对话框,在其中输入程序文件名,并选 择保存目录后,单击“保存”按钮即可完 成对程序文件的保存。
图8.5 “另存为”对话框
• (2)单击“程序编辑器”窗口的关闭 按钮,会出现是否存盘的确认对话框,如 图8.6所示。
• 在Visual FoxPro中提供了3种基本控 制结构,分别是顺序结构、选择结构和循 环结构。
8.2.1 顺序结构
• 顺序结构是最简单、最基本的一种程序 结构,也是程序设计语言中最基本最普遍 的结构形式。
• 顺序结构是在程序执行时,根据程序中 语句的书写顺序依次执行其命令序列。
1.程序文件中的辅助命令
⑨ 置屏幕显示属性命令。
• 命令格式是:
• SET COLOR TO [<标准型>[, <增强型>[, <边框>]]]
• 此命令用于改变屏幕的配色方案。
(3)清除命令。
• ① 格式1:CLEAR • ② 格式2:CLEAR ALL • ③ 格式3:CLEAR TYPEUZAD
(4)关闭文件命令。
• 解:完成题目功能的命令是:
• WAIT ″请在10秒内做出判断Y/N″ TO X TIMEOUT 10 WINDOW AT 10,20
• 此命令执行时,在主窗口的右上角坐标 (10,20)处显示一个提示窗口,显示提 示信息为“请在10秒内做出判断Y/N”,如图 8.9所示。
图8.9 WAIT 命令提示窗口
• ⑤ 置日期格式状态命令。 • 命令格式是:SET DATE ANSI|
AMERICAN |MDY |DMY|YMD • ⑥ 置系统提供的保护状态命令。 • 命令格式是:SET SAFETY ON/OFF
• ⑦ 置删除记录标志状态命令。 • 命令格式是:SET DELETED ON/OFF • ⑧ 置屏幕状态命令。 • 命令格式是:SET CONSOLE ON/OFF
8.1.3 交互式输入输出命令
• 程序的执行过程一般包括输入原始数据、 处理数据和输出结果数据三部分。
1.字符串接收命令
• 字符串接收命令格式是: • ACCEPT [<提示信息>] TO <内存变量>
• 【例8.1】 建立一个程序,实现按照教 师编号查询教师的教师姓名和职称。
• 解:具体求解过程如下。 • ① 依据8.1.2节介绍的方法建立程序文
• 【例8.12】 编写程序,实现逐条显示学 生表中1993年出生的学生记录。
• 解:建立程序文件“DO WHILE条件循 环程序示例2.prg”,程序代码如下:
• CLEAR • SET TALK OFF • USE 学生 • INDEX ON YEAR(出生日期) TAG csrq • SEEK 1993 • DO WHILE YEAR(出生日期)=1993 • DISPLAY • SKIP • ENDDO • USE • SET TALK ON • RETURN
• 在Visual FoxPro中建立程序文件同其他 类型的文件方法类似,通常有以下3种方式。
(1)使用菜单方式。
图8.3 程序编辑窗口
(2)使用项目管理器。
图8.4 使用“项目管理器”建立程序
• (3)使用命令方式。
2.保存程序文件
• 当程序文件代码输入完后,首先应该保 存该程序文件,保存文件的常用方法有以下 几种。
Visual FoxPuo 程序设计基础
第8章 结构化程序设计
8.1
程序设计概述
8.2
程序的基本结构
8.3
过程与过程文件
8.4
数组的应用
8.5
程序的调试
8.1 程序设计概述
• 8.1.1 程序设计相关概念
• 程序是利用系统所提供的设计工具、按 照程序设计语言的规范描述解决问题的算法 并进行程序编写的过程。
图8.1 程序的控制结构
3.结构化程序设计方法
• 结构化程序设计的基本思想是采用“自顶 向下,逐步求精”的程序设计方法和模块化。
• 自顶向下是指对设计的系统要有一个全面 的理解,从问题的全局入手,把一个复杂问题 分解成若干个相互独立的子问题,然后对每个 子问题再进一步的分解,如此重复,直到每个 问题都容易解决为止。
• 【例8.14】 编写程序,从键盘输入10 个数,找出其中的最大值。
• 【例8.11】 编写程序,求1到100的累 加和。
• 解:建立程序文件“DO WHILE条件循 环程序示例1.prg”,程序代码如下:
• 程序的运行结果是:在主窗口显示“1到 100之和为:5050”。
• DO和ENDDO之间的语句也可以写成:
• 在循环条件永远为真,执行循环体,在执 行循环体时,当X的值大于100时,执行EXIT 语句退出DO语句的执行。
1.程序的概念
• 程序是能够完成一定任务的命令的有序 集合。
• 这组命令被存放在称为程序文件或命令 文件的文本文件中。
• 与交互式操作方式相比,程序方式有以 下优点。
• (1)可以利用编辑器,方便地输入、 修改、保存程序。
• (2)程序文件一旦建立,就可以被多 次运行,而且一个程序在运行过程中还可 以调用运行另一个程序。
• (1)格式输出命令。
• 命令格式是: • @<行,列> SAY <表达式>
(2)格式输入命令。
• 命令格式是:
• @<行,列> [SAY 提示信息][GET<变量名>][DEFAULT<表达式>] • READ [SAVE] [CYCLE] [TIMEOUT<等待时间>]
8.2 程序的基本结构
• Visual FoxPro应用程序的编写一般由 以下部分组成。
• (1)程序注释。 • (2)程序运行环境设置。 • (3)程序主体。 • (4)程序辅助整理。 • (5)程序退出。
2.程序的控制结构
• 任何复杂的程序都由3种基本控制结构 • 组成。
• 分别是顺序结构、选择结构和循环结构。
• (1)顺序结构。 • (2)选择结构。 • (3)循环结构。
• (1)程序注释命令。
• ① 格式1:NOTE| * <注释内容> • ② 格式2:……&&<注释内容>
(2)常用状态设置命令。
• ① 置会话状态命令。 • 命令格式是:SET TALK ON/OFF • ② 置跟踪状态命令。 • 命令格式是:SET ECHO ON/OFF
• ③ 置打印状态命令。 • 命令格式是:SET PRINTER ON/OFF • ④ 置精确比较状态命令。 • 命令格式是:SET EXACT ON/OFF
• 解:修改例8.7程序代码,另存为“IF双 分支程序示例3.prg”,程序代码如下:
2.多分支选择语句
• 语句格式如下:
• 【例8.9】 用DO CASE语句实现例8.8 功能。
• 解:建立程序“DO CASE多分支程序 示例1.prg”,程序代码如下:
8.2.3 循环结构
• 这种按照一定条件重复执行某种特定操 作的程序称为循环结构程序,被重复执行的 语句序列组称为循环体。
• 逐步求精是指程序设计的过程是一个渐 进的过程,先把一个子问题用一个程序模块 来描述,再把每个模块的功能逐步分解细化 为一系列的具体步骤,模块化设计是结构化 程序的重要原则。
• 这种程序的模块化结构如图8.2所示。
图8.2 程序的模块化结构
8.1.2 程序文件的建立和编辑
• 1.程序文件的建立
• FOR语句的执行过程如图8.11所示。
图8.11 FOR循环执行过程• 【例8.13】 FOR语句求解例8.11问题。
• 解:建立程序文件“FOR循环程序示例 1.prg”,程序代码如下:
• CLEAR • SET TALK OFF • S=0 • FOR X=1 TO 100 • S=S+X • ENDFOR • ?"1到100之和为:",S • SET TALK ON • RETURN
• 程序暂停执行。当用户按Y或N键,或 任意键,会将此键字符保存到X变量中。
• 或者超过10秒后,提示窗口自动关闭, 程序继续向下执行。
4.输出命令
• (1)格式1:
• ?[<表达式1>[, <表达式2 >]…]
• (2)格式2:
• ??[<表达式1 >[, <表达式2 >]…]
5.格式输入输出命令
• Visual FoxPro提供了三种实现循环结 构的循环语句,分别是:
• DO WHILE-ENDDO、FOR-ENDFOR和 SCAN-ENDSCAN语句。
1.DO WHILE条件循环
• 语句格式是:
• DO WHILE语句的执行过程可用图8.10 表示。
图8.10 DO WHILE循环执行过程
8.2.2 选择结构
• 在Visual FoxPro系统中提供了两种实 现选择结构语句:IF语句和DO CASE语句, 分别用于实现双分支选择结构和多分支选 择结构。
1.双分支选择语句
• 双分支条件选择语句根据条件不成立时 是否执行语句组分为两种形式:简单形式条 件语句和一般形式条件语句。
(1)简单形式条件语句。
• 语句格式是:IF <条件表达式>
•
<语句序列>
•
ENDIF
• 【例8.5】 根据输入的教师姓名,如查 找到该教师,则显示教师信息。
• 解:建立程序文件“IF单分支程序示例 .prg”,程序代码如下:
(2)一般形式选择语句。
• 【例8.6】 根据输入的教师姓名,如查找到 该教师,则显示教师信息,否则显示“对不起, 无此教师!”。
• 保存程序文件名为“input命令示例 .prg”。
•
当程序文件运行时,在主窗口显示“请
输入要查询教师的出生日期:”,在光标闪
烁处输入要查询的教师出生日期,如输入
{^1980-01-01}按回车键,则会将其日期值
存入BDATE内存变量中,程序继续执行。
• 在浏览窗口显示该程序的运行结果,最 终运行结果如图8.8所示。
图8.7 ACCEPT命令示例程序运行结果
2.任意数据输入命令
• 任意数据输入命令格式是: • INPUT [<提示信息>] TO <内存变量>
• 【例8.2】 建立一个程序,实现查询指 定出生日期以前的教师信息。
解:具体求解过程如下。 • ① 建立程序文件,输入以下程序代码:
② 保存、运行程序文件。
件,输入以下程序代码:
② 保存、运行程序文件。
• 保存程序文件名为“accept命令示例 .prg”。
• 当运行该程序文件时,在Visual FoxPro主窗口显示“请输入要查询教师的教 师编号:”,在光标插入处输入要查询的教 师编号,如输入“0000221”按Enter键,则 将其存入内存变量JSBH中,程序将继续执 行。运行结果如图8.7所示。
• 另存为“IF双分支程序示例1.prg”,程序代 码如下:
• 【例8.7】 编写程序,实现从键盘输入 一成绩,若成绩值大于等于60,则显示“及 格”,否则显示“不及格”。
• 解:建立程序文件“IF双分支程序示例 2.prg”,程序代码如下:
• 【例8.8】 编写程序,实现从键盘输入 一成绩,显示相应成绩的等级。
图8.8 INPUT命令示例程序运行结果
3.单个字符接收命令
• 单个字符接收命令格式:
• WAIT[<提示信息>] [TO <内存变量>] [WINDOW [AT<行>,<列>]] • [NOWAIT] [CLEAR|NOCLEAR] [TIMEOUT<数值表达式>]
• 【例8.3】 完成在限定时间做出判断“是 ”或“否”功能。
• 然后单击“是”按钮,随即将打开 “另存为”对话框,输入程序文件名称, 最后单击“保存”按钮。
图8.6 保存文件确认对话框
3.修改程序文件
• (1)使用菜单方式。 • (2)使用项目管理器。 • (3)使用命令方式。
4.程序文件的执行
• (1)使用菜单方式。 • (2)使用项目管理器。 • (3)使用命令方式。
• ① 格式1:CLOSE ALL • ② 格式2:CLOSE <文件类型>
(5)运行中断和结束命令。
• ① 格式1:QUIT • ② 格式2:CANCEL • ③ 格式3:RETURN [TO MASTER]
2.顺序结构的举例
• 【例8.4】 输入半径值,求解圆的周长。
• 解:建立程序文件“cirle.prg”,程序代 码如下:
• (1)选择“文件”/“保存”命令,或者 单击工具栏中“保存”按钮,如果是第一 次保存则会出现如图8.5所示的“另存为 ”对话框,在其中输入程序文件名,并选 择保存目录后,单击“保存”按钮即可完 成对程序文件的保存。
图8.5 “另存为”对话框
• (2)单击“程序编辑器”窗口的关闭 按钮,会出现是否存盘的确认对话框,如 图8.6所示。
• 在Visual FoxPro中提供了3种基本控 制结构,分别是顺序结构、选择结构和循 环结构。
8.2.1 顺序结构
• 顺序结构是最简单、最基本的一种程序 结构,也是程序设计语言中最基本最普遍 的结构形式。
• 顺序结构是在程序执行时,根据程序中 语句的书写顺序依次执行其命令序列。
1.程序文件中的辅助命令
⑨ 置屏幕显示属性命令。
• 命令格式是:
• SET COLOR TO [<标准型>[, <增强型>[, <边框>]]]
• 此命令用于改变屏幕的配色方案。
(3)清除命令。
• ① 格式1:CLEAR • ② 格式2:CLEAR ALL • ③ 格式3:CLEAR TYPEUZAD
(4)关闭文件命令。
• 解:完成题目功能的命令是:
• WAIT ″请在10秒内做出判断Y/N″ TO X TIMEOUT 10 WINDOW AT 10,20
• 此命令执行时,在主窗口的右上角坐标 (10,20)处显示一个提示窗口,显示提 示信息为“请在10秒内做出判断Y/N”,如图 8.9所示。
图8.9 WAIT 命令提示窗口
• ⑤ 置日期格式状态命令。 • 命令格式是:SET DATE ANSI|
AMERICAN |MDY |DMY|YMD • ⑥ 置系统提供的保护状态命令。 • 命令格式是:SET SAFETY ON/OFF
• ⑦ 置删除记录标志状态命令。 • 命令格式是:SET DELETED ON/OFF • ⑧ 置屏幕状态命令。 • 命令格式是:SET CONSOLE ON/OFF
8.1.3 交互式输入输出命令
• 程序的执行过程一般包括输入原始数据、 处理数据和输出结果数据三部分。
1.字符串接收命令
• 字符串接收命令格式是: • ACCEPT [<提示信息>] TO <内存变量>
• 【例8.1】 建立一个程序,实现按照教 师编号查询教师的教师姓名和职称。
• 解:具体求解过程如下。 • ① 依据8.1.2节介绍的方法建立程序文
• 【例8.12】 编写程序,实现逐条显示学 生表中1993年出生的学生记录。
• 解:建立程序文件“DO WHILE条件循 环程序示例2.prg”,程序代码如下:
• CLEAR • SET TALK OFF • USE 学生 • INDEX ON YEAR(出生日期) TAG csrq • SEEK 1993 • DO WHILE YEAR(出生日期)=1993 • DISPLAY • SKIP • ENDDO • USE • SET TALK ON • RETURN
• 在Visual FoxPro中建立程序文件同其他 类型的文件方法类似,通常有以下3种方式。
(1)使用菜单方式。
图8.3 程序编辑窗口
(2)使用项目管理器。
图8.4 使用“项目管理器”建立程序
• (3)使用命令方式。
2.保存程序文件
• 当程序文件代码输入完后,首先应该保 存该程序文件,保存文件的常用方法有以下 几种。
Visual FoxPuo 程序设计基础
第8章 结构化程序设计
8.1
程序设计概述
8.2
程序的基本结构
8.3
过程与过程文件
8.4
数组的应用
8.5
程序的调试
8.1 程序设计概述
• 8.1.1 程序设计相关概念
• 程序是利用系统所提供的设计工具、按 照程序设计语言的规范描述解决问题的算法 并进行程序编写的过程。
图8.1 程序的控制结构
3.结构化程序设计方法
• 结构化程序设计的基本思想是采用“自顶 向下,逐步求精”的程序设计方法和模块化。
• 自顶向下是指对设计的系统要有一个全面 的理解,从问题的全局入手,把一个复杂问题 分解成若干个相互独立的子问题,然后对每个 子问题再进一步的分解,如此重复,直到每个 问题都容易解决为止。
• 【例8.14】 编写程序,从键盘输入10 个数,找出其中的最大值。
• 【例8.11】 编写程序,求1到100的累 加和。
• 解:建立程序文件“DO WHILE条件循 环程序示例1.prg”,程序代码如下:
• 程序的运行结果是:在主窗口显示“1到 100之和为:5050”。
• DO和ENDDO之间的语句也可以写成:
• 在循环条件永远为真,执行循环体,在执 行循环体时,当X的值大于100时,执行EXIT 语句退出DO语句的执行。
1.程序的概念
• 程序是能够完成一定任务的命令的有序 集合。
• 这组命令被存放在称为程序文件或命令 文件的文本文件中。
• 与交互式操作方式相比,程序方式有以 下优点。
• (1)可以利用编辑器,方便地输入、 修改、保存程序。
• (2)程序文件一旦建立,就可以被多 次运行,而且一个程序在运行过程中还可 以调用运行另一个程序。
• (1)格式输出命令。
• 命令格式是: • @<行,列> SAY <表达式>
(2)格式输入命令。
• 命令格式是:
• @<行,列> [SAY 提示信息][GET<变量名>][DEFAULT<表达式>] • READ [SAVE] [CYCLE] [TIMEOUT<等待时间>]
8.2 程序的基本结构
• Visual FoxPro应用程序的编写一般由 以下部分组成。
• (1)程序注释。 • (2)程序运行环境设置。 • (3)程序主体。 • (4)程序辅助整理。 • (5)程序退出。
2.程序的控制结构
• 任何复杂的程序都由3种基本控制结构 • 组成。
• 分别是顺序结构、选择结构和循环结构。
• (1)顺序结构。 • (2)选择结构。 • (3)循环结构。
• (1)程序注释命令。
• ① 格式1:NOTE| * <注释内容> • ② 格式2:……&&<注释内容>
(2)常用状态设置命令。
• ① 置会话状态命令。 • 命令格式是:SET TALK ON/OFF • ② 置跟踪状态命令。 • 命令格式是:SET ECHO ON/OFF
• ③ 置打印状态命令。 • 命令格式是:SET PRINTER ON/OFF • ④ 置精确比较状态命令。 • 命令格式是:SET EXACT ON/OFF
• 解:修改例8.7程序代码,另存为“IF双 分支程序示例3.prg”,程序代码如下:
2.多分支选择语句
• 语句格式如下:
• 【例8.9】 用DO CASE语句实现例8.8 功能。
• 解:建立程序“DO CASE多分支程序 示例1.prg”,程序代码如下:
8.2.3 循环结构
• 这种按照一定条件重复执行某种特定操 作的程序称为循环结构程序,被重复执行的 语句序列组称为循环体。
• 逐步求精是指程序设计的过程是一个渐 进的过程,先把一个子问题用一个程序模块 来描述,再把每个模块的功能逐步分解细化 为一系列的具体步骤,模块化设计是结构化 程序的重要原则。
• 这种程序的模块化结构如图8.2所示。
图8.2 程序的模块化结构
8.1.2 程序文件的建立和编辑
• 1.程序文件的建立
• FOR语句的执行过程如图8.11所示。
图8.11 FOR循环执行过程• 【例8.13】 FOR语句求解例8.11问题。
• 解:建立程序文件“FOR循环程序示例 1.prg”,程序代码如下:
• CLEAR • SET TALK OFF • S=0 • FOR X=1 TO 100 • S=S+X • ENDFOR • ?"1到100之和为:",S • SET TALK ON • RETURN
• 程序暂停执行。当用户按Y或N键,或 任意键,会将此键字符保存到X变量中。
• 或者超过10秒后,提示窗口自动关闭, 程序继续向下执行。
4.输出命令
• (1)格式1:
• ?[<表达式1>[, <表达式2 >]…]
• (2)格式2:
• ??[<表达式1 >[, <表达式2 >]…]
5.格式输入输出命令
• Visual FoxPro提供了三种实现循环结 构的循环语句,分别是:
• DO WHILE-ENDDO、FOR-ENDFOR和 SCAN-ENDSCAN语句。
1.DO WHILE条件循环
• 语句格式是:
• DO WHILE语句的执行过程可用图8.10 表示。
图8.10 DO WHILE循环执行过程
8.2.2 选择结构
• 在Visual FoxPro系统中提供了两种实 现选择结构语句:IF语句和DO CASE语句, 分别用于实现双分支选择结构和多分支选 择结构。
1.双分支选择语句
• 双分支条件选择语句根据条件不成立时 是否执行语句组分为两种形式:简单形式条 件语句和一般形式条件语句。
(1)简单形式条件语句。
• 语句格式是:IF <条件表达式>
•
<语句序列>
•
ENDIF
• 【例8.5】 根据输入的教师姓名,如查 找到该教师,则显示教师信息。
• 解:建立程序文件“IF单分支程序示例 .prg”,程序代码如下:
(2)一般形式选择语句。
• 【例8.6】 根据输入的教师姓名,如查找到 该教师,则显示教师信息,否则显示“对不起, 无此教师!”。
• 保存程序文件名为“input命令示例 .prg”。
•
当程序文件运行时,在主窗口显示“请
输入要查询教师的出生日期:”,在光标闪
烁处输入要查询的教师出生日期,如输入
{^1980-01-01}按回车键,则会将其日期值
存入BDATE内存变量中,程序继续执行。
• 在浏览窗口显示该程序的运行结果,最 终运行结果如图8.8所示。
图8.7 ACCEPT命令示例程序运行结果
2.任意数据输入命令
• 任意数据输入命令格式是: • INPUT [<提示信息>] TO <内存变量>
• 【例8.2】 建立一个程序,实现查询指 定出生日期以前的教师信息。
解:具体求解过程如下。 • ① 建立程序文件,输入以下程序代码:
② 保存、运行程序文件。
件,输入以下程序代码:
② 保存、运行程序文件。
• 保存程序文件名为“accept命令示例 .prg”。
• 当运行该程序文件时,在Visual FoxPro主窗口显示“请输入要查询教师的教 师编号:”,在光标插入处输入要查询的教 师编号,如输入“0000221”按Enter键,则 将其存入内存变量JSBH中,程序将继续执 行。运行结果如图8.7所示。