程序設(shè)計基礎(chǔ)_第1頁
程序設(shè)計基礎(chǔ)_第2頁
程序設(shè)計基礎(chǔ)_第3頁
程序設(shè)計基礎(chǔ)_第4頁
程序設(shè)計基礎(chǔ)_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第五章程序設(shè)計基礎(chǔ)2023/1/19第5章程序設(shè)計基礎(chǔ)25.1程序設(shè)計概述什么是程序?

程序是利用系統(tǒng)所提供的設(shè)計工具、按照程序設(shè)計語言的規(guī)范描述解決問題的算法并進行程序編寫的過程VFP程序由一系列代碼組成,代碼可以包括以命令形式出現(xiàn)的指令、函數(shù)或VFP可以理解的任何操作。

程序設(shè)計方法主要有兩類:

結(jié)構(gòu)化程序設(shè)計(StructuredProgramming,SP)面向?qū)ο蟪绦蛟O(shè)計(Object-orientedProgramming,OOP)2023/1/19第5章程序設(shè)計基礎(chǔ)35.1程序設(shè)計概述結(jié)構(gòu)化程序的原則

自頂向下、逐步求精、模塊化、限制使用轉(zhuǎn)移語句。結(jié)構(gòu)化程序三種基本結(jié)構(gòu):

順序、分支、循環(huán)結(jié)構(gòu)化程序設(shè)計本質(zhì)

功能設(shè)計:以功能為主進行設(shè)計,其方法是自頂向下、功能分解,它從外部功能上模擬客觀世界,其開發(fā)過程通常是從“做什么”到“如何做”。優(yōu)點:系統(tǒng)結(jié)構(gòu)性強,便于設(shè)計和理解缺點:該功能模型較難與現(xiàn)實世界的實際系統(tǒng)相吻合。2023/1/19第5章程序設(shè)計基礎(chǔ)45.1程序設(shè)計概述面向?qū)ο蟪绦蛟O(shè)計思想

世界由各種對象組成,任何事物都是對象,是某個對象類的實例,負載的對象可由簡單的對象組合而成。對象:對象是數(shù)據(jù)及作用于這些數(shù)據(jù)之上的操作結(jié)合在一起所構(gòu)成的獨立實體的總稱。類:是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的描述。

面向?qū)ο蟪绦蛟O(shè)計的三個重要特性:

封裝性、繼承性、多態(tài)性2023/1/19第5章程序設(shè)計基礎(chǔ)55.1程序設(shè)計概述面向?qū)ο蟪绦蛟O(shè)計的三個重要特性:封裝性:指對象是數(shù)據(jù)和處理該數(shù)據(jù)的方法所構(gòu)成的整體,外界只能看到其外部特性(消息模式、處理能力),其內(nèi)部特性(私有數(shù)據(jù)、處理方式)對外不可見。繼承性:反映的是類與類之間不同的抽象級別,根據(jù)繼承與被繼承的關(guān)系,類可分為基類和衍生類,基類也稱為父類,衍生類也稱為子類。多態(tài)性:在形式上表現(xiàn)為一個方法根據(jù)傳遞給它的參數(shù)的不同,可以調(diào)用不同的方法體,實現(xiàn)不同的操作。2023/1/19第5章程序設(shè)計基礎(chǔ)65.2結(jié)構(gòu)化程序設(shè)計5.2.1創(chuàng)建、修改和運行程序5.2.2順序結(jié)構(gòu)5.2.3分支結(jié)構(gòu)5.2.4循環(huán)結(jié)構(gòu)5.2.5過程與用戶自定義函數(shù)2023/1/19第5章程序設(shè)計基礎(chǔ)75.2結(jié)構(gòu)化程序設(shè)計5.2.1創(chuàng)建、修改和運行程序

創(chuàng)建、修改和運行程序的方法有很多,以下為命令的方式。創(chuàng)建程序的命令:MODIFYCOMMAND文件名(擴展名為*.PRG)

修改程序的命令:MODIFYCOMMAND運行程序的命令:

DOProgramName

[WITHParameterList

]2023/1/19第5章程序設(shè)計基礎(chǔ)85.2結(jié)構(gòu)化程序設(shè)計一旦運行程序文件,系統(tǒng)會自動地對程序文件(.prg)進行編譯(包括對程序的詞法檢查、語法檢查),生成“偽編譯”程序(.fxp)。執(zhí)行程序時,系統(tǒng)實質(zhì)上是執(zhí)行.fxp文件。程序結(jié)構(gòu):順序、分支、循環(huán)2023/1/19第5章程序設(shè)計基礎(chǔ)95.2.2順序結(jié)構(gòu)5.2.2順序結(jié)構(gòu)創(chuàng)建、修改和運行程序例5.1

下列程序的功能是計算圓的面積,其半徑為4.12。

STORE4.12TOPS=P*P*3.14?‘圓的面積為’,SAB2023/1/19第5章程序設(shè)計基礎(chǔ)105.2.2順序結(jié)構(gòu)5.2.2順序結(jié)構(gòu)創(chuàng)建、修改和運行程序例5.2

下列程序的功能是顯示一個字符串在另一個字符串中的位置。

C=“VisualFoxPro”CC=“Fox”?AT(CC,C)AB2023/1/19第5章程序設(shè)計基礎(chǔ)115.2.3分支結(jié)構(gòu)_單分支結(jié)構(gòu)(1)單分支結(jié)構(gòu)

IF條件語句1ENDIF說明:當(dāng)“條件”成立時執(zhí)行“語句1”,否則執(zhí)行ENDIF后面的語句例:n=1X=0IFn<=3X=2ENDIF?X條件成立?語句1yNENDIF后面的語句2023/1/19第5章程序設(shè)計基礎(chǔ)125.2.3分支結(jié)構(gòu)_雙分支結(jié)構(gòu)(2)雙分支結(jié)構(gòu)IF…ELS…ENDIF語句IF條件

語句組1ELSE

語句組2ENDIF說明:條件滿足執(zhí)行語句組1,否則執(zhí)行語句組2例:X=1Y=1IFX>2Y=0ELSEY=3ENDIF?Y條件成立?語句1語句2ENDIF后面的語句YN2023/1/19第5章程序設(shè)計基礎(chǔ)135.2.3分支結(jié)構(gòu)_雙分支結(jié)構(gòu)例5.3下列程序的功能是根據(jù)變量X決定變量Y的值(-1或1)。X=5IFx>0y=1ELSEy=-1ENDIF?y2023/1/19第5章程序設(shè)計基礎(chǔ)145.2.3分支結(jié)構(gòu)_多分支結(jié)構(gòu)(3)多分支結(jié)構(gòu)

DO

CASE

CASE

條件1

語句體1CASE

條件2

語句體2

………CASE

條件n

語句體nOTHERWISE

語句體n+1ENDCASE

條件1條件2條件n語句1語句n語句2YYY語句n+1ENDCASE后面的語句NNN……2023/1/19第5章程序設(shè)計基礎(chǔ)155.2.3分支結(jié)構(gòu)_多分支結(jié)構(gòu)例:X=85Y=space(0)DocasecaseX>=90Y=“優(yōu)秀”

caseX>=80Y=“良好”

caseX>=70Y=“中等”

caseX>=60Y=“及格”

otherwiseY=“不及格”EndCase?Y說明:case的個數(shù)與需要判斷的情況有關(guān)2023/1/19第5章程序設(shè)計基礎(chǔ)165.2.4循環(huán)結(jié)構(gòu)循環(huán)(Looping)是指同一語句組反復(fù)執(zhí)行若干次;循環(huán)必須設(shè)定循環(huán)條件,也就是說循環(huán)必須有出口語句2023/1/19第5章程序設(shè)計基礎(chǔ)175.2.4循環(huán)結(jié)構(gòu)

VFP中循環(huán)語句包括:

(1)FOR…ENDFOR(2)DOWHILE…ENDDO

(3)SCAN…ENDSCAN2023/1/19第5章程序設(shè)計基礎(chǔ)185.2.4循環(huán)結(jié)構(gòu)_FOR語句(1)FOR語句的格式:(預(yù)先知道循環(huán)的次數(shù))FOR循環(huán)變量賦初值

to終值

[step步長]

循環(huán)體

ENDFOR|next注意:當(dāng)步長為正數(shù)時,循環(huán)變量的初值要小于等于終值。當(dāng)步長為負數(shù)時,循環(huán)變量的初值要大于等于終值。當(dāng)步長為1時,[step步長]可以省略。

2023/1/19第5章程序設(shè)計基礎(chǔ)195.2.4循環(huán)結(jié)構(gòu)_FOR語句FOR語句的執(zhí)行流程為:1)將初值賦給循環(huán)變量2)判斷循環(huán)變量是否超出終值,若超出則結(jié)束循環(huán),否則執(zhí)行循環(huán)體。3)計算循環(huán)變量的值:循環(huán)變量=循環(huán)變量+步長注意:循環(huán)變量加步長的操作是系統(tǒng)自動完成的不需要在循環(huán)體中再出現(xiàn)該操作循環(huán)變量賦初值條件成立?執(zhí)行循環(huán)體循環(huán)變量加步長YN2023/1/19第5章程序設(shè)計基礎(chǔ)205.2.4循環(huán)結(jié)構(gòu)_FOR語句

fori=1to10step1

?i

endfor例1:在屏幕上輸出1到10。例2:求1+2+3+…+10=?

s=0

fori=1to10step1s=s+i

endfor

?s2023/1/19第5章程序設(shè)計基礎(chǔ)215.2.4循環(huán)結(jié)構(gòu)_FOR語句例3:求100以內(nèi)的3的倍數(shù)的和

sum=0

forn=0to100step3sum=sum+n

endfor?sum

a=1

forn=10to1step-2a=n**2?a

endfor例4:求10以內(nèi)偶數(shù)的平方(見P143例5.6,例5.7,例5.8,例5.9

)2023/1/19第5章程序設(shè)計基礎(chǔ)225.2.4循環(huán)結(jié)構(gòu)_DOWHILE語句(2)DOWHILE語句的格式:

DO

WHILE條件

循環(huán)體

ENDDO注意:1.如果預(yù)先不能確定循環(huán)次數(shù),而是根據(jù)某一條件決定是否結(jié)束循環(huán)。2.當(dāng)條件=.T.時執(zhí)行循環(huán)體,否則結(jié)束循環(huán)3.在循環(huán)體中要有改變循環(huán)條件的語句。循環(huán)體條件成立?ENDDO后面語句YESNO2023/1/19第5章程序設(shè)計基礎(chǔ)235.2.4循環(huán)結(jié)構(gòu)_DOWHILE語句例:Store“abcdef”tocP=space(0)Dowhile

len(c)>0P=left(c,1)+Pc=substr(c,2)Enddo?p說明:對于任意給定的字符串反序顯示如:“abcdef”變成“fedcba”2023/1/19第5章程序設(shè)計基礎(chǔ)245.2.4循環(huán)結(jié)構(gòu)_DOWHILE語句例:用DOWHILE循環(huán)求1到100的和。

S=0A=1

DOWHILEA<=100S=S+AA=A+1

ENDDO?S(見P143例5.10,例5.11,例5.12,例5.13

)2023/1/19第5章程序設(shè)計基礎(chǔ)255.2.4循環(huán)結(jié)構(gòu)_

SCAN語句(2)SCAN語句的格式:

SCAN條件循環(huán)體

ENDSCAN注意:SCAN循環(huán)又稱為表記錄掃描循環(huán),此語句僅限于處理表的記錄

2023/1/19第5章程序設(shè)計基礎(chǔ)265.2.4循環(huán)結(jié)構(gòu)_

SCAN語句例5.14:統(tǒng)計右表中江蘇學(xué)生的人數(shù),顯示學(xué)號和籍貫。

N=0

Usexs

Scanfor’江蘇’$xs.jg?xs.xh,xs.jgN=N+1

Endscan?N

2023/1/19第5章程序設(shè)計基礎(chǔ)275.2.4循環(huán)結(jié)構(gòu)_

SCAN語句北京9905145江蘇9905104江蘇9905113上海9905082江蘇9905011籍貫學(xué)號序號例如:統(tǒng)計右表中江蘇學(xué)生的人數(shù),顯示學(xué)號和籍貫?!?90501江蘇N=1√990511江蘇N=2√990510江蘇N=32023/1/19第5章程序設(shè)計基礎(chǔ)285.2.4循環(huán)結(jié)構(gòu)_

三種語句總結(jié)

(1)FOR…ENDFOR(2)DOWHILE…ENDDO

(3)SCAN…ENDSCAN知道循環(huán)次數(shù),用FOR循環(huán)用于表記錄掃描循環(huán)不知道循環(huán)次數(shù),一般采用DOWHILE循環(huán)2023/1/19第5章程序設(shè)計基礎(chǔ)295.2.4循環(huán)結(jié)構(gòu)_

LOOP命令和EXIT命令LOOP命令:當(dāng)執(zhí)行到LOOP語句時,將跳過LOOP后面的所有語句,即結(jié)束本次循環(huán),重新開始下一次循環(huán)。(見P143例5.7)EXIT命令:當(dāng)執(zhí)行到EXIT語句時,將跳過EXIT后面的所有語句,強行退出循環(huán)。(見P146例5.13)

2023/1/19第5章程序設(shè)計基礎(chǔ)305.2.4循環(huán)結(jié)構(gòu)_

LOOP和EXIT例子Sum=0forn=1to100Ifmod(n,2)=0loop

endifIfsum+n>200exitelseSum=sum+nendif

Endfor?sum

?n

例:求連續(xù)奇數(shù)的和,并且和小于200。2023/1/19第5章程序設(shè)計基礎(chǔ)315.2.5過程與用戶自定義函數(shù)

我們可以將經(jīng)常執(zhí)行的具有某一功能的一段代碼獨立出來,將其作為一個過程(Procedure)或用戶自定義函數(shù)(UserDefinedFunction,簡稱UDF),在需要改功能的時候調(diào)用這個過程或函數(shù)。

目的:減少了程序的代碼量,也使程序更易讀、更易維護。這也是結(jié)構(gòu)化程序設(shè)計方法的精髓。2023/1/19第5章程序設(shè)計基礎(chǔ)325.2.5過程與用戶自定義函數(shù)1過程定義的語法格式

PROCEDURE

過程名

[PARAMETERS參數(shù)列表]

過程體

[RETURN[返回值]]

ENDPROC注意:當(dāng)缺省RETURN時,返回值為.T.2023/1/19第5章程序設(shè)計基礎(chǔ)335.2.5過程與用戶自定義函數(shù)2.函數(shù)的定義和調(diào)用:函數(shù)定義的語法:FUNCTION函數(shù)名

[PARAMETERS參數(shù)列表]

函數(shù)體

[RETURN[返回值]]ENDFUNC注意:當(dāng)缺省RETURN時,返回值為.T.2023/1/19第5章程序設(shè)計基礎(chǔ)345.2.4過程與用戶自定義函數(shù)例如:定義一函數(shù)求兩個數(shù)的立方和

Functionc_sum

parametersa,bLocalcc=a*a*a+b*b*b

Returnc

endfun2023/1/19第5章程序設(shè)計基礎(chǔ)355.2.4函數(shù)_函數(shù)、過程調(diào)用的執(zhí)行流程SettalkoffX=5Y=6Z=c_sum(x,y)?zFunctionc_sum

parametersa,blocalcc=a*a*a+b*b*bReturnc2023/1/19第5章程序設(shè)計基礎(chǔ)365.2.4過程與用戶自定義函數(shù)注意:如果調(diào)用某過程文件中的過程和自定義函數(shù),則在調(diào)用之前運行:

SETPROCEDURETO(過程或自定義)文件名重點掌握:1、完善程序2、寫出程序運行結(jié)果2023/1/19第5章程序設(shè)計基礎(chǔ)37例題SETTALKOFFS=“ABCDEF”N=LEN(S)K=1DOWHILEK<=N?SUBS(S,K,N-K)K=K+1ENDDO結(jié)果:——————、——————1.運行下列程序以后,顯示運行的前二次結(jié)果:2023/1/19第5章程序設(shè)計基礎(chǔ)385.2結(jié)構(gòu)化程序設(shè)計_讀程序題目2.執(zhí)行下列程序后,屏幕上顯示的運行結(jié)果為

。CLEARSTORE3.14TOPIr=4S=PI*r*r?INT(S)2023/1/19第5章程序設(shè)計基礎(chǔ)395.2結(jié)構(gòu)化程序設(shè)計_讀程序題目3.運行下列程序,運行結(jié)果的第二行為

。SETTALKOFFCLEARY="111111111"FORI=1TO8 X=LEFT(Y,I)?SPAC(20-I*2)+X+"*"+X+"="+ALLT(STR(VAL(X)*VAL(X)))ENDFOR2023/1/19第5章程序設(shè)計基礎(chǔ)405.2結(jié)構(gòu)化程序設(shè)計_讀程序題目4.執(zhí)行下列程序后,屏幕上顯示的運行結(jié)果為

。CLEARx=10y=4IFx<0y=2*x-2elsey=x**2ENDIF?y2023/1/19第5章程序設(shè)計基礎(chǔ)415.2結(jié)構(gòu)化程序設(shè)計_讀程序題目5.執(zhí)行下列程序后,屏幕上顯示的運行結(jié)果為

。S=0N=1DoWhileN<=5 S=S+NN=N+1ENDDO?S

2023/1/19第5章程序設(shè)計基礎(chǔ)425.2結(jié)構(gòu)化程序設(shè)計_完善程序題目1.下列程序的功能是求100以內(nèi)的偶數(shù)之和及奇數(shù)之和。P=0Q=0FORN=1TO100

IF_____________P=P+N

ELSE_____________

ENDIFENDFOR?“偶數(shù)和為”,P?“奇數(shù)和為”,Q2023/1/19第5章程序設(shè)計基礎(chǔ)435.2結(jié)構(gòu)化程序設(shè)計_完善程序題目2.下列程序用來求0~100偶數(shù)之和,請完善。STORE0TON,SDOWHILE.T.

IFN>100_________

ELSES=S+N

ENDIFN=N+2ENDDO2023/1/19第5章程序設(shè)計基礎(chǔ)445.2結(jié)構(gòu)化程序設(shè)計_完善程序題目3.下列程序是隨機產(chǎn)生一個70-80之間的數(shù),請完善x=0DOWHILE.T.X=RAND()*100IFx>70ANDx<80_________ENDIFENDDO?x2023/1/19第5章程序設(shè)計基礎(chǔ)455.2結(jié)構(gòu)化程序設(shè)計_完善程序題目4.下列程序功能是計算1!+2!+…+10!的和,請完善。Result=0nMult=_________

FORn=1TO10

nMult=nMult*n

nResult=_________

ENDFOR?nResult2023/1/19第5章程序設(shè)計基礎(chǔ)465.2結(jié)構(gòu)化程序設(shè)計_完善程序題目5.完善下列程序,使其計算一個整數(shù)的各位數(shù)字之和:SETTALKOFFINPUT”x=”TOxs=0DOWHILEx!=0s=s+MOD(x,10)x=INT(__________)ENDDO?sSETTALKON2023/1/19第5章程序設(shè)計基礎(chǔ)475.2結(jié)構(gòu)化程序設(shè)計_完善程序題目6.dtocc()函數(shù)實現(xiàn)將一個日期型數(shù)據(jù)轉(zhuǎn)換為形如“XXXX年XX月XX日”的中文日期字符串,請完善。FUNCTIONdtoccPARAMETERSdeDate

cYear=

+’年’

cMonth=STR(Month(deDate),2)+’月’

cDay=STR(Day(deDate),2)+’日’RETURN

ENDFUNC2023/1/19第5章程序設(shè)計基礎(chǔ)485.2結(jié)構(gòu)化程序設(shè)計_完善程序題目7.完善下列程序,是其可用來求長方形的面積。

X=3

Y=5

S=AREA(X,Y)

?S

FUNCTION

AREA

_______

S1=X*YRETURN

________ENDFUNCTION2023/1/19第5章程序設(shè)計基礎(chǔ)495.2結(jié)構(gòu)化程序設(shè)計_編程序題目1.編程求1—100之間所有非3的倍數(shù)的和。2.編程求1到100的平方和,如果平方和超過1000則跳出循環(huán)。3.編程計算數(shù)列1!,3!,5!……n!的前5項之和。4.查找教師表(JS.DBF)中出生日期在1960年之前的教師的姓名、性別和系科。5.編程實現(xiàn)自定義函數(shù)NX(),該函數(shù)的功能是將任意給定的一個字符串逆序返回。如執(zhí)行該函數(shù)NX(“ABCDE”),則返回結(jié)果為”EDCBA”。6.編函數(shù)ntoc,實現(xiàn)其功能將傳送過來的阿拉伯?dāng)?shù)字“0~9”轉(zhuǎn)換為中文的“零~九”。2023/1/19第5章程序設(shè)計基礎(chǔ)505.3面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)

面向?qū)ο蟮某绦蛟O(shè)計(Object-OrientedProgramming,簡稱

OOP)是基于問題對象的自底向上的功能綜合,從內(nèi)部結(jié)構(gòu)上模擬客觀世界,其開發(fā)過程是從“用什么做”到“要做什么”。

傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計的本質(zhì)是功能設(shè)計,進行功能分解,從外觀功能上模擬客觀世界,其開發(fā)過程通常是從“做什么”到“如何做”。2023/1/19第5章程序設(shè)計基礎(chǔ)515.3.1類和對象概述類(class):具有相同的結(jié)構(gòu)、操作,并遵守相同規(guī)則的對象聚合在一起的對象。對象:是基于類所創(chuàng)建的一個實例。每個對象都具有屬性、事件和方法,通過對象的屬性、事件和方法來處理對象。區(qū)別聯(lián)系:類包含了有關(guān)對象的特征和行為信息,它是對象的藍圖和框架,對象包括了數(shù)據(jù)和過程。在采用面向?qū)ο蟪绦蛟O(shè)計方法設(shè)計程序中,程序時由一個或多個類組成,在程序運行時,用戶需要創(chuàng)建該類的各個對象(實例),因此,類是靜態(tài)概念,而對象是動態(tài)概念。2023/1/19第5章程序設(shè)計基礎(chǔ)525.3.1類和對象概述_對象屬性(Property):對象的特征或某一方面的行為。屬性是可自定義的。事件(Event):由對象識別的一個動作,可以編寫相應(yīng)的代碼對此動作進行響應(yīng)。事件是不可自定義的。方法(Method):對象能夠執(zhí)行的一個操作。方法是可自定義的。每個對象都具有屬性,以及與之相關(guān)的事件和方法,通過對象的屬性、事件和方法來處理對象。2023/1/19第5章程序設(shè)計基礎(chǔ)535.3.2基類類分為三大類:基類、子類和用戶自定義類基類(baseclass):是VFP系統(tǒng)提供的內(nèi)部定義的類,可用作其他用戶自定義類的基礎(chǔ)。子類(Subclass):是以其他類定義為起點,為某一種對象所建立的新類。用戶自定義類(User-definedClass):與VFP基類相似,但由用戶定義,并且可用來派生子類2023/1/19第5章程序設(shè)計基礎(chǔ)545.3.2基類_常用基類容器編輯框列表框標簽控件文本框組合框圖像表單集微條框復(fù)選框形狀表單表格選項按鈕組線條工具欄標頭*選項按鈕*分隔符*自定義列*計時器命令按鈕組頁框OLE綁定型控件命令按鈕頁面*OLE容器控件注:*表示該類是容器的集成部分,在類設(shè)計器中不能基于它們創(chuàng)建子類2023/1/19第5章程序設(shè)計基礎(chǔ)555.3.2基類_容器類、控件類基類分為兩大類:容器類、控件類。容器類(ContainerClasses):包容其他類的基類。VFP的容器類有:容器、工具欄、表單集、表單、表格、表格列、頁框、頁面、命令按鈕組、選項按鈕組??丶?ControlClasses):可以包含在容器類中的基類。VFP的控件類就是基類除去容器類剩下的部分。2023/1/19第5章程序設(shè)計基礎(chǔ)565.3.2基類_最小屬性集、最小事件集基類的最小屬性集:Class、BaseClass、ClassLibrary、ParentClass基類的最小事件集:Init、Destroy、Error2023/1/19第5章程序設(shè)計基礎(chǔ)575.3.3處理對象_引用對象在引用對象時,首先要弄清該對象相對于容器層次的關(guān)系。引用對象的格式為:引用地址.對象名稱絕對引用絕對引用是從最頂層對象開始,逐層引用,直到所指定的對象的方式。相對引用相對引用是指在容器層次中相對于某個容器層次的引用。2023/1/19第5章程序設(shè)計基礎(chǔ)58*相對引用通常用于某個事件處理代碼或方法程序代碼中對所包容的對象的引用,引用時可以直接使用其對象名。表5-5VFP中相對引用對象時所用的關(guān)鍵字ActiveForm當(dāng)前活動表單Activepage當(dāng)前活動表單中的活動頁面ActiveContro當(dāng)前活動表單中具有焦點的控件PARENT該對象的直接容器THIS該對象THISFORM包含該對象的表單THISFORMSET包含該對象的表單集2023/1/19第5章程序設(shè)計基礎(chǔ)595.3.3處理對象_設(shè)置對象屬性每個對象都有許多屬性。通過對對象屬性的設(shè)置,可以定義對象的特征或某一方面的行為。在采用可視化的方法進行對象設(shè)計時,可以在屬性窗口中對對象屬性進行設(shè)置在程序代碼中,可以使用如下的語法對對象屬性進行設(shè)置:引用對象.屬性=值比如將命令按鈕組中的第一個按紐(“上一條”)的前景色改為紅色:This.cmd1.forecolor=rgb(255,0,0)該命令按鈕組“上一條”按鈕的name屬性前景色屬性綠色rgb(0,255,0)藍色rgb(0,0,255)白色rgb(255,255,255)黑色rgb(0,0,0)2023/1/19第5章程序設(shè)計基礎(chǔ)605.3.3處理對象_調(diào)用對象的方法程序方法程序是對象能夠執(zhí)行的一個操作,是和對象相聯(lián)系的過程。調(diào)用方法程序的語法如下:引用對象.方法程序

例刷新表單的語法:Thisform.refresh釋放表單的語法:Thisform.release設(shè)置焦點的語法:Thisform.text1.SetFocus2023/1/19第5章程序設(shè)計基礎(chǔ)615.3.3處理對象_對象對事件的響應(yīng)當(dāng)對象的某個事件發(fā)生時,該事件的處理程序代碼將被執(zhí)行。如果事件沒有與之相關(guān)聯(lián)的處理程序,則當(dāng)事件發(fā)生時不會發(fā)生任何操作比如當(dāng)用戶單擊某命令按鈕時,該命令按鈕的Click事件的程序代碼將被執(zhí)行。比如運動員踢足球,足球被踢出。比如運動員踢足球,足球滾了。在這個過程當(dāng)中,對象是足球,事件是踢,足球被踢出是對踢事件的響應(yīng)。在這個過程當(dāng)中,對象是足球,事件是踢,足球滾了是方法。202

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論