數(shù)據(jù)庫(kù)實(shí)驗(yàn)考核題庫(kù)及解答_第1頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)考核題庫(kù)及解答_第2頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)考核題庫(kù)及解答_第3頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)考核題庫(kù)及解答_第4頁(yè)
數(shù)據(jù)庫(kù)實(shí)驗(yàn)考核題庫(kù)及解答_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)考核題庫(kù)及解答

注意:1)程序填空題:把第13題(口令驗(yàn)證)、第23題(轉(zhuǎn)換中文星期的自定義函數(shù))去掉了。2)程序改錯(cuò)題:把第10題(K!+…+M!,帶參調(diào)用)去掉,把第18題(輸出最大數(shù)和最小數(shù))去掉。3)表單設(shè)計(jì)題:把第10題(查詢并顯示指定學(xué)生的平均成績(jī)和成績(jī)檔次)換為了教材的例6.10(統(tǒng)計(jì)車票總金額);把第20題(命令按鈕組實(shí)現(xiàn)前翻、后翻等)去掉了。上面的題號(hào)與《數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)學(xué)習(xí)指導(dǎo)》第4部分題目編號(hào)一致。

一、程序填空:

1.√在學(xué)生表中查找并輸出指定學(xué)生的所有信息。SETTALKOFFCLEARUSE學(xué)生1&&此處填空ACCEPT"請(qǐng)輸入指定的學(xué)生學(xué)號(hào):"TOXHSEEKXHIF2&&此處填空?"查無(wú)此人!"ELSE3&&此處填空ENDIFUSESETTALKON2.√

*判斷給定的正整數(shù)值是否為素?cái)?shù),并能反復(fù)判斷。SETTALKOFFCLEARDOWHILE.T.INPUT"請(qǐng)輸入一個(gè)正整數(shù):"TOX1&&此處填空IFINT(X/I)=X/IEXITENDIFENDFORIF2&&此處填空?X,"是素?cái)?shù)!"ELSE?X,"不是素?cái)?shù)!"ENDIFWAIT"是否繼續(xù)輸入(Y/N)"TOYN3&&此處填空LOOPELSEEXITENDIFENDDOSETTALKON3.√

*輸入邊長(zhǎng),如果能構(gòu)成三角形,則計(jì)算三角形面積。SETTALKOFF1&&此處填空CLEARINPUT"輸入第一邊長(zhǎng):"TOXINPUT"輸入第二邊長(zhǎng):"TOYINPUT"輸入第三邊長(zhǎng):"TOZIFX=0.OR.Y=0.OR.Z=0.OR.X+Y<=Z.OR.Y+Z<=X.OR.X+Z<=Y?"尺寸有誤,重新輸入!"2&&此處填空

ENDIFEXITENDDOU=(X+Y+Z)/23&&此處填空?"AREA="+ALLTRIM(STR(M,19,2))SETTALKOFF4./在屏幕上顯示輸出一個(gè)乘法九九表。顯示格式如圖4-1所示。SETTALKOFFCLEAR1&&此處填空DOWHILEX<=9Y=1DOWHILEY<=X2&&此處填空Y=Y+1ENDDO3&&此處填空X=X+1ENDDOSETTALKON5.√根據(jù)輸入的數(shù)據(jù),計(jì)算不大于該數(shù)的所有奇數(shù)累加和。SETTALKOFFCLEARYN="Y"DOWHILE1&&此處填空INPUT"請(qǐng)輸入兩位以內(nèi)的正整數(shù):"TONSTORE0TOX,YDOWHILEX<NX=X+1IF2&&此處填空Y=Y+XENDIFENDDO?"不大于該數(shù)的奇數(shù)累加和="+STR(Y,4)3"繼續(xù)計(jì)算否?(Y/N)"TOYN&&此處填空ENDDO?"再見!"SETTALKON6.根據(jù)輸入的數(shù)據(jù),判斷該數(shù)是否為偶數(shù),可以反復(fù)判斷。SETTALKOFFCLEARYN="Y"1&&此處填空INPUT"請(qǐng)輸入一個(gè)自然數(shù):"TONIF2&&此處填空?"不是偶數(shù)!"ELSE?"是偶數(shù)!"ENDIF3"繼續(xù)否?(Y/N)"TOYN&&此處填空ENDDO?"再見!"SETTALKONSETTALKOFFDOWHILE.T.CLEARACCEPT"請(qǐng)輸入表名(擴(kuò)展名略):"TOTBNIFFILE("&TBN..DBF")1&&此處填空ELSEWAIT"指定的表不存在!"LOOPENDIF?"表中的全部字段名列表:"FORN=1TO2&&此處填空

?FIELD(N)ENDFORACCEPT"輸入顯示條件:"TOEXPRLIST3&&此處填空WAIT"是否繼續(xù)(Y/N)?:"TOYNIFUPPER(YN)!="Y"EXITENDIFENDDOUSESETTALKON7.√

*顯示指定表中的全部字段名,并由用戶輸入顯示表信息的條件,最后列表顯示滿足條件的記錄。8.√

*接收從鍵盤輸入的任意5個(gè)數(shù),輸入的數(shù)可以是負(fù)數(shù),但包括符號(hào)位最多三位。程序的功能是,找出其中最大的數(shù)和最小的數(shù),最后顯示出來。SETTALKOFFCLEARINPUT"請(qǐng)輸入第一個(gè)數(shù)字:"TOXZD=X1&&此處填空N=52&&此處填空INPUT"請(qǐng)輸入下一個(gè)數(shù)字:"TOXIFZD<XZD=XENDIFIF3&&此處填空Z(yǔ)X=XENDIFN=N-1ENDDO?"最大數(shù):"+STR(ZD,3,0),"最小數(shù):"+STR(ZX,3,0)SETTALKON9.√

*顯示輸出學(xué)生表中每個(gè)班級(jí)的男女同學(xué)的獎(jiǎng)學(xué)金總金額。SETTALKOFFCLEARUSE學(xué)生INDEXON學(xué)號(hào)TOINN0?"**********各班男女獎(jiǎng)學(xué)金總額統(tǒng)計(jì)************"?"班級(jí)男同學(xué)獎(jiǎng)學(xué)金總額女同學(xué)獎(jiǎng)學(xué)金總額"1&&此處填空 CLASS=LEFT(學(xué)號(hào),3) STORE0TOBOYS,GIRLS DOWHILE2&&此處填空

IF性別 BOYS=BOYS+獎(jiǎng)學(xué)金 ELSE GIRLS=GIRLS+獎(jiǎng)學(xué)金 ENDIF 3&&此處填空 ENDDO ?CLASS+STR(BOYS,19,2)+STR(GIRLS,19,2)ENDDOUSESETTALKON10.√

*返回給定的字符串表達(dá)式的倒置字符串。如:輸入字符串"ABCD",倒置后輸出的字符串為"DCBA"。SETTALKOFFCLEARACCEPT"請(qǐng)輸入一個(gè)字符串:"TOX1&&此處填空L=LEN(X)2&&此處填空Q=SUBSTR(X,L,1)C=3&&此處填空L=L-1ENDDO?"倒置字符串是:"+CRETURNSETTALKON11.√利用公式ex=1+X+X2/2!+X3/3!+…+XN/N!,輸入X和N,計(jì)算ex的近似值。SETTALKOFFCLEARINPUT'X='TOXINPUT'N='TONA=1B=11&&此處填空2&&此處填空A=A*XB=B*I3&&此處填空ENDFOR?'S=',SSETTALKONSETTALKOFFCLEARINPUT'M='TOMIFINT(M)!=MORABS(M)!=M?'輸入數(shù)據(jù)不符合題目要求!'1&&此處填空S=0FORI=2TOM/2FOR2&&此處填空IFI%J=0EXITENDIFENDFOR3&&此處填空S=S+1?ALLT(STR(J*2,2))+"="+ALLT(STR(J,2))+"+"+ALLT(STR(J,2))ENDIFENDFOR?ALLTRIM(STR(M,19))+"中共有:"+STR(S,3)+"個(gè)數(shù)滿足條件"ENDIFSETTALKON/12.√

*輸入正整數(shù)M,顯示1~M中有哪些數(shù)可以分為兩個(gè)相等的素?cái)?shù)。(如M=10,有3個(gè)數(shù)符合,即2+2=4,3+3=6和5+5=10)14.本程序顯示學(xué)生表中的獲得獎(jiǎng)學(xué)金的學(xué)生姓名和獎(jiǎng)學(xué)金數(shù)額SETTALKOFFCLEARUSE學(xué)生1&&此處填空IF2&&此處填空?姓名,獎(jiǎng)學(xué)金SKIPELSE3&&此處填空ENDIFENDDOUSESETTALKON15.本程序顯示學(xué)生表中1990年或以前出生的學(xué)生姓名和出生年月(日期型)。SETTALKOFFCLEARUSE學(xué)生LOCATE1&&此處填空2&&此處填空?姓名,出生年月3&&此處填空ENDDOUSESETTALKON16.√

*本程序計(jì)算一個(gè)十進(jìn)制正整數(shù)N的各位數(shù)字之和(如輸入:12378,則計(jì)算1+2+3+7+8)。SETTALKOFFCLEARINPUT"M="TOMIFINT(M)!=MORABS(M)!=M?"輸入的數(shù)據(jù)不符合題目要求!"1&&此處填空S=0DO2&&此處填空T=MOD(M,10)S=S+TM=3&&此處填空ENDDO?SENDIFSETTALKONN型數(shù)據(jù)取數(shù)的技巧:除十取余:得到最后一位數(shù);除十取整:得到取數(shù)后的剩余用循環(huán)逐個(gè)取數(shù),當(dāng)剩余為零時(shí)循環(huán)結(jié)束.17.本程序?qū)崿F(xiàn)從鍵盤中輸入5個(gè)數(shù),去掉一個(gè)最大數(shù)和一個(gè)最小數(shù),然后求平均值。SETTALKOFFCLEARINPUT'N='TON1&&此處填空FORI=1TO4INPUT'N='TONIF2&&此處填空A=NENDIFIFB>NB=NENDIF3&&此處填空ENDFOR?'平均值=',(S-A-B)/3SETTALKON18.√計(jì)算:1!+3!+5!+…+N!,N由鍵盤輸入。SETTALKOFFCLEAR1&&此處填空STORE0TOS,TFORI=1TONSTEP2 DOSUB 2&&此處填空ENDFOR?SSETTALKONPROCSUBT=1FORJ=1TOI 3&&此處填空ENDFOR19.設(shè)變量N的輸入值為5,字符A的ASCII碼為65。程序的運(yùn)行如圖4-2所示。SETTALKOFFCLEARINPUT"N="TONFORI=1TON?1&&此處填空FORJ=1TO2&&此處填空 ??3&&此處填空ENDFORENDFORSETTALKON20.將表“學(xué)生.DBF”中指定學(xué)生(由鍵盤輸入)的獎(jiǎng)學(xué)金加60,并顯示該學(xué)生的記錄。SETTALKOFFCLEARUSE學(xué)生ACCEPT“輸入學(xué)號(hào)=”TOM1&&此處填空IF!EOF()2&&此處填空DISPLAYELSE?”沒有找到!”3&&此處填空USESETTALKONUSE成績(jī)ACCEPT"請(qǐng)輸入學(xué)生的學(xué)號(hào):"TOXH1&&此處填空IF!FOUND() ?"查無(wú)此人!"ELSE 2&&此處填空DOCASE CASEPJCJ>=90 DC="優(yōu)" CASEPJCJ>=80 DC="良" CASEPJCJ>=70 DC="中" CASEPJCJ>=60 DC="及格" 3&&此處填空 DC="不及格"ENDCASE?"學(xué)號(hào)","平均成績(jī)","檔次"?XH,STR(PJCJ,8,2),DCENDIFUSE21.下面程序統(tǒng)計(jì)指定學(xué)生的平均成績(jī)及該成績(jī)的檔次。22.程序輸出的結(jié)果如圖4-3所示。SETTALKOFFCLEAA="*"1&&此處填空FORK=1TOH ?2&&此處填空 FORT=1TO3&&此處填空 ??A ENDFORENDFORSETTALKON24.本程序?qū)崿F(xiàn)“百錢買百雞”的計(jì)算(取自《算經(jīng)》:“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?)SETTALKOFFCLEARFORX=0TO20FOR1&&此處填空Z(yǔ)=100-X-YIF2&&此處填空?"X="+STR(X,2),"Y="+STR(Y,2),"Z="+STR(Z,2)ENDIFENDFOR3&&此處填空SETTALKON25.√輸入一個(gè)自然數(shù),判斷該數(shù)是否為完數(shù)。(完數(shù)的定義:若該數(shù)除本身之外的所有因子之和等于該數(shù),則為完數(shù)。如:1+2+3=6,6為完數(shù);1+2+4#8,8不是完數(shù)。)SETTALKOFFCLEARINPUT"M="TOMN=11&&此處填空FORN=1TOM-1 IF2&&此處填空 S=S+N ENDIFENDFORIF3&&此處填空 ?M,"是完數(shù)!"ELSE ?M,"不是完數(shù)!"ENDIFSETTALKON二、程序改錯(cuò)題

1.√求當(dāng)1!+3!+5!++N!的值不超過1020時(shí)的臨界值及N的值。SETTALKOFFCLEARS=0N=1******1******DOWHILEI<NT=1FORI=1TON

******2******T=I*IENDFORS=S+T

******3******N=N+1ENDDO?"N=",N-4SETTALKON2.√計(jì)算:X1+X2+X3+X4++XN的值。N,X從鍵盤輸入。SETTALKOFFCLEARINPUT"N="TONINPUT"X="TOX******1******S=1T=1I=1DOWHILEI<=N

******2******T=S*XS=S+TI=I+1******3******ENDFOR?"S=",SSETTALKOFF3.用帶參調(diào)用的方法實(shí)現(xiàn)計(jì)算:M!/(M-N)!*N!SETTALKOFFCLEARINPUT"M="TOMINPUT"N="TONMJ=M******1******DOJCNJ=NDOJCWITHNJ******2******MNJ=0DOJCWITHMNJ?"S=",MJ/(NJ*MNJ)SETTALKONPROCEDUREJCPARAMETERSXT=1FORI=1TOXT=T*IENDFOR******3******X=IRETURN4.√輸出3~M(M為正整數(shù),從鍵盤輸入)之間的素?cái)?shù)和個(gè)數(shù)。SETTALKOFFCLEARINPUT"M="TOMK=0FORX=3TOMFORN=2TOX-1

******1******IFX/N=0EXITENDIFENDFOR

******2******IFN>X ??X

******3******K=K+XENDIFENDFOR?"共"+ALLTRIM(STR(K))+"個(gè)素?cái)?shù)"SETTALKON5*

.統(tǒng)計(jì)顯示"課程"表中所有不同學(xué)期考試課和考查課的總學(xué)分?jǐn)?shù)。輸出格式如下:學(xué)期考試課總學(xué)分考查課總學(xué)分**************************************1113

USE課程INDEXON學(xué)期TOXQ?"學(xué)期考試課總學(xué)分考查課總學(xué)分"?"*******************************************"DOWHILE.NOT.EOF()XQ=學(xué)期STORE0TOKS,KC

******1******DOWHILE.T. IF考試標(biāo)志="1"

******2******KC=KC+學(xué)分ELSEKC=KC+學(xué)分ENDIF

******3******CONTINUEENDDO?XQ+STR(KS,19,2)+STR(KC,19,2)ENDDOUSESETTALKOFF6.√編寫程序顯示輸出給定行數(shù)的對(duì)稱菱形圖案,如圖4-4所示。SETTALKOFFCLEARINPUT"N="TON&&輸入5FORI=1TON******1******?

******2******FORJ=1TON??CHR(ASC("A")+I-1)ENDFORENDFORFORP=N-1TO1STEP-1?SPACE(N-P)

******3******FORK=1TO2*N-1??CHR(ASC('A')+P-1)ENDFORENDFORSETTALKON7.√本程序顯示如圖4-5所示的的九九乘法表。SETTALKOFFCLEARFORI=1TO9

******1*****?IENDFORI=1DOWHILEI<=9?

******2*****FORJ=1TO9??STR(I*J,4)ENDFOR

I=I+1

******3*****ENDFORSETTALKON8.求3→200之間的素?cái)?shù)。SETTALKOFFCLEARFORM=3TO200

******1*****FORN=1TOM

******2*****IFM/2=INT(M/2) EXITENDIFENDFOR

******3*****IFN>M??MENDIFENDFORSETTALKON9*

.*本程序用以判斷輸入的字符串是否是回文(回文是從左到右和從右到左讀時(shí)都一樣的一個(gè)字符串,不論大小寫字母)。SETTALKOFFCLEARC=SPACE(0)ACCEPT'請(qǐng)輸入字符串='TOST******1******I=LEFT(ST,1)J=1DOWHILEJ<=IQ=SUBST(ST,J,1)

******2******C=C+QJ=J+1ENDDO******3******IFST=C?ST,'是回文'ELSE?ST,'不是回文'ENDIFSETTALKON11./√本程序輸入一個(gè)一位數(shù)值(0-9),并把它轉(zhuǎn)化為對(duì)應(yīng)的中文大寫數(shù)字(零-玖)。SETTALKOFFCLEARX='零壹貳叁肆伍陸柒捌玖'******1******DOWHILENOTEOF()INPUT'N='TON******2******S=STUFF(X,N,2)?STR(N,1)+">"+SWAIT'是否繼續(xù)(Y/N)'TOT******3******IFUPPER(T)='n' EXITENDIFENDDOSETTALKON12.√對(duì)成績(jī).DBF(其中包含"學(xué)號(hào)"字段,并且以"學(xué)號(hào)"為關(guān)鍵字建立了索引標(biāo)識(shí)“學(xué)號(hào)”)中學(xué)號(hào)相同的重復(fù)記錄進(jìn)行邏輯刪除。SETTALKOFFCLEARSETDELETEDON******1******USE成績(jī)DOWHILENOTEOF()XH=學(xué)號(hào)SKIP

******2******DOWHILE.NOT.EOF()DELETE******3******CONTINUEENDDOENDDOLISTUSESETTALKON13.本程序是在屏幕上打印輸出如圖4-6所示的圖形。SETTALKOFFCLEARK=1DOWHILEK<=4C=1

******1******DOWHILEC<=4??STR(10-C,3)C=C+1ENDDO

******2******C=C+1K=K+1******3******ENDFORSETTALKONSETTALKOFFCLEAR******1******ACCEPT'M='TOMIFINT(M)!=MORABS(M)!=M?'輸入的數(shù)據(jù)不符合題目要求!'******2******ENDIFI=2?STR(M)+'的質(zhì)數(shù)因子有:'DOWHILEI<=MIFM%I=0??STR(I,6)

******3******M=INT(M,I)LOOPENDIFI=I+1ENDDOENDIFSETTALKON14*

.*將給定的正整數(shù)的值分解因子,并輸出各個(gè)質(zhì)數(shù)因子(如24的質(zhì)數(shù)因子有2、2、2和3)(如果一個(gè)質(zhì)數(shù)是某個(gè)數(shù)的約數(shù),那么這個(gè)質(zhì)數(shù)是這個(gè)數(shù)的質(zhì)數(shù)因子)SETTALKOFFCLEARC1="零壹貳叁肆伍陸柒捌玖"C2="分角元拾佰仟萬(wàn)拾佰仟億拾佰仟"INPUT'輸入一個(gè)正數(shù)='TOY******1******Y=STR(Y,2)Y=Y*100I=1D=SPACE(0)DOWHILEY>0P=MOD(Y,10)

******2******D=SUBSTR(C1,2*P-1,2)+SUBSTR(C2,2*I-1,2)+DI=I+1

******3******Y=INT(Y,10)ENDDO?"轉(zhuǎn)換的結(jié)果是:"+DSETTALKON15*

.**對(duì)任意一個(gè)正數(shù)值型數(shù)據(jù)(該數(shù)可有小數(shù)若干位,整數(shù)部分不超過12位)自動(dòng)進(jìn)行小數(shù)部分四舍五入取2位,并將其轉(zhuǎn)換為中文大寫金額.四舍五入函數(shù):ROUND(X,N)16*

.*本程序輸出一個(gè)對(duì)角線上元素為0,其它元素為1的6*6階方陣。輸出時(shí)每個(gè)元素占2個(gè)字符,如圖4-7所示。SETTALKOFFCLEAR******1******FUNCTIONA(6,6)FORI=1TO6FORJ=1TO6

******2******IFI=JA(I,J)=0ELSEA(I,J)=1ENDIFENDFORENDFORFORI=1TO6FORJ=1TO6

******3******?A(I,J)ENDFOR?ENDFORSETTALKON定義數(shù)組的命令:DIMENSION或者DECLARESETTALKOFFCLEARINPUT'輸入數(shù)值='TOMINPUT'輸入數(shù)碼='TONYSM=MS=0DOWHILE.T.

******1******Y=MOD(M/10)IFY=NS=S+1ENDIF

******2******M=INT(M/N)IFM=0******3******LOOPENDIFENDDO?ALLT(STR(YSM,19))+"中包含數(shù)碼"+STR(N,1)+"共"+ALLT(STR(S,19))+"個(gè)。"SETTALKON17*.*本程序?qū)崿F(xiàn):對(duì)輸入的正整數(shù),判別其中包含指定數(shù)碼的個(gè)數(shù)(如2312132中包含數(shù)碼1的個(gè)數(shù)為2)。19*.輸入三個(gè)正數(shù),判定是否構(gòu)成一個(gè)三角形,如果構(gòu)成一個(gè)三角形,則返回.T.,否則返回.F.。另外通過參數(shù)的引用將三角形的面積傳回。SETTALKOFFCLEARINPUT'X1='TOX1INPUT'X2='TOX2INPUT'X3='TOX3******1******?TARER(X1,X2,X3)?"三角形面積為:"+ALLTRIM(STR(X1,19,2))SETTALKON*自定義函數(shù)FUNCTIONTARER******2******PARAMETERSA,B******3******IFA>B>CS=(A+B+C)/2A=SQRT(S*(S-A)*(S-B)*(S-C))RETURN.T.ELSEA=0RETURN.F.ENDIF20*

.*將成績(jī)表中成績(jī)小于60分的學(xué)號(hào)、課程號(hào)及成績(jī)顯示出來。SETTALKOFFCLEARUSE成績(jī)?''?'不及格學(xué)生名單'?''?'學(xué)號(hào)課程號(hào)成績(jī)'******1******GOBOTTOMDOWHILE.NOT.EOF()IF成績(jī)<60

******2******?學(xué)號(hào)+SPACE(5)+課程號(hào)+SPACE(5)+成績(jī)ENDIFSKIPENDDO?''******3******?'當(dāng)前日期'+CTOD(DATE())USESETTALKON21.本程序用于計(jì)算S=1+2+3+…+N的和。SETTALKOFFCLEAR******1******ACCEPT"N="TONS=0I=0******2******DOWHILEI<=NI=I+1S=S+IENDDO******3******?"1+2+3+…+"+N+"="+SSETTALKONSETTALKOFFCLEARUSE成績(jī)C="不及格及格中良優(yōu)"******1******INPUT"輸入學(xué)號(hào)="LOCATEFOR學(xué)號(hào)=XHIFFOUND()

******2******TOTAL成績(jī)TOCJIFCJ<60R=0ELSER=INT(CJ/10)-5ENDIF

******3******DC=STR(C,6)?XH,CJ,DCELSE?'查無(wú)此人!'ENDIFUSESETTALKON22*

.*本程序?qū)崿F(xiàn):從鍵盤輸入學(xué)生的學(xué)號(hào),計(jì)算該生的平均成績(jī),并說明成績(jī)的檔次(優(yōu)、良、中、及格和不及格)。23**.\本程序?qū)崿F(xiàn)指定表指定條件的任意查詢功能。SETTALKOFFCLEARACCEPT"請(qǐng)輸入表名:(擴(kuò)展名略)"TOFNAME******1******IF.NOT.FILE(FNAME)WAIT"此表不存在!"ELSEUSE(FNAME)ZDSM=FCOUNT()?"此表中的字段有:"+STR(ZDSM)+"個(gè)"FORI=1TOZDSM ?STR(I)+""??FIELD(I)

******2******ENDDOENDIFACCEPT"請(qǐng)輸入顯示表信息的條件表達(dá)式:"TOEXP******3******LISTFOREXPUSESETTALKONSETTALKOFFCLEARDOWHILE.T.ACCEPT"請(qǐng)輸入表名:(不含擴(kuò)展名)"TOFNAME******1******IF.NOT.FILE(FNAME)WAIT"此表不存在!"ELSEUSE&FNAMEZDSM=FCOUNT()

******2******?"此表中的字段有:"+ZDSM+"個(gè)"FORI=1TOZDSM?STR(I)+""******3******??NAME(I)ENDFORENDIFWAIT"繼續(xù)否?(Y/N)"TOYNIFUPPER(YN)="N"EXITENDIFENDDOSETTALKON24*

.*本程序用于輸入一個(gè)表名,若表存在則打開表,并顯示其各個(gè)字段名。25.本程序在屏幕上顯示如圖4-8所示的圖形。SETTALKOFFCLEAK=1DOWHILK<=5C=1

******1******DOWHILC<=5

******2******?CC=C+1ENDDO?

******3******K=K-1ENDDOSETTALKON三、表單設(shè)計(jì)題:設(shè)計(jì)步驟:1、放入對(duì)象,注意:數(shù)據(jù)環(huán)境是否需要放入表;2、設(shè)置屬性,注意:是否需要添加新屬性;3、寫事件代碼,調(diào)試運(yùn)行。1.設(shè)計(jì)一個(gè)標(biāo)準(zhǔn)化模擬考試表單。界面如圖4-9至圖4-12所示。要求:文字字體、字號(hào)任意,當(dāng)選擇答案時(shí),根據(jù)對(duì)錯(cuò)用Messagebox()函數(shù)顯示提示信息。(1)表單Form1的Init事件Thisform.Optiongroup1.Value=0(2)選項(xiàng)按鈕組Optiongroup1的InterActiveChange事件IFThis.Value=2 MessageBox("答對(duì)了,真棒!",0+48,"評(píng)判結(jié)果")ELSE MessageBox("答錯(cuò)了,再試!",0+32,"評(píng)判結(jié)果")ENDIF2.編制一個(gè)表單完成表文件“學(xué)生.dbf”內(nèi)容的只讀瀏覽顯示功能,界面如圖4-13、4-14所示。要求如下:①表單初始顯示內(nèi)容為表文件'學(xué)生.dbf'的首記錄;②當(dāng)按“前翻”、“后翻”、“首記錄”、“末記錄”按鈕時(shí),表單將自動(dòng)顯示相應(yīng)記錄的內(nèi)容;③當(dāng)翻至表頭或表底時(shí),將自動(dòng)設(shè)置相應(yīng)按鈕不可訪問。注意:設(shè)計(jì)界面上的屬性在屬性窗口設(shè)置,不用寫表單的Init事件代碼?。。?)命令按鈕Command1的Click事件GOTOPThisform.Command1.Enabled=.F.Thisform.Command2.Enabled=.F.Thisform.Command3.Enabled=.T.Thisform.Command4.Enabled=.T.Thisform.Refresh(2)命令按鈕Command2的Click事件SKIP-1IFBOF() Thisform.Command1.Enabled=.F. Thisform.Command2.Enabled=.F.ELSE Thisform.Command3.Enabled=.T. Thisform.Command4.Enabled=.T.ENDIFThisform.Refresh3.*編制一個(gè)表單完成學(xué)生成績(jī)查詢顯示功能,數(shù)據(jù)來源于表文件“學(xué)生.dbf”“成績(jī).dbf”。界面如圖4-15、4-16所示。具體要求如下:①當(dāng)用戶在組合框輸入或選擇姓名后,按回車或“確定”按鈕時(shí),表單將自動(dòng)顯示對(duì)應(yīng)學(xué)生的平均成績(jī),如果該學(xué)生不存在,則顯示提示信息;②按“退出”按鈕時(shí),自動(dòng)關(guān)閉表單。注意:(1)有2張表,放數(shù)據(jù)環(huán)境,查找和計(jì)算時(shí)要切換表。(2)設(shè)置Combo1的RowSourcetype為6,RowSource為學(xué)生.姓名(1)表單Form1的Init事件SETTALKOFF(2)命令按鈕Command1的Click事件SELECT學(xué)生

LOCAALLFORALLT(姓名)=;ALLT(Thisform.Combo1.Displayvalue)IF!FOUND()MESSAGEBOX("查無(wú)此人!")ELSESELECT成績(jī)AVERAGEALLFOR學(xué)號(hào)=學(xué)生.學(xué)號(hào)TOPJThisform.Text1.Value=PJENDIFThisform.Refresh4.√編一頁(yè)面轉(zhuǎn)換表單,界面如圖4-17、4-18所示。要求表單上有一個(gè)包含三頁(yè)的頁(yè)框,每頁(yè)依次放入一幅圖畫(FOX.BMP)、一張表格(顯示'學(xué)生.DBF'的數(shù)據(jù))、一個(gè)列表框(包含有'學(xué)生.DBF'的'姓名'字段),并能每隔2秒鐘從左自右自動(dòng)換頁(yè),當(dāng)翻到第3頁(yè)后,自動(dòng)回到第1頁(yè),未被激活的頁(yè)面自動(dòng)設(shè)為不可訪問。(1)表單Form1的Init事件Thisform.P=0 (2)計(jì)時(shí)器Timer1的Timer事件Thisform.Pageframe1.Page1.Enabled=.F. Thisform.Pageframe1.Page2.Enabled=.F.Thisform.Pageframe1.Page3.Enabled=.F.Thisform.P=Thisform.P+1 IFThisform.P>Thisform.Pageframe1.Pagecount Thisform.P=1 ENDIFThisform.Pageframe1.Pages(Thisform.P).Enabled=.T.Thisform.Pageframe1.Activepage=Thisform.P Thisform.Refresh注意:可以不加新屬性,代碼應(yīng)如何改??不加新屬性只需寫:計(jì)時(shí)器Timer1的Timer事件:Thisform.Pageframe1.Page1.Enabled=.F. Thisform.Pageframe1.Page2.Enabled=.F.Thisform.Pageframe1.Page3.Enabled=.F.P=Thisform.Pageframe1.Activepage IFP=Thisform.Pageframe1.Pagecount P=1 ELSEP=P+1 ENDIFThisform.Pageframe1.Pages(P).Enabled=.T.Thisform.Pageframe1.Activepage=P Thisform.Refresh5.借助于文本框和微調(diào)框編制一個(gè)手工日歷表單,界面如圖4-19、4-20所示。要求日期以中文的方式居中顯示,顯示的字體為宋體、30號(hào)字。(1)表單Form1的Init事件Thisform.Text1.Value=DATE()Thisform.Text1.DateFormat=14&&增加??!Thisform.Spinner1.Setfocus(2)微調(diào)Spinner1的UpClick事件Thisform.Text1.Value=Thisform.Text1.Value+1Thisform.Refresh6.編制一個(gè)表單完成表文件“學(xué)生.dbf”內(nèi)容的自動(dòng)只讀瀏覽顯示功能,界面如圖4-21、4-22所示。具體要求如下:①表單初始顯示內(nèi)容為表文件'學(xué)生.dbf'的首記錄;②表單內(nèi)容將以2秒為間隔自動(dòng)刷新,即自動(dòng)順序向后翻記錄,當(dāng)翻至表底時(shí),將自動(dòng)回到首記錄循環(huán)翻動(dòng)。屬性窗口設(shè)置計(jì)時(shí)器的Interval=2000(1)表單Form1的Init事件Thisform.Setall("Readonly",.T.,"Textbox")Thisform.Setall("Readonly",.T.,"Editbox")Thisform.Setall("Readonly",.T.,"Checkbox")(2)計(jì)時(shí)器Timer1的Timer事件SKIPIFEOF()GOTOPENDIFThisform.Refresh7.*設(shè)計(jì)一個(gè)表單,使表單中的信息行顯示系統(tǒng)當(dāng)前時(shí)間,并使該信息行在表單內(nèi)左右緩慢平移。界面如圖4-23、4-24所示。要求,顯示時(shí)間信息的字體大小為20。信息先向右移動(dòng),且每0.1秒鐘移動(dòng)一個(gè)像素點(diǎn)。注意:加新屬性D?。。?)表單Form1的Init事件This.Caption="信息行動(dòng)態(tài)平行移動(dòng)"thisform.timer1.Interval=100Thisform.Label1.Caption=TIME()&&增加?。。?)計(jì)時(shí)器Timer1的Timer事件Thisform.Label1.Caption=TIME()IFThisform.Label1.Left<=0Thisform.D=.T.&&D是用戶自定義的屬性ENDIFIFThisform.Label1.Left>=Thisform.Width-Thisform.Label1.WidthThisform.D=.F.ENDIFIFThisform.D=.T. Thisform.Label1.Left=Thisform.Label1.Left+1ELSE Thisform.Label1.Left=Thisform.Label1.Left-1ENDIFThisform.Refresh8.*利用計(jì)時(shí)器控件設(shè)計(jì)一個(gè)模擬拍球動(dòng)作的表單。具體界面如圖4-25、4-26所示。球的起始位置在表單的頂行中部,表單執(zhí)行后,球自上而下落下并且球體逐漸變大,當(dāng)球到達(dá)表單底部時(shí)自動(dòng)彈回,并且球體又逐漸回縮變小,當(dāng)球到達(dá)頂部時(shí)再次自動(dòng)下落,如此往復(fù)彈跳,仿佛有人用手拍打球,直到關(guān)閉表單。(1)表單Form1的Init事件Thisform.Shape1.Width=40Thisform.Shape1.Height=40Thisform.Shape1.Top=0Thisform.T=1&&T是用戶自定義的屬性Thisform.Timer1.Interval=100(2)計(jì)時(shí)器Timer1的Timer事件IFThisform.Shape1.Top<=0 Thisform.T=1ENDIFIFThisform.Shape1.Top>=Thisform.Height-Thisform.Shape1.Height Thisform.T=0ENDIFIFThisform.T=1 Thisform.Shape1.Top=Thisform.Shape1.Top+1 Thisform.Shape1.Width=Thisform.Shape1.Width+1 Thisform.Shape1.Height=Thisform.Shape1.Height+1ELSE Thisform.Shape1.Top=Thisform.Shape1.Top-1 Thisform.Shape1.Width=Thisform.Shape1.Width-1 Thisform.Shape1.Height=Thisform.Shape1.Height-1ENDIFThisform.Refresh9.*設(shè)計(jì)一個(gè)三表關(guān)聯(lián)查詢表單(學(xué)生表、成績(jī)表、課程表),成績(jī)表與學(xué)生表建立臨時(shí)關(guān)聯(lián),成績(jī)表與課程表建立臨時(shí)關(guān)聯(lián),查詢相關(guān)的信息。要求表格是只讀顯示,不能刪除、不能添加。運(yùn)行界面如圖4-29、4-30所示。注意:需要在數(shù)據(jù)環(huán)境建立關(guān)聯(lián)??!表單Form1的Init事件Thisform.Setall("Readonly",.T.,"Grid")Thisform.Setall("Allowaddnew",.F.,"Grid")Thisform.Setall("Deletemark",.F.,"Grid")第10題:改為P258例6.10設(shè)計(jì)一個(gè)統(tǒng)計(jì)車票總金額的表單,要求是:在給出的各種車票中選擇你需要的,按“計(jì)算總額”命令按鈕,將所需要的車票總金額計(jì)算出來并顯示在指定的文本框中。命令按鈕Command1(計(jì)算總額)的Click事件代碼。S=0IFThisform.Check1.Value=1S=S+580ENDIFIFThisform.Check2.Value=1S=S+50ENDIFIFThisform.Check3.Value=1S=S+280ENDIFThisform.Text1.Value=SThisform.Refresh11.編制一個(gè)表單完成計(jì)時(shí)器計(jì)數(shù)顯示功能,界面如圖4-33、4-34所示。具體要求如下:①表單初始顯示狀態(tài)為全零“00:00:00”;②按“計(jì)數(shù)”按鈕,將自動(dòng)以秒為單位從零開始計(jì)數(shù)并在表單上動(dòng)態(tài)顯示;③按“停止”按鈕將顯示最后一刻的計(jì)數(shù)時(shí)間。(1)表單Form1的Init事件STORE0TOThis.H,This.M,This.S&&H,M,S是新加的屬性Thisform.Text1.Value="00:00:00"Thisform.Timer1.Enabled=.F.Thisform.Refresh(2)命令按鈕Command1的Click事件Thisform.Timer1.Enabled=.T.STORE0TOThisform.H,Thisform.M,Thisform.SThisform.Text1.Value="00:00:00“(3)命令按鈕Command2的Click事件Thisform.Timer1.Enabled=.F.(4)計(jì)時(shí)器Timer1的Timer事件Thisform.S=Thisform.S+1IFThisform.S=60Thisform.S=0Thisform.M=Thisform.M+1IFThisform.M=60Thisform.M=0Thisform.H=Thisform.H+1ENDIFENDIFHH=IIF(Thisform.H>9,STR(Thisform.H,2),"0"+STR(Thisform.H,1))MM=IIF(Thisform.M>9,STR(Thisform.M,2),"0"+STR(Thisform.M,1))SS=IIF(Thisform.S>9,STR(Thisform.S,2),"0"+STR(Thisform.S,1))Thisform.Text1.Value=HH+":"+MM+":"+SSThisform.Refresh12.用選項(xiàng)按鈕組設(shè)計(jì)五色調(diào)色板表單,界面如圖4-35、4-36所示。要求:文字為楷書、18號(hào)字,表單的標(biāo)題為“調(diào)色板”,按鈕組五個(gè)按鈕,按下圖排列,當(dāng)單擊對(duì)應(yīng)的按鈕時(shí),按鈕組的背景顏色相應(yīng)改變,初始顏色為紅色。(1)表單Form1的Init事件Thisform.OptionGroup1.Value=1Thisform.OptionGroup1.Backcolor=RGB(255,0,0)(2)選項(xiàng)按鈕組OptionGroup1的Click事件DOCASE CASEThis.Value=1 This.Backcolor=RGB(255,0,0) CASEThis.Value=2 This.Backcolor=RGB(0,0,255) CASEThis.Value=3 This.Backcolor=RGB(0,255,0) CASEThis.Value=4 This.Backcolor=RGB(255,255,255) CASEThis.Value=5 This.Backcolor=RGB(0,0,0)ENDCASEThisform.Refresh13.*設(shè)計(jì)一個(gè)表單,當(dāng)用戶在文本框中輸入矩陣的維數(shù)N后,按“顯示”按鈕則會(huì)在編輯框中輸出對(duì)角線為0的N維矩陣,輸入數(shù)據(jù)不合要求時(shí)顯示提示信息。

(1)文本框Text1的Valid事件IFVAL(This.Value)>9ORVAL(This.Value)<1=MESSAGEBOX("輸入錯(cuò),請(qǐng)重新輸入!")RETURN.F.ELSERETURN.T.ENDIFThisform.Refresh(2)命令按鈕Command1的Click事件N=Val(Alltrim(Thisform.Text1.Value))DIMENSIONA(N,N)CH=""FORI=1TON FORJ=1TON IFI=JORI+J=N+1 A(I,J)=0 ELSE A(I,J)=1 ENDIF CH=CH+STR(A(I,J),2) ENDFOR CH=CH+CHR(13)ENDFORThisform.Edit1.Value=ChThisform.Text1.SetfocusThisform.Refresh14.*設(shè)計(jì)一個(gè)完成口令判定功能的表單,界面如圖4-39~4-42所示。具體要求如下:①用戶從鍵盤輸入口令時(shí),表單的顯示控件以“*”代替具體內(nèi)容;②系統(tǒng)的口令存放在表文件“學(xué)生.dbf的”姓名字段中,要求完全匹配;③輸入口令后,按回車或按'確定'按鈕,將自動(dòng)顯示信息框(Messagebox),提示“正確!”或“錯(cuò)誤!”;④按'退出'按鈕將自動(dòng)關(guān)閉表單。(1)表單Form1的Init事件*USE學(xué)生&&放數(shù)據(jù)環(huán)境更好Thisform.Text1.Passwordchar="*"This.Caption="口令驗(yàn)證窗“(2)文本框Text1的Valid事件LOCATEFORALLTRIM(This.Value)==ALLTRIM(姓名)IFFOUND()MESSAGEBOX("正確!")RETURN.T.ELSEMESSAGEBOX("錯(cuò)誤!")RETURN.F.ENDIFThisform.Refresh15.*設(shè)計(jì)一個(gè)圓球跳動(dòng)表單。要求:球的寬和高為40,球的填充顏色為RGB(128,64,0),表單的標(biāo)題為“圓球跳動(dòng)”,球每隔0.5秒在表單的上下邊之間跳動(dòng)。按開始按鈕球跳動(dòng),按停止按鈕球停止。注意:形狀的屬性、計(jì)時(shí)器的Interval等在屬性窗口設(shè)置?。。?)命令按鈕Command1的Click事件Thisform.Timer1.Enabled=.T.(2)命令按鈕Command2的Click事件Thisform.Timer1.Enabled=.F.(3)計(jì)時(shí)器Timer1的Timer事件IFThisform.Shape1.Top=0Thisform.Shape1.Top=Thisform.Height-;Thisform.Shape1.HeightELSEThisform.Shape1.Top=0ENDIFThisform.Refresh16.運(yùn)用文本框和計(jì)時(shí)器對(duì)象設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘表單,界面如圖4-45、4-56所示。要求:文本框文字為隸書、30號(hào)字,表單的標(biāo)題為“數(shù)字時(shí)鐘”,每隔1秒鐘刷新一次時(shí)間。(1)表單Form1的Init事件Thisform.Caption="數(shù)字時(shí)鐘"Thisform.Text1.Fontname="隸書"Thisform.Text1.Fontsize=30Thisform.Timer1.Interval=1000(2)計(jì)時(shí)器Timer1的Timer事件Thisform.Text1.Value=LEFT(TIME(),2)+"時(shí)"+SUBSTR(TIME(),4,2)+"分"+RIGHT(TIME(),2)+"秒"17.編制一個(gè)顯示時(shí)鐘和日期的表單,界面如圖4-47~4-49所示。命令按鈕及文本框的字體、顏色和大小設(shè)置為自己喜歡的形式。(1)表單Form1的Init事件Thisform.Text1.Value=Time()*Thisform.Timer1.Enabled=.F.(2)命令按鈕Command1的Click事件Thisform.Timer1.Enabled=.T.(3)命令按鈕Command2的Click事件Thisform.Timer1.Enabled=.F.Y=STR(YEAR(DATE()),4)M=STR(MONTH(DATE()),2)D=STR(DAY(DATE()),2)Thisform.Text1.Value=Y+"年"+M+"月"+D+"日"+CHR(13)+CDOW(DATE())Thisform.Refresh(5)計(jì)時(shí)器Timer1的Timer事件Thisform.Text1.Value=TIME()Thisform.Refresh18.*建立一個(gè)表單,通過每次單擊'開始'按鈕,都能實(shí)現(xiàn)表單的標(biāo)簽信息從頂行向下平移,移到底邊即停止。設(shè)計(jì)界面如圖4-50、4-51所示。標(biāo)簽高度為30,字體顏色為藍(lán)色。(2)命令按鈕Command1的Click事件:Thisform.Timer1.Enabled=.T.Thisform.label1.top=0(4)計(jì)時(shí)器imer1的Timer事件IFThisform.Label1.Top<=Thisform.Height-Thisform.Label1.HeightThisform.Label1.Top=Thisform.Label1.Top+1ENDIFThisform.Refresh19.*編制一個(gè)表單完成表文件“學(xué)生.dbf”內(nèi)容的學(xué)生獎(jiǎng)學(xué)金查詢顯示功能,界面如圖4-52、4-53所示。要求:①當(dāng)用戶在下拉列表中選擇班級(jí)(學(xué)號(hào)的前三位)后,按回車或“確定”按鈕時(shí),表單將自動(dòng)顯示對(duì)應(yīng)班級(jí)的獎(jiǎng)學(xué)金總額;②按“退出”按鈕時(shí),自動(dòng)關(guān)閉表單。(1)表單Form1的Init事件SETTALKOFFSETSAFETYOFFINDEXONLEFT(學(xué)生.學(xué)號(hào),3)TOXHUNIQUE

Thisform.Combo1.Displayvalue=Left(學(xué)生.學(xué)號(hào),3)SCANThisform.Combo1.Additem(LEFT(學(xué)生.學(xué)號(hào),3))ENDSCANSETINDEXTO(2)組合框Combo1的Valid事件*IFEMPTY(This.Displayvalue)*RETURN.T.*ENDIFLOCATEFORLEFT(ALLTRIM(學(xué)生.學(xué)號(hào)),3)==;LEFT(ALLTRIM(This.Displayvalue),3)IFEOF()RETURN.F.ELSERETURN.T.ENDIF(3)命令按鈕Command1的Click事件SUM獎(jiǎng)學(xué)金TOMJXJFORLEFT(ALLTRIM(學(xué)號(hào)),3)==;LEFT(ALLTRIM(Thisform.Combo1.Displayvalue),3)Thisform.Text1.Value=MJXJ21.完成如圖4-56、4-57所示的表單設(shè)計(jì)。具體要求如下:當(dāng)在文本框中輸入數(shù)字并按回車鍵,判斷按鈕會(huì)自動(dòng)按下,判斷該數(shù)是否為素?cái)?shù)并顯示在Text2中,同時(shí)焦點(diǎn)自動(dòng)回到Text1并選中原文本框中數(shù)據(jù),準(zhǔn)備接收新的輸入。設(shè)計(jì)界面上顯示的屬性請(qǐng)?jiān)趯傩源翱谥性O(shè)置并請(qǐng)寫出命令按鈕1、2的Click事件代碼。(1)表單Form1的Init事件ThisForm.Text1.SelectonEntry=.T.ThisForm.Text2.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論