项目8程序设计初步【项目描述】项目8包括五个实训任务:任务8.1程序编辑、编译和运行任务8.2顺序语句与数组任务8.3分支程序设计任务8.4循环程序设计任务8.5过程与自定义函数设计【项目目标】掌握创建和运行程序文件的方法和步骤。重点:掌握VisualFoxPro6.0程序的流程。理解VisualFoxPro6.0中的过程和函数。学会创建和运行程序文件。难点:应用程序设计的方法解决具体的问题。项目8程序设计初步【技能建构】VisualFoxPro6.0支持两种程序设计与开发的类型。它既支持过程化程序设计(ProceduralProgramming)语言,又支持面向对象(ObjectorientedProgramming)的程序设计方法。在这里我们主要介绍过程化程序设计,对面向对象的程序设计方法只作简单说明。过程化程序设计是用结构化编程语句来编写程序。这类方法容易把一个复杂的程序分成若干个较小的过程,每个过程都可单独进行调试。这类设计方法发展的总的思路是从程序员角度考虑使程序设计更简单,而较少从用户角度考虑。面向对象的程序设计其思想是面向对象,即设计的主要任务在于描述对象。程序是事件驱动的,因而在执行过程中,程序等待的是一个发生在对象上的事件。而发生什么事件则要看用户的操作。这类程序设计主要从如何方便与简化用户使用入手,由用户控制程序流向,这在一定程序上增加了编程的难度。一般而言,制作简单短小的应用程序,使用过程化编程方式比较容易,因而本章作为程序设计初步,将主要进行这方面的学习,同时也为后面的继续深入学习面向对象编程打下一个好的基础。项目8程序设计初步任务8.1程序的编写、编译和运行〖任务描述〗打开项目文件:“vfpp\学生管理.pjx”,学习程序的简单编写和运行。〖技能目标〗⑴理解程序编写的要求和目的;⑵会创建程序文件和运行程序文件;⑶学会调试程序并能正确运行出程序结果。〖任务分析〗学习VisualFoxPro6.0的目的就是要使用它的命令来组织和处理数据、完成一些具体任务。许多任务单靠一条命令是无法完成的,而是要执行一组命令来完成。如果采用在命令窗口逐条输入命令的方式进行,不仅非常麻烦,而且容易出错。特别是当该任务需要反复执行或者所包含的命令很多时,这种逐条输入命令执行的方式几乎是不可行的。这时应该采用程序的方式。项目8程序设计初步任务8.1程序的编写、编译和运行〖技能建构〗8.1.1创建程序文件VisualFoxPro6.0中创建程序文件的方法有以下三种:1.使用菜单创建程序文件选择系统菜单“文件”下拉菜单中的“新建”选项,或者单击常用工具栏上的“新建”按钮,打开“新建”对话框。单击“程序”单选按钮,再单击“新建文件”按钮,打开程序文件的编写窗口,此时就可以输入程序代码了。2.使用项目管理器创建程序文件打开或新建一个项目管理器。单击“代码”选项卡。选择“程序”选项,再单击“新建”按钮,即可打开程序文件的编写窗口。3.使用命令创建程序文件在命令窗口输入如下命令:命令格式:MODIFYCOMMAND[程序文件名]命令功能:创建程序文件按回车键后,VisualFoxPro6.0将打开程序文件的编写窗口。项目8程序设计初步任务8.1程序的编写、编译和运行项目8程序设计初步任务8.1程序的编写、编译和运行8.1.2存储程序文件程序输入完成后必须进行存储,存储方法有以下两种:(1)从“文件”下接菜单中选择“保存”选项,或者单击常用工具栏上的“保存”按钮,打开“另存为”对话框。(2)首先确定保存文件的文件夹,然后在“保存文档为”文本档中输入程序文件名,再单击“保存”按钮,将新建的程序文件存入指定位置中。程序一旦保存好了,就可以根据需要方便地修改和执行这些程序文件了。项目8程序设计初步任务8.1程序的编写、编译和运行8.1.3修改程序文件如果要修改程序文件,只要将该程序文件打开就可以进行修改了。修改程序文件的方法有以三种:1、使用菜单打开程序文件(1)、从“文件”下拉菜单中的“打开”选项,或者单击常用工具栏上的“打开”按钮,打开“打开”对话框。(2)、单击“文件类型”列表框中选择“程序(*.prg;*.spr;*.mpr;*.qpr)”类型,然后确定要打开的程序文件所在的文件夹,从文件名列表中选择要修改的程序文件,再单击“确定”按钮,即可打开该程序的编写窗口。此时就可以修改程序代码了。2、使用项目管理器打开程序文件如果程序包含在项目中,则可以在项目管理器中打开程序文件。(1)打开程序所在的项目管理器;(2)单击“代码”选项卡;(3)选择要修改的程序文件,然后单击“修改”命令按钮。与程序的输入一样,完成程序的修改后也必须将文件存入指定位置中。3、使用命令打开程序文件打开程序文件命令的一般格式:命令格式:MODIFYCOMMAND程序文件名命令功能:打开程序文件项目8程序设计初步任务8.1程序的编写、编译和运行8.1.4运行程序文件程序创建好了以后,就可以运行了。要运行一个程序,主要有三种方法:1、使用菜单运行程序文件(1)从“程序”下拉菜单中选择“运行”选项,打开“运行”对话框。(2)首先确定要运行的程序文件所在的文件夹,从文件列表中选择要运行的程序文件,再单击“确定”按钮,即可运行程序。2、使用项目管理器运行程序文件如果程序包含在项目中,则可以在项目管理器中运行程序。打开程序文件所在的项目管理器。单击“代码”选项卡。选择要运行的程序文件,然后单击“运行”命令按钮。3、使用命令运行程序文件运行程序文件命令的一般格式:命令格式:do程序文件名命令功能:运行程序文件项目8程序设计初步任务8.1程序的编写、编译和运行例1:求圆的面积:SettalkoffInput“请输入圆的半径:”torS=3.14*r*r?“圆的面积:”,S项目8程序设计初步任务8.1程序的编写、编译和运行〖任务小结〗程序是能够完成一定任务的命令的有序集合。这组命令被存放在称为程序文件或者命令文件的文本文件中。当运行程序时,系统会按照一定的次序自动执行包含在程序文件中的命令。与在命令窗口逐条输入命令相比,采用程序方式有如下好处:1.可以利用编辑器,方便地输入、修改和保存程序。2.可以用多种方式、多次运行程序。3.可以在一个程序中调用另一个程序。项目8程序设计初步任务8.2顺序语句与数组〖任务描述〗一个程序一般都包含数据输入、数据处理、和数据输出三个部分。数据输入和数据输出是编写许多程序都要面临的工作。本次任务介绍几种常见的输入和输出等赋值语句以及数组等,这在程序编写过程中是非常有用的。〖技能目标〗(1)掌握各种输入语句的格式和功能;(2)在程序设计中选用适当的输入语句;(3)学会使用数组赋值语句;〖任务分析〗实际应用中,有些数据是是预先知道的,这可以直接使用赋值语句:变量名=表达式来完成,而有些数据是用户根据实际需要临时输入的,VisualFoxPro6.0提供了交互式语句。项目8程序设计初步任务8.2顺序语句与数组〖技能建构〗VisualFoxPro6.0中经常使用的输入、输出语句有以下几种:8.2.1直接赋值语句命令格式:STORE表达式TO内存变量表命令功能:将表达式的值赋给一个或者多个内存变量功能注释:内存变量表是由逗号隔开的。例如:STORE0TOX,Y,Z项目8程序设计初步任务8.2顺序语句与数组8.2.2键盘输入语句命令格式:INPUT[提示信息]TO内存变量命令功能:该命令等待用户从键盘输入数据,用户可以输入任意合法的表达式。当用户以回车键结束输入时,系统将表达式的值存入指定的内存变量,程序继续运行。功能注释:输入的数据可以是常量、变量,也可以是一般表达式。但不能不输入任何内容直接回车按回车键。输入字符串时必须加定界符,输入逻辑型常量时要用圆点定界(如.T.),输入日期时间型常量时要用大括号(如{^2012-03-05})。例如:SETTALKOFFINPUT“请输入X的值:”TOXINPUT“请输入Y的值:”TOY?“X+Y=”,X+Y项目8程序设计初步任务8.2顺序语句与数组8.2.3接受数据语句命令格式:ACCEPT[提示信息]TO内存变量命令功能:该命令在程序执行中用于暂停,并提示用户输入数据到内存变量,按回车键结束。功能注释:输入的数据只能是字符型,不需要使用任何定界符将字符括起来。输入的字符型数据最多允许254个字符。如果不输入任何内容,仅以回车键响应,则内存变量的内容为一空串。例如:ACCEPT“请输入姓名:”TONAME项目8程序设计初步任务8.2顺序语句与数组8.2.4立即输入语句命令格式:WAIT[提示信息][TO内存变量][WINDOW[AT行,列]][NOWAIT][CLEAR][NOCLEAR][TIMEOUT表达式]命令功能:该命令显示提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续程序执行。例如:WAIT“请输入您的选择(1-9):”TOXUANZE项目8程序设计初步任务8.2顺序语句与数组8.2.5数组赋值语句命令格式:DIMENSION数组名1(行[,列])[数组名2(行[,列])]…命令功能:定义一维数组或者二维数组.功能注释:1、多个数组的名称之间用逗号分开。2、数组没有赋初值时其默认值为.F.,默认的类型为逻辑型例如:DIMENSIONSUZU(6),SHU(2,6)例3:运行下面程序段,查看数组变量的值:DIMEA(2,3)A=9DIMEA1(3)A1={^2012-03-05}DISPMEMO项目8程序设计初步任务8.2顺序语句与数组〖任务小结〗顺序结构:依次执行程序中的语句的程序结构称为顺序结构,这是最简单的程序结构。数组(array)是存储在一个变量中由单个变量名引用的有序数据集合。在vfp中,一个数组中的数据不必是同一种数据类型。常用的有一维数组,二维数组。数组元素通过一个数值下标来引用,如aa[2],aa[2,3]项目8程序设计初步任务8.3分支程序设计〖任务描述〗顺序结构是最简单的程序结构,它按命令在程序中出现的先后次序依次进行,但大多数的程序仅用顺序结构是无法解决的。本任务学习用于分支选择控制结构的程序设计。〖技能目标〗(1)掌握条件语句格式和功能;(2)掌握多重分支语句格式和功能;(3)学会使用分支结构程序设计思想解决问题;〖任务分析〗选择结构是根据条件的测试结果执行不同的操作。常用的选择结构设计命令有条件语句和多重分支语句项目8程序设计初步任务8.3分支程序设计〖技能建构〗8.3.1条件语句命令格式:IF条件语句序列1[ELSE语句序列2]ENDIF命令功能:当条件为真是,执行语句序列1,执行完后跳出ENDIF.否则如果有ELSE选项,则执行语句序列2,执行过错后跳出ENDIF;如果没有ELSE选项,就不执行任何操作而跳出ENDIF。项目8程序设计初步任务8.3分支程序设计例4:输入一个学生的成绩,如果成绩大于60(包含60),则输出“及格”,否则输出不及格。SETTALKOFFINPUT“请输入学生成绩:”TOCJIFCJ=60?”该学生成绩及格”ELSE?“该学生成绩不及格”ENDIFRETURN项目8程序设计初步任务8.3分支程序设计8.3.2多分支条件语句命令格式:DOCASECASE条件1语句充序列1CASE条件2语句充序列2……CASE条件N语句充序列N[OTHERWISE语句充序列]ENDCASE项目8程序设计初步任务8.3分支程序设计例5:输入一个学生的成绩,如果成绩大于95,则输出“非常优秀”,成绩达到85,则输出“优秀”,成绩达到75,则输出“良好”,成绩达到60,则输出“及格”,否则输出“不及格”。SETTALKOFFINPUT“请输入学生成绩:”TOCJDOCASECJ95?”该学生成绩非常优秀”CASECJ=85?“该学生成绩优秀”CASECJ=75?“该学生成绩良好”CASECJ=60?“该学生成绩合格”OTHERWISE?“该学生成绩不及格”ENDCASE项目8程序设计初步任务8.3分支程序设