版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章程序设计及过程基础第6章程序设计及过程基础1VisualFoxPro的工作方式VisualFoxPro系统提供有两种工作方式。单命令方式:在命令窗口发布命令,或者通过系统菜单进行操作,也叫交互式方式;批命令执行方式:把许多条指令汇集在一起生成一个文件(扩展名为.prg),称为程序设计或者自动运行方式。程序可以看成是多条命令按一定规则组织成的一个有机的序列。程序设计特点:(1)可以保存所执行的命令集合,及存储程序文件;(2)可以以多种方式重复执行;(3)便于设计应用软件。VisualFoxPro的工作方式VisualFoxP26.1程序和程序文件有关此VisualFoxPro程序的几点说明:1.注释语句【格式1】NOTE<注释内容>【格式2】*<注释内容>【格式3】&&<注释内容>【功能】增强程序文件的易读性或放弃<注释内容>中语句的执行2.对话开关语句【格式】SETTALKOFF|ON【功能】关闭或打开命令执行时的对话开关3.命令的分行VisualFoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;可用续行符“;”,再按回车键。6.1.1基本说明6.1程序和程序文件有关此VisualF36.1.2程序文件的建立、修改与执行
1.建立或修改程序文件
命令方式
MODIFYCOMMAND[<盘符>][<路径>]〈程序文件名〉或
MODIFYFILE[<盘符>][<路径>]〈程序文件名〉必须输入后缀名.PRG
菜单方式
(1)打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;(2)项目管理器的“代码”选项卡。6.1.2程序文件的建立、修改与执行1.建立或修改程序文42.保存程序程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W组合键,在"另存为"对话框中指定程序文件的存放位置和文件名,并单击"保存"按钮保存程序文件并退出文本编辑器。程序文件的默认扩展名是.PRG。2.保存程序程序输入、编辑完毕,单击【文件】|【保存】菜单项53.执行程序(1)工具栏方式当准备运行的程序窗口为活动窗口时,单击运行图标(2)菜单方式【程序】|【运行】(3)命令方式【格式】DO[<盘符>][<路径>\]<文件名>3.执行程序(1)工具栏方式(2)菜单方式64.程序执行过程及结束条件执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕或者执行到以下命令:①CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口;②DO:调用执行另一个程序③RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口;④QUIT:结束程序执行并退出VisualFoxPro系统,返回操作系统4.程序执行过程及结束条件执行程序文件时,将依次执行文件中76.1.3程序设计的三个过程
1.数据输入
原始数据,可以从键盘输入,也可以从表中输入;当在程序中直接赋值的时候,改过程可以省略;2.计算处理
根据解决的问题,用一种算法书写出所需要的语句。3.数据输出
把计算的结果输出,一般是屏幕,也可以有其它方式的输出。6.1.3程序设计的三个过程1.数据输入2.计算处理86.1.4输入输出命令1.ACCEPT命令【格式】ACCEPT[<提示信息>]TO<内存变量>【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。执行后暂停,等待用户从键盘输入一串字符,回车,将字符串赋给变量,程序继续向下执行。该命令只接受字符型数据,输入的字符串不需要加定界符。6.1.4输入输出命令1.ACCEPT命令9【例】编程从键盘输入某表的文件名,要求打开该表并显示其内容。SETTALKOFFCLEARACCEPT"请输入表名"TOBBBUSE&BBBLISTUSESETTALKONRETURN【例】编程从键盘输入某表的文件名,要求打开该表并显示其内容。10【例】编写程序,在JBQK表中查找并显示任意一个职工的情况。USEjbqkACCEPT"请输入职工的姓名:"TOXMLOCAFOR姓名=XM?"职工"+XM+"的基本情况如下:"?"职工号:"+编号?"姓别:"+性别?"部门:"+部门?"出生日期:"+DTOC(出生年月)use【例】编写程序,在JBQK表中查找并显示任意一个职工的情况。112.INPUT命令
【格式】INPUT[<提示信息>]TO<内存变量>【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量
可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给<内存变量>。2.INPUT命令12【例】写程序:从键盘输入两个任意整数,计算这两个数的和、差、积、商。CLEARINPUT"请输入第一个数:"TOAINPUT"请输入第二个数:"TOB?"这两个数的和为:",A+B?"这两个数的差为:",A-B?"这两个数的积为:",A*B?"这两个数的商为:",A/B【例】写程序:从键盘输入两个任意整数,计算这两个数的和、差、13【例】从键盘输入两个任意正数,编程求以两数为边长的长方形面积。程序文件名为PROG4.PRGSETTALKOFFCLEARINPUT"长方形一边的长为:"TOAINPUT"长方形另一边的长为:"TOBS=A*B?"长方形的面积为:",SSETTALKONRETURN【例】从键盘输入两个任意正数,编程求以两数为边长的长方形面积143.WAIT命令【格式】WAIT[<提示信息>][TO<内存变量>][WINDOW[AT<行>,<列>]][TIMEOUT<数值表达式>]【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。该命令将输入单个字符若用户是按Enter键或单击鼠标,<内存变量>的值为空串。3.WAIT命令【格式】WAIT[<提示信息>][TO<内15【例】在课程表中显示任意一门课程的情况。SETTALKOFFCLEARUSE课程WAIT"请输入课程序号(1—5):"TON;WINDOWSAT30,40TIMEOUT3IFVAL(N)<1.OR.VAL(N)>5WAIT"输入无效,结束程序运行!"WINDOWTIMEOUT5RETURNELSESTORE"K0"+NTOAAALISTFOR课程号=AAAENDIFUSESETTALKONRETURN【例】在课程表中显示任意一门课程的情况。164.三条输入命令的异同ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;
WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;
INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。4.三条输入命令的异同175.格式化输入输出命令格式:@<行,列>[SAY<表达式>][FONT“字体”,字号][GET<变量名>][FONT“字体”,字号][DEFAULT<表达式>]功能:在屏幕指定行列输出表达式的值并修改内存变量的值。说明:1)<行,列>中行自上而下编号,列自左至右编号,编号从0开始,行列可以使用小数精确定位;2)省略SAY选项,GET变量值在行列指定位置开始显示,若选SAY选项,先显示表达式的值,然后再显示GET变量值;3)FONT选项设置表达式和内存变量的字体和字号;4)GET中的变量必须有初值或用[DEFAULT<表达式>]中的<表达式>命令定值;5)GET选项必须用READ命令激活。5.格式化输入输出命令格式:18【例】查找学生成绩大于等于指定成绩的且数学大于等于指定分数的学生学号,姓名,入学成绩,数学成绩。clear@10,10say"输入入学成绩:"getrxcjdefault150read@10,10say"输入数学分数:"getsxfsdefault60read@10,10say"入学成绩为"+str(rxcj)+"数学成绩为"+str(sxfs)select学生.学号,学生.姓名,学生.入学成绩,学生成绩.数学;from学生,学生成绩where学生.入学成绩>=rxcjand学生成绩.数学>=sxfs;and学生.学号=学生成绩.学号return【例】查找学生成绩大于等于指定成绩的且数学大于等于指定分数196.1.5计算机算法的概念广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”;对同一个问题,可以有不同的解题方法和步骤;为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。6.1.5计算机算法的概念广义地说,为解决一个问题而采取20计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。计算机算法可分为两大类别:21S1:输入半径rS2:计算周长l=2*PI()*rS3:计算面积s=PI()*r*rS4:输出周长和面积S5:结束
问题1
输入半径r,输出圆的周长和面积?顺序结构是指在程序执行时,根据程序中语句的书写顺序依次执行的命令序列,从第一条语句开始执行到最后一条语句。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。S1:输入半径r问题1输入半径r,输出圆的周长和面积?22S1:输入年份到变量y;S2:若y不能被4整除,则输出y“不是闰年”。然后转到S6;S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6;S4:若y能被400整除,输出y“是闰年”,然后转到S6;S5:输出y“不是闰年”;S6:结束
问题2
输入一个年份,判断这一年是否是闰年,并将结果输出。分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。S1:输入年份到变量y;问题2输入一个年份,判断这一年是23
以上算法中每做一步都分别分离出一些范围(已能判定为闰年或非闰年),逐步缩小范围,直至执行S5时,只可能是非闰年。“其它”包括能被4整除,又能被100整除,而不能被400整除的那些年份(如1900)是非闰年。以上算法中每做一步都分别分离出一些范围(已能判定为闰年或24在处理实际问题时,只有顺序结构是不够的,经常会遇到一些条件的判断,流程根据条件是否成立有不同的流向。这种先根据条件做出判断,再决定执行哪一种操作的结构称为分支结构,也称为选择结构。分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。在处理实际问题时,只有顺序结构是不够的,25问题3
求1×2×3×4×5的值,并输出出来。
步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120太繁琐如果要求1×2×…×1000,则要写999个步骤问题3求1×2×3×4×5的值,并输出出来。步骤1:先求26
S1:使p=1;
S2:使i=2;
S3:使p×i,乘积仍放在变量p中,可表示为:p=p*i;
S4:使i的值加1,即i=i+1;
S5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5,否则,转S6;S6:结束,最后得到p的值就是5!的值。可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果,算法可改写:S1:使p=1;可以设两个变量:一个变量代表被乘数,一个变27
用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时要反复多次执行S3,S4,S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。
循环结构循环结构能够使某些语句或程序段重复执行若干次。即从某处开始,按照一定条件反复执行某一处理步骤,反复执行的处理步骤称为循环体。用这种方法表示的算法具有通用性、灵活性。S3到S528程序的基本结构1.顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。2.分支结构分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3.循环结构循环结构则能够使某些语句或程序段重复执行若干次。程序的基本结构1.顺序结构3.循环结构29用流程图表示算法美国国家标准化协会ANSI(AmericanNationalStandardInstitute)规定了一些常用的流程图符号:起止框判断框处理框输入/输出框注释框流向线连接点用流程图表示算法美国国家标准化协会ANSI(American30流程图是表示算法的较好的工具。一个流程图包括以下几部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的文字说明。流程图是表示算法的较好的工具。一个流程图包括以下几部分:31例将求5!的算法用流程图表示如果需要将最后结果打印出来,可在菱形框的下面加一个输出框。
例将求5!的算法用流程图表示如果需要将最后结果打印出来,32
例
判定2000~2500年中的每一年是否闰年,将结果输出用流程图表示算法要比用文字描述算法逻辑清晰、易于理解。例判定2000~2500年中的每一年是否闰年,将33三种基本结构的图示
顺序结构选择结构三种基本结构的图示顺序结构选择结构34当型(While型)循环结构
直到型(Until型)循环
当型(While型)循环结构直到型(Until型)循环35三种基本结构的共同特点:(1)只有一个入口。(2)只有一个出口。(3)结构内的每一部分都有机会被执行到。(4)结构内不存在“死循环”(无终止的循环)。三种基本结构的共同特点:36
图中没有一条从入口到出口的路径通过A框不正确的流程表示:流程内的死循环图中没有一条从入口到出口的路径通过A框不正确的流程表371.
编写程序文件P1.PRG,运行程序,观察结果。要求程序完成以下步骤:
(1)用SQL语句中CREATETABLE创建一个学生成绩表,其中包括如下字段:姓名C(8)、课程名C(10)、成绩N(3)
(2)用SQL语句中INSERTINTO添加如下数据张三计算机90
李四英语80(3)用SELECT查询语句查询所有记录。
6.2程序的三种基本结构CLEARCREATETABLE学生成绩2(姓名C(8),课程号C(10),成绩N(3))INSERTINTO学生成绩2VALUES("张三","计算机",90)INSERTINTO学生成绩2VALUES("李四","英语",80)SELECT*FROM学生成绩26.2.1顺序结构
1.
编写程序文件P1.PRG,运行程序,观察结果。要381.单向分支(1)语句格式:
IF〈条件表达式〉〈语句序列〉ENDIF(2)语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈语句序列〉;否则,执行ENDIF后面的第一条命令。6.2.2选择结构
1.单向分支6.2.2选择结构39CLEARINPUT"A:"TOAINPUT"B:"TOBINPUT"C:"TOCZ=B^2-4*A*CIFZ>=0X1=(-B+SQRT(Z))/(2*A)X2=(-B-SQRT(Z))/(2*A)?X1,X2ENDIF【例】求一元二次方程AX2+BX+C=0的实根。CLEAR【例】求一元二次方程AX2+BX+C=0的实根。40
2.双向分支(1)语句格式:IF〈条件表达式〉〈语句序列1〉ELSE〈语句序列2〉ENDIF(2)语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈语句序列1〉中的命令;否则,执行〈语句序列2〉中的命令;执行完〈语句序列1〉或〈语句序列2〉后都将执行ENDIF后面的第一条命令。2.双向分支41CLEARINPUT"A:"TOAINPUT"B:"TOBINPUT"C:"TOCZ=B^2-4*A*CIFZ>=0X1=(-B+SQRT(Z))/(2*A)X2=(-B-SQRT(Z))/(2*A)?"有实根"?X1,X2ELSE
【例】求一元二次方程AX2+BX+C=0的根,包括实根和虚根。X1=-B/(2*A)X2=sqrt(-Z)/(2*A)?"有虚根"?"X1="+STR(X1,8,2)+;"+"+STR(X2,8,2)+"i"?"X2="+STR(X2,8,2)+;"-"+STR(X2,8,2)+"i"ENDIFCLEAR【例】求一元二次方程AX2+BX+C=0的根,包括42【例】输入一个人名,并在表JBQK中查找,若找到了,显示相应的记录;若没有找到,显示没有找到信息。clearusejbqkaccept"请输入姓名:"toxmlocatefor姓名=xmifnoteof()dispelse?"查无&xm.这个人"endifuse【例】输入一个人名,并在表JBQK中查找,若找到了,显示相应43
3.IF语句的多重嵌套IF〈条件表达式〉IF〈语句序列1〉ELSE〈语句序列2〉ENDIFELSE〈语句序列3〉ENDIF
必须保证IF~ELSE~ENDIF一一对应,不允许交叉嵌套3.IF语句的多重嵌套必须保证44【例】假设收入(P)与税率(R)的关系如下表,编程求税金。
0 P<800R=0.05 800≤P<20000.08 2000≤P<50000.1 P≥5000
INPUT"请输入收入:"TOPIFP<800R=0ELSEIFP<2000R=0.05ELSEIFP<5000R=0.08ELSER=0.1ENDIFENDIFENDIFTAX=P*R?"税金为:",TAX【例】假设收入(P)与税率(R)的关系如下表,编程求税金。45【例】编程实现输入三个数,输出最大的数input"1:"toainput"2:"tobinput"3:"tocifa>bifa>c?aelse?cendifelseifb>c?belse?cendifendif【例】编程实现输入三个数,输出最大的数input"1:"464.多分支选择语句多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。(1)语句格式:DOCASECASE〈条件表达式1〉<语句序列1〉CASE〈条件表达式2〉<语句序列2〉
…
…CASE〈条件表达式N-1〉〈语句序列N-1〉][OTHERWISE〈语句序列N〉]ENDCASE4.多分支选择语句47
(2)语句功能:该语句根据给出的N个〈条件表达式〉的值,选择N+1个〈命令行序列〉中的一个执行。当所有CASE中〈条件表达式〉的值都是假时,如果有OTHERWISE项,则执行〈命令行序列N+1〉,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。(2)语句功能:48【例】假设收入(P)与税率(R)的关系如下表,编程求税金。
0 P<800R=0.05 800≤P<20000.08 2000≤P<50000.1 P≥5000INPUT"请输入收入:"TOPDOCASECASEP<800R=0CASEP<2000R=0.05CASEP<5000R=0.08OTHERWISER=0.1ENDCASETAX=P*R?"税金为:",TAX【例】假设收入(P)与税率(R)的关系如下表,编程求税金。I49给出一百分制成绩,要求输出成绩等级‘A’、’B’、’C’、’D’、’E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘E’。INPUT"请输入X值:"TOXDOCASECASEX>=90?'A'CASEX>=80?'B'CASEX>=70?'C'CASEX>=60?'D'OTHERWISE?'E'ENDCASEINPUT"请输入X值:"TOXIFX>=90?'A'ELSEIFX>=80?'B'ELSEIFX>=70?'C'ELSEIFX>=60?'D'ELSE?'E'ENDIFENDIFENDIFENDIF给出一百分制成绩,要求输出成绩等级‘A’、’B’、’C’、’50IF…
…ENDIF和DOCASE…
…ENDCASE必须配对使用,DOCASE与第一个CASE〈条件表达式〉之间不应有任何命令。〈条件表达式〉可以是各种表达式或函数的组合,其值必须是逻辑值。〈语句序列〉可以由一个或多个命令组成,可以是条件控制语句组成的嵌套结构。DOCASE…
…ENDCASE命令,每次最多只能执行一个〈语句序列〉。在多个CASE项的〈条件表达式〉值为真时,只执行第一个。使用选择语句应注意的几点IF……ENDIF和DOCASE……ENDCASE516.2.3循环结构
一个循环结构一般应具备如下几个条件:(1)循环的初始条件:给循环变量赋初值;(2)循环头:循环语句的起始,设置、判断循环条件;(3)循环尾:循环语句的结尾;(4)循环体:位于循环头和循环尾之间、循环控制重复执行的语句序列6.2.3循环结构一个循环结构一般应具备如下几个条件:52循环结构
循环继续表达式循环变量初值表达式要反复执行的语句
循环变量变化表达式下一条语句不满足循环结构循环继续表达式循环变量初值表达式要反复执行的语句53循环结构
1.DOWHILE循环语句【格式1】DOWHILE<条件表达式><语句序列>ENDDO循环结构1.DOWHILE循环语句54【例】编程求1+2+3+……+100S=0&&用于累加和I=1&&循环变量DOWHILEI<=100
ENDDO?"1+2+3+……+100=",SS=S+II=I+1将100改为N呢?(N从键盘输入)【例】编程求1+2+3+……+100S=0&&用于累加和S55【例】编程求1-3+5-7……101S=0I=1f=1DOWHILEI<=101s=①I=②f=-fENDDO?"1-3+5-7……101=",Ss=s+i*fi=i+2【例】编程求1-3+5-7……101S=0s=s+i*f56记录指针控制的循环实现这种循环的方法:利用逻辑表达式.NOT.EOF()作为控制条件,在循环体内设置指针移动指令,当记录指针指向表中最后一条记录后面时,条件.not.eof()为.F.,退出循环
DOWHILENOT.EOF() [<语句序列>]
skip
ENDDO记录指针控制的循环实现这种循环的方法:利用逻辑表达式.NOT57【例】用表记录指针控制循环,编写程序求表JBQK中最高工资和最低工资。clearusejbqkstore基本工资toma,miDOWHILE.NOT.EOF()ma=max(基本工资,ma)mi=min(基本工资,mi)SKIPENDDO?"最高工资=",ma?"最低工资=",mireturn【例】用表记录指针控制循环,编写程序求表JBQK中最高工资和58【例】用表记录指针控制循环,编写程序显示表JBQK中男职工的信息。clearusejbqkDOWHILE.NOT.EOF()if性别="男"
displayendifSKIPENDDOusereturn【例】用表记录指针控制循环,编写程序显示表JBQK中男职工的59【格式2】DOWHILE<条件表达式><语句序列1>[LOOP]<语句序列2>[EXIT]<语句序列3>ENDDOLOOP语句:强行返回到循环开始语句。EXIT语句:强行跳出循环,接着执行ENDDO后的语句【格式2】DOWHILE<条件表达式>LOO60【例】编程显示JBQK表中除“何兵"以外的所有记录。USEJBQKDOWHILE.NOT.EOF()IF姓名=="何兵" SKIP LOOP ENDIF
DISPLAYSKIPENDDO【例】编程显示JBQK表中除“何兵"以外的所有记录。61【例】输入一个数,判断是否为素数。(除1以外,只能被1和它本身整除的自然数叫素数,2是唯一的偶素数)INPUT"输入一个数:"TONi=2DOWHILEi<NIFMOD(N,i)=0&&N能被i整除
?str(n)+"不是素数"
EXITENDIFi=i+1ENDDOIFi>=N&&以上的DOWHILE循环为正常退出?str(n)+"是素数"ENDIF【例】输入一个数,判断是否为素数。INPUT"输入一个数:62循环结构的实现循环实现要点:(1)找出什么要反复执行(2)重复到何时结束重复步骤:
1输入一个数
2对正数求和共重复100次例:从键盘输入100个整数,求其中正数之和。store0tos,i,xdowhilei<100input"请输入一个数:"toxifx>0s=s+xendifi=i+1enddo?"正数之和为"+str(s,3)循环结构的实现循环实现要点:(1)找出什么要反复执行重复步63【格式】FOR<循环变量>=<初值>TO<终值>[STEP<步长>]<循环体>[LOOP][EXIT]ENDFOR2.FOR循环语句【格式】2.FOR循环语句64使用FOR循环语句的有关说明:①省略STEP<步长>,则〈步长〉为默认值1;②〈初值〉、〈终值〉和〈步长〉都可以是数值表达式,但这些表达式仅在循环语句开始执行时计算一次。循环语句执行过程中,初值、终值和步长是不会改变的,并由此确定循环的次数;③可以在循环体内改变循环变量的值,但会改变循环执行次数;④EXIT和LOOP命令可以出现在循环体内。执行LOOP命令时,结束本次循环,循环变量增加一个步长值,返回FOR循环头判断循环条件是否成立。执行EXIT命令时,程序跳出循环,执行循环尾后面的语句使用FOR循环语句的有关说明:65for语句循环变量赋初值在范围内?循环体for循环后的语句循环变量+1NYFOR…ENDFOR语句流程图for语句循环变量赋初值在范围内?循环体for循环后的语句循66【例】从键盘输入10个数,编程找出其中的最大值和最小值。SETTALKOFFCLEARINPUT"请从键盘输入一个数:"TOASTOREATOMAX,MINFORI=2TO10INPUT"请从键盘输入一个数:"TOAIFMAX<AMAX=AENDIFIFMIN>AMIN=AENDIFENDFOR?"最大值为:",MAX?"最小值为:",MINSETTALKONRETURN【例】从键盘输入10个数,编程找出其中的最大值和最小值。67【例】编程实现1+2+3+……+100S=0I=1DOWHILEI<=100S=S+II=I+1ENDDO?SS=0FORI=1TO100S=S+IENDFOR?S【例】编程实现1+2+3+……+100S=0S=068【例】编程求1-3+5-7……101S=0I=1f=1DOWHILEI<=101S=S+I*FI=I+2f=-fENDDO?SS=0f=1FORI=1TO101STEP2S=S+I*Ff=-fNEXT?S【例】编程求1-3+5-7……101S=0S=069【例】编程输出1—100之间的所有素数。CLEARFORM=1TO100STEP2FORI=3TOM-1IFMOD(M,I)=0EXITENDIFENDFORIFI>=M??MENDIFENDFOR内循环为:判断是否为素数编程求100以内的素数之和【例】编程输出1—100之间的所有素数。CLEAR内循环为:703.SCAN循环控制语句
"指针"型循环控制语句,即根据用户设置的表中的当前记录指针,决定循环体内语句的执行次数。
SCAN[〈范围〉][FOR〈条件表达式〉]〈语句序列〉ENDSCAN
DOWHILE.NOT.EOF()IF〈条件表达式〉〈语句序列〉ENDIFSKIPENDDO等价于:3.SCAN循环控制语句DOWHILE.NOT.E71SCAN语句初设记录指针在范围内?满足FOR条件?LOOPEXIT循环体ENDSCANSCAN循环后的语句记录指针+1NYYNSCAN语句初设记录指针在范围内?满足FOR条件?LOOPE72【例】逐条显示在JBQK表中性别为"男"的所有记录。USEJBQKDOWHILE.NOT.EOF()IF性别="男"DISPLAYENDIFSKIPENDDOUSEJBQKSCANFOR性别="男"DISPLAYENDSCAN【例】逐条显示在JBQK表中性别为"男"的所有记录。734.循环语句总结(1)三条语句的比较(2)使用循环语句的要点必须有操作来驱动循环的推进。如for语句里循环变量的自加(i=i+1),dowhile里的skip语句循环必须设定终结条件,以使循环停止下来。A、若事先知道循环次数,一般使用DOWHILE或FOR循环。B、若事先不知道循环的次数,只知道在某一条件满足时结束循环,一般使用DOWHILE循环。C、DOWHILE循环和FOR循环可以用于对表的循环处理,也可以用于其它循环处理,而SCAN循环只用于对表的处理。SCAN循环语句的功能是移动表内指针,所以不能处理除了表之外的其它问题。D、在循环次数N未知下,三种循环结构均可以用来处理表中记录,但最简单、最方便的结构是Scan…EndScan循环结构。4.循环语句总结(1)三条语句的比较(2)使用循环语句的要点745.多重循环多重循环即循环的嵌套,是在一个循环结构的循环体中又包含另一个循环。我们称外层循环为外循环,被包含的循环为内循环。嵌套层数一般没有限制,但内循环的循环体必须完全包含在外循环的循环体中,不能相互交叉。正确的嵌套关系如: DOWHILE<条件表达式1><语句序列11>DOWHILE<条件表达式2><语句序列21>DOWHILE<条件表达式3><语句序列3>ENDDO<语句行序列22>ENDDO<语句行序列12>ENDDO5.多重循环75X=1DOWHILEX<=9Y=1DOWHILEY<=XS=X*Y??STR(Y,1)+"*"+STR(X,1)+"="+STR(S,2)+""Y=Y+1ENDDO?X=X+1ENDDO【例】编程输出下三角形乘法口诀表。FORX=1TO9FORY=1TOXS=X*Y??STR(Y,1)+"*"+STR(X,1)+"="+STR(S,2)+""ENDFOR?ENDFORX=1【例】编程输出下三角形乘法口诀表。FORX=1TO766.3多模块程序设计
在程序设计时,常遇到这种情况,在同一个程序的不同处,或在不同程序中重复出现具有相同功能的程序段。如果每次都重复编写,将使程序变得十分冗长,而且浪费存储空间。解决这个问题的方法是单独设计这些共用程序段,需要时再调用。这些共用程序在有些高级语言中称为子程序,在vfp中称为过程。调用过程的程序就称为主程序或调用程序。
调用程序与过程之间的关系是调用关系,调用的特点是:从调用程序中调用过程,在执行完过程后将返回调用程序调用处的下一条语句继续执行。从结构和调用方法上看,过程分外部过程(命令文件)、内部过程和函数。建立外部过程的方法与建立源程序(即程序文件)的方法完全相同,其扩展名也是.prg;内部过程是指调用程序尾部所附过程和过程文件中的过程;函数实质上也是一段程序或者一个模块,它与内部过程的区别就在于,函数调用后要有返回值,而过程调用不用返回值。注意:过程文件现在已很少使用。6.3多模块程序设计在程序设计时,常遇到这种情况,77定义内部过程格式:PROCDURE<过程名> <命令序列> [RETURN[<表达式>]][ENDPROC]说明:过程名必须以字母或下划线开头,字母、数字和下划线的组合;RETURN命令是过程返回命令,控制将转回到调用程序(或命令窗口),并返回表达式的值,若省略表达式,则返回逻辑值.T.;缺省RETURN命令,则自动执行一条隐含的RETURN命令;定义内部过程格式:78定义过程文件过程文件由若干各自独立的过程组成语法 PROCEDURE<过程名1>
<命令序列1> [RETURN[<表达式>]] [ENDPROC] …… PROCEDURE<过程名n>
<命令序列> [RETURN[<表达式>]] [ENDPROC]定义过程文件过程文件由若干各自独立的过程组成79调用过程文件在调用过程之前,必须先打开过程文件格式SETPROCEDURETO[<过程文件1>[,<过程文件2>,...]][ADDITIVE]功能打开指定的过程文件。说明(1)ADDITIVE表示并不关闭已打开的过程文件。(2)调用其他命令文件中的过程要先打开此命令文件,再用Do<过程名>或<过程名>()调用。调用过程文件在调用过程之前,必须先打开过程文件80关闭过程文件语句当过程文件不再用时应将其关闭,以节省内存空间。格式1:SETPROCEDURETO功能:关闭所有已打开的过程文件。格式2:Close/RELEASEPROCEDURE<过程文件1>[,<过程文件2>,...]
功能:关闭所指定的过程文件。关闭过程文件语句当过程文件不再用时应将其关闭,以节省内存空间81主程序与子程序放在同一个程序文件中格式1:do<过程名>[with实参1,实参2….]…dosub1…dosub2…Return&&子程序sub1.prgPROCDURESub1 …ENDPROC&&子程序sub2.prgPROCDURESub2 …ENDPROC主程序主程序与子程序放在同一个程序文件中…主程序82子程序存放在另一个程序(过程)文件中使用SetProcedureTo过程文件名打开过程文件&&打开过程文件SetProcedureToMyFroc…dosub1…dosub2…return&&主程序&&子程序sub1.prgPROCDURESub1 …ENDPROC&&子程序sub2.prgPROCDURESub2 …ENDPROC&&过程文件MyProc.prg子程序存放在另一个程序(过程)文件中&&打开过程文件&&主程83内部过程(1)clearDoGetAreareturnProcedureGetArea input"InputR="toR ifR>0then Area=pi()*R*R ?"圆的面积为Area="+Str(Area,10,2) else messagebox("圆的半径必须大于0") endifEndproc内部过程(1)clear84内部过程(2)ClearSetProcedureToMyProcDoGetAreaSetProcedureTo&&MyProc.prgProcedureGetArea input"InputR="toR ifR>0then Area=pi()*R*R ?"圆的面积为Area="+Str(Area,10,2) else messagebox("圆的半径必须大于0") endifEndproc内部过程(2)Clear&&MyProc.prg85参数传递在过程中接收参数的命令:命令格式1:PARAMETERS
<形参变量1>[,<形参变量2>,…]命令格式2:LPARAMETERS
<形参变量1>[,<形参变量2>,…]说明:PARAMETERS语句只能在过程中使用,且必须作为过程中PROCEDURE语句后的第一条可执行语句。形参的数目不能少于实参的数目,多余的形参变量初值为逻辑假.F.,形式参数与实在参数要类型对应一致PARAMETERS中形式参数只能是变量,且为私有变量,LPARAMETERS中形式参数为局部变量,过程结束后,即被清除。参数传递在过程中接收参数的命令:86调用参数传递(1)调用程序向被调用过程传递参数的命令:命令格式1:DO
<过程名>
WITH
<实参1>[,<实参2>,…]命令格式2:<过程名>
WITH
<实参1>[,<实参2>,…]说明:①DO
WITH语句中的参数也叫实参②实参可以是任何类型的常量、变量和表达式,有多个参数时,各参数之间用逗号分隔。③若参数表中的内存变量与库文件的字段名相同时,则内存变量前应冠以m->,以区别同名字段变量,否则字段变量优先于内存变量。④参数表中的内存变量必须先定义或赋值才能使用。⑤采用命令格式1,实参是常量,按值传递,即把实参的值传给形参;实参是变量,按引用传递,即把实参的地址传给形参;⑥采用命令格式2,默认情况下都以按值方式传递参数,如果实参是变量,可以通过命令SETUDFPARMS重新设置参数传递的方式。调用参数传递(1)调用程序向被调用过程传递参数的命令:87求N!的过程ClearInput"请输入N="ToNF=1DoGetJCWithN,F?Str(N)+"!=",FProcedureGetJC ParametersN,F F=1 fori=1ton F=F*I NextEndProc求N!的过程Clear88参数过程示例*子程序CalcArea.prgProcedureCalcAreaPARAMETERSR,SS=3.1416*R*RRETURN*主程序,GetCirAera.prgS=0SetProcedureToCalcArea.PrgINPUT"半径="TOXDOCalcAreaWITHX,S?“圆面积=",SSetProcedureTo参数过程示例*子程序CalcArea.prg89自定义函数语法FUNCTION<函数名> <命令序列> [RETURN[<表达式>]][ENDFUNC]调用函数与程序在一个文件中函数名(参数)函数与程序在不同的文件中SetProcedureTo过程文件名函数名(参数)SetProcedureto自定义函数语法90求N!的函数ClearInput"请输入N="ToN?Str(N)+"!=",NJC(N)FunctionNJC ParametersN F=1 Fori=1toN F=F*i next returnFEndFun求N!的函数Clear91自定义函数示例&&函数CircleS.prgFunctionCircleSParametersXreturn3.1416*X*XEndFun*函数调用,主程序SetproceduretoCircleSinput"半径r="tor?"半径=",r?"面积=",circleS(r)setproceduretoreturn自定义函数示例&&函数CircleS.prg92过程嵌套调用VFP允许执行一个过程时,调用第二个过程;执行第二个过程时,调用第三个过程。这样一个接一个地调用下去,称为过程嵌套调用。系统允许这种嵌套最多126层。主程序过程1过程2...
...
...DO过程1
DO过程2DO过程3...
...
......
...
......
...
...RETURNRETURNRETURN
过程嵌套调用VFP允许执行一个过程时,调用第二个过程;执93变量的作用域变量的作用域指的是变量在什么范围内是有效或能够被访问的VFP中,以变量的作用域来分,内存变量分三类:公用变量、私有变量及局部变量。变量的作用域变量的作用域指的是变量在什么范围内是有效或能够被94公用变量公用变量也称为全局变量,是在主程序和子程序中都有效的变量。命令格式PUBLIC
<内存变量名1>[,<内存变量名2>,<内存变量名3>...]命令功能定义公用变量注:在执行CLEARMEMORY、RELEASE、QUIT等命令后,公共变量才被释放;公用变量公用变量也称为全局变量,是在主程序和子程序中都有效的95私有变量私有变量是在程序中直接使用而由系统自动隐含建立的变量。私有变量可以在使用中建立示例:STORE23TOXY1说明私有变量只能在建立它的模块或下层模块中使用;私有变量在建立它的模块程序运行结束时被释放。私有变量私有变量是在程序中直接使用而由系统自动隐含建立的变量96局部变量局部变量是只能在建立它的模块中使用的变量命令格式LOCAL<内存变量名1>[,<内存变量名2>,<内存变量名3>...]说明局部变量要先建立后使用,初值是逻辑假.F.。局部变量不能在上层或下层模块中使用,只能在建立它的模块中使用;局部变量在建立它的模块程序运行结束时被释放。局部变量局部变量是只能在建立它的模块中使用的变量97变量作用域示例clearPublicx1Localx2X1=1Store100TOx2,x3dop6?'主程序中...'?'x1=',x1?'x2=',x2?'x3=',x3returnprocedurep6 ?'子程序中...' x1=3x2=10x3=20 ?'x1=',x1 ?'x2=',x2 ?'x3=',x3endproc变量作用域示例clearprocedurep698演讲完毕,谢谢观看!演讲完毕,谢谢观看!99第6章程序设计及过程基础第6章程序设计及过程基础100VisualFoxPro的工作方式VisualFoxPro系统提供有两种工作方式。单命令方式:在命令窗口发布命令,或者通过系统菜单进行操作,也叫交互式方式;批命令执行方式:把许多条指令汇集在一起生成一个文件(扩展名为.prg),称为程序设计或者自动运行方式。程序可以看成是多条命令按一定规则组织成的一个有机的序列。程序设计特点:(1)可以保存所执行的命令集合,及存储程序文件;(2)可以以多种方式重复执行;(3)便于设计应用软件。VisualFoxPro的工作方式VisualFoxP1016.1程序和程序文件有关此VisualFoxPro程序的几点说明:1.注释语句【格式1】NOTE<注释内容>【格式2】*<注释内容>【格式3】&&<注释内容>【功能】增强程序文件的易读性或放弃<注释内容>中语句的执行2.对话开关语句【格式】SETTALKOFF|ON【功能】关闭或打开命令执行时的对话开关3.命令的分行VisualFoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;可用续行符“;”,再按回车键。6.1.1基本说明6.1程序和程序文件有关此VisualF1026.1.2程序文件的建立、修改与执行
1.建立或修改程序文件
命令方式
MODIFYCOMMAND[<盘符>][<路径>]〈程序文件名〉或
MODIFYFILE[<盘符>][<路径>]〈程序文件名〉必须输入后缀名.PRG
菜单方式
(1)打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;(2)项目管理器的“代码”选项卡。6.1.2程序文件的建立、修改与执行1.建立或修改程序文1032.保存程序程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W组合键,在"另存为"对话框中指定程序文件的存放位置和文件名,并单击"保存"按钮保存程序文件并退出文本编辑器。程序文件的默认扩展名是.PRG。2.保存程序程序输入、编辑完毕,单击【文件】|【保存】菜单项1043.执行程序(1)工具栏方式当准备运行的程序窗口为活动窗口时,单击运行图标(2)菜单方式【程序】|【运行】(3)命令方式【格式】DO[<盘符>][<路径>\]<文件名>3.执行程序(1)工具栏方式(2)菜单方式1054.程序执行过程及结束条件执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕或者执行到以下命令:①CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口;②DO:调用执行另一个程序③RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口;④QUIT:结束程序执行并退出VisualFoxPro系统,返回操作系统4.程序执行过程及结束条件执行程序文件时,将依次执行文件中1066.1.3程序设计的三个过程
1.数据输入
原始数据,可以从键盘输入,也可以从表中输入;当在程序中直接赋值的时候,改过程可以省略;2.计算处理
根据解决的问题,用一种算法书写出所需要的语句。3.数据输出
把计算的结果输出,一般是屏幕,也可以有其它方式的输出。6.1.3程序设计的三个过程1.数据输入2.计算处理1076.1.4输入输出命令1.ACCEPT命令【格式】ACCEPT[<提示信息>]TO<内存变量>【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。执行后暂停,等待用户从键盘输入一串字符,回车,将字符串赋给变量,程序继续向下执行。该命令只接受字符型数据,输入的字符串不需要加定界符。6.1.4输入输出命令1.ACCEPT命令108【例】编程从键盘输入某表的文件名,要求打开该表并显示其内容。SETTALKOFFCLEARACCEPT"请输入表名"TOBBBUSE&BBBLISTUSESETTALKONRETURN【例】编程从键盘输入某表的文件名,要求打开该表并显示其内容。109【例】编写程序,在JBQK表中查找并显示任意一个职工的情况。USEjbqkACCEPT"请输入职工的姓名:"TOXMLOCAFOR姓名=XM?"职工"+XM+"的基本情况如下:"?"职工号:"+编号?"姓别:"+性别?"部门:"+部门?"出生日期:"+DTOC(出生年月)use【例】编写程序,在JBQK表中查找并显示任意一个职工的情况。1102.INPUT命令
【格式】INPUT[<提示信息>]TO<内存变量>【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量
可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给<内存变量>。2.INPUT命令111【例】写程序:从键盘输入两个任意整数,计算这两个数的和、差、积、商。CLEARINPUT"请输入第一个数:"TOAINPUT"请输入第二个数:"TOB?"这两个数的和为:",A+B?"这两个数的差为:",A-B?"这两个数的积为:",A*B?"这两个数的商为:",A/B【例】写程序:从键盘输入两个任意整数,计算这两个数的和、差、112【例】从键盘输入两个任意正数,编程求以两数为边长的长方形面积。程序文件名为PROG4.PRGSETTALKOFFCLEARINPUT"长方形一边的长为:"TOAINPUT"长方形另一边的长为:"TOBS=A*B?"长方形的面积为:",SSETTALKONRETURN【例】从键盘输入两个任意正数,编程求以两数为边长的长方形面积1133.WAIT命令【格式】WAIT[<提示信息>][TO<内存变量>][WINDOW[AT<行>,<列>]][TIMEOUT<数值表达式>]【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。该命令将输入单个字符若用户是按Enter键或单击鼠标,<内存变量>的值为空串。3.WAIT命令【格式】WAIT[<提示信息>][TO<内114【例】在课程表中显示任意一门课程的情况。SETTALKOFFCLEARUSE课程WAIT"请输入课程序号(1—5):"TON;WINDOWSAT30,40TIMEOUT3IFVAL(N)<1.OR.VAL(N)>5WAIT"输入无效,结束程序运行!"WINDOWTIMEOUT5RETURNELSESTORE"K0"+NTOAAALISTFOR课程号=AAAENDIFUSESETTALKONRETURN【例】在课程表中显示任意一门课程的情况。1154.三条输入命令的异同ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;
WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;
INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。4.三条输入命令的异同1165.格式化输入输出命令格式:@<行,列>[SAY<表达式>][FONT“字体”,字号][GET<变量名>][FONT“字体”,字号][DEFAULT<表达式>]功能:在屏幕指定行列输出表达式的值并修改内存变量的值。说明:1)<行,列>中行自上而下编号,列自左至右编号,编号从0开始,行列可以使用小数精确定位;2)省略SAY选项,GET变量值在行列指定位置开始显示,若选SAY选项,先显示表达式的值,然后再显示GET变量值;3)FONT选项设置表达式和内存变量的字体和字号;4)GET中的变量必须有初值或用[DEFAULT<表达式>]中的<表达式>命令定值;5)GET选项必须用READ命令激活。5.格式化输入输出命令格式:117【例】查找学生成绩大于等于指定成绩的且数学大于等于指定分数的学生学号,姓名,入学成绩,数学成绩。clear@10,10say"输入入学成绩:"getrxcjdefault150read@10,10say"输入数学分数:"getsxfsdefault60read@10,10say"入学成绩为"+str(rxcj)+"数学成绩为"+str(sxfs)select学生.学号,学生.姓名,学生.入学成绩,学生成绩.数学;from学生,学生成绩where学生.入学成绩>=rxcjand学生成绩.数学>=sxfs;and学生.学号=学生成绩.学号return【例】查找学生成绩大于等于指定成绩的且数学大于等于指定分数1186.1.5计算机算法的概念广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”;对同一个问题,可以有不同的解题方法和步骤;为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。6.1.5计算机算法的概念广义地说,为解决一个问题而采取119计算机算法可分为两大类别:数值运算算法:求数值解,例如求方程的根、求函数的定积分等。非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。计算机算法可分为两大类别:120S1:输入半径rS2:计算周长l=2*PI()*rS3:计算面积s=PI()*r*rS4:输出周长和面积S5:结束
问题1
输入半径r,输出圆的周长和面积?顺序结构是指在程序执行时,根据程序中语句的书写顺序依次执行的命令序列,从第一条语句开始执行到最后一条语句。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。S1:输入半径r问题1输入半径r,输出圆的周长和面积?121S1:输入年份到变量y;S2:若y不能被4整除,则输出y“不是闰年”。然后转到S6;S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6;S4:若y能被400整除,输出y“是闰年”,然后转到S6;S5:输出y“不是闰年”;S6:结束
问题2
输入一个年份,判断这一年是否是闰年,并将结果输出。分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。S1:输入年份到变量y;问题2输入一个年份,判断这一年是122
以上算法中每做一步都分别分离出一些范围(已能判定为闰年或非闰年),逐步缩小范围,直至执行S5时,只可能是非闰年。“其它”包括能被4整除,又能被100整除,而不能被400整除的那些年份(如1900)是非闰年。以上算法中每做一步都分别分离出一些范围(已能判定为闰年或123在处理实际问题时,只有顺序结构是不够的,经常会遇到一些条件的判断,流程根据条件是否成立有不同的流向。这种先根据条件做出判断,再决定执行哪一种操作的结构称为分支结构,也称为选择结构。分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。在处理实际问题时,只有顺序结构是不够的,124问题3
求1×2×3×4×5的值,并输出出来。
步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120太繁琐如果要求1×2×…×1000,则要写999个步骤问题3求1×2×
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024带家电房屋租赁合同
- 2024年塑料制品加工合同
- 2024-2025学年新教材高中化学第二章海水中的重要元素-钠和氯第二节第2课时氯气的实验室制法氯离子的检验练习含解析新人教版必修第一册
- 2024-2025学年初中物理电学同步专题点拨与强化专题17实验伏安法测电阻含解析
- 2024-2025学年高中历史第四单元亚洲觉醒的先驱单元评价含解析新人教版选修4
- 2024年二手机床设备购买协议模板
- 2024年城市更新项目水电暖设施改造合同
- 课题1 水资源及其利用(第2课时)(导学案)-九年级化学上册同步高效课堂(人教版2024)(解析版)
- 2024年吉阳区环卫所绩效考核
- 2024年企业间广告投放与媒体代理合同
- 《兄弟》作品简介名著导读PPT模板
- 数字政府建设工作总结自查报告
- 三年级上册美术第14课美丽的花挂毯沪教版课件6
- 中英文Bimco标准船舶管理协议--Shipman 2009
- 土木工程施工安全风险与管理措施探究
- 办公大楼供配电系统设计
- 四年级家长会(完美版)
- 医院投诉登记表1
- 基坑支护工程质量评估报告
- Q∕SY JS0126-2012 清管三通挡条技术要求
- 个人借条范本版(最新)word版
评论
0/150
提交评论