版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實驗考核題庫及解答
注意:1)程序填空題:把第13題(口令驗證)、第23題(轉(zhuǎn)換中文星期的自定義函數(shù))去掉了。2)程序改錯題:把第10題(K!+…+M!,帶參調(diào)用)去掉,把第18題(輸出最大數(shù)和最小數(shù))去掉。3)表單設(shè)計題:把第10題(查詢并顯示指定學生的平均成績和成績檔次)換為了教材的例6.10(統(tǒng)計車票總金額);把第20題(命令按鈕組實現(xiàn)前翻、后翻等)去掉了。上面的題號與《數(shù)據(jù)庫應(yīng)用基礎(chǔ)學習指導》第4部分題目編號一致。
一、程序填空:
1.√在學生表中查找并輸出指定學生的所有信息。SETTALKOFFCLEARUSE學生1&&此處填空ACCEPT"請輸入指定的學生學號:"TOXHSEEKXHIF2&&此處填空?"查無此人!"ELSE3&&此處填空ENDIFUSESETTALKON2.√
*判斷給定的正整數(shù)值是否為素數(shù),并能反復(fù)判斷。SETTALKOFFCLEARDOWHILE.T.INPUT"請輸入一個正整數(shù):"TOX1&&此處填空IFINT(X/I)=X/IEXITENDIFENDFORIF2&&此處填空?X,"是素數(shù)!"ELSE?X,"不是素數(shù)!"ENDIFWAIT"是否繼續(xù)輸入(Y/N)"TOYN3&&此處填空LOOPELSEEXITENDIFENDDOSETTALKON3.√
*輸入邊長,如果能構(gòu)成三角形,則計算三角形面積。SETTALKOFF1&&此處填空CLEARINPUT"輸入第一邊長:"TOXINPUT"輸入第二邊長:"TOYINPUT"輸入第三邊長:"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./在屏幕上顯示輸出一個乘法九九表。顯示格式如圖4-1所示。SETTALKOFFCLEAR1&&此處填空DOWHILEX<=9Y=1DOWHILEY<=X2&&此處填空Y=Y+1ENDDO3&&此處填空X=X+1ENDDOSETTALKON5.√根據(jù)輸入的數(shù)據(jù),計算不大于該數(shù)的所有奇數(shù)累加和。SETTALKOFFCLEARYN="Y"DOWHILE1&&此處填空INPUT"請輸入兩位以內(nèi)的正整數(shù):"TONSTORE0TOX,YDOWHILEX<NX=X+1IF2&&此處填空Y=Y+XENDIFENDDO?"不大于該數(shù)的奇數(shù)累加和="+STR(Y,4)3"繼續(xù)計算否?(Y/N)"TOYN&&此處填空ENDDO?"再見!"SETTALKON6.根據(jù)輸入的數(shù)據(jù),判斷該數(shù)是否為偶數(shù),可以反復(fù)判斷。SETTALKOFFCLEARYN="Y"1&&此處填空INPUT"請輸入一個自然數(shù):"TONIF2&&此處填空?"不是偶數(shù)!"ELSE?"是偶數(shù)!"ENDIF3"繼續(xù)否?(Y/N)"TOYN&&此處填空ENDDO?"再見!"SETTALKONSETTALKOFFDOWHILE.T.CLEARACCEPT"請輸入表名(擴展名略):"TOTBNIFFILE("&TBN..DBF")1&&此處填空ELSEWAIT"指定的表不存在!"LOOPENDIF?"表中的全部字段名列表:"FORN=1TO2&&此處填空
?FIELD(N)ENDFORACCEPT"輸入顯示條件:"TOEXPRLIST3&&此處填空WAIT"是否繼續(xù)(Y/N)?:"TOYNIFUPPER(YN)!="Y"EXITENDIFENDDOUSESETTALKON7.√
*顯示指定表中的全部字段名,并由用戶輸入顯示表信息的條件,最后列表顯示滿足條件的記錄。8.√
*接收從鍵盤輸入的任意5個數(shù),輸入的數(shù)可以是負數(shù),但包括符號位最多三位。程序的功能是,找出其中最大的數(shù)和最小的數(shù),最后顯示出來。SETTALKOFFCLEARINPUT"請輸入第一個數(shù)字:"TOXZD=X1&&此處填空N=52&&此處填空INPUT"請輸入下一個數(shù)字:"TOXIFZD<XZD=XENDIFIF3&&此處填空ZX=XENDIFN=N-1ENDDO?"最大數(shù):"+STR(ZD,3,0),"最小數(shù):"+STR(ZX,3,0)SETTALKON9.√
*顯示輸出學生表中每個班級的男女同學的獎學金總金額。SETTALKOFFCLEARUSE學生INDEXON學號TOINN0?"**********各班男女獎學金總額統(tǒng)計************"?"班級男同學獎學金總額女同學獎學金總額"1&&此處填空 CLASS=LEFT(學號,3) STORE0TOBOYS,GIRLS DOWHILE2&&此處填空
IF性別 BOYS=BOYS+獎學金 ELSE GIRLS=GIRLS+獎學金 ENDIF 3&&此處填空 ENDDO ?CLASS+STR(BOYS,19,2)+STR(GIRLS,19,2)ENDDOUSESETTALKON10.√
*返回給定的字符串表達式的倒置字符串。如:輸入字符串"ABCD",倒置后輸出的字符串為"DCBA"。SETTALKOFFCLEARACCEPT"請輸入一個字符串:"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,計算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)+"個數(shù)滿足條件"ENDIFSETTALKON/12.√
*輸入正整數(shù)M,顯示1~M中有哪些數(shù)可以分為兩個相等的素數(shù)。(如M=10,有3個數(shù)符合,即2+2=4,3+3=6和5+5=10)14.本程序顯示學生表中的獲得獎學金的學生姓名和獎學金數(shù)額SETTALKOFFCLEARUSE學生1&&此處填空IF2&&此處填空?姓名,獎學金SKIPELSE3&&此處填空ENDIFENDDOUSESETTALKON15.本程序顯示學生表中1990年或以前出生的學生姓名和出生年月(日期型)。SETTALKOFFCLEARUSE學生LOCATE1&&此處填空2&&此處填空?姓名,出生年月3&&此處填空ENDDOUSESETTALKON16.√
*本程序計算一個十進制正整數(shù)N的各位數(shù)字之和(如輸入:12378,則計算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)逐個取數(shù),當剩余為零時循環(huán)結(jié)束.17.本程序?qū)崿F(xiàn)從鍵盤中輸入5個數(shù),去掉一個最大數(shù)和一個最小數(shù),然后求平均值。SETTALKOFFCLEARINPUT'N='TON1&&此處填空FORI=1TO4INPUT'N='TONIF2&&此處填空A=NENDIFIFB>NB=NENDIF3&&此處填空ENDFOR?'平均值=',(S-A-B)/3SETTALKON18.√計算:1!+3!+5!+…+N!,N由鍵盤輸入。SETTALKOFFCLEAR1&&此處填空STORE0TOS,TFORI=1TONSTEP2 DOSUB 2&&此處填空ENDFOR?SSETTALKONPROCSUBT=1FORJ=1TOI 3&&此處填空ENDFOR19.設(shè)變量N的輸入值為5,字符A的ASCII碼為65。程序的運行如圖4-2所示。SETTALKOFFCLEARINPUT"N="TONFORI=1TON?1&&此處填空FORJ=1TO2&&此處填空 ??3&&此處填空ENDFORENDFORSETTALKON20.將表“學生.DBF”中指定學生(由鍵盤輸入)的獎學金加60,并顯示該學生的記錄。SETTALKOFFCLEARUSE學生ACCEPT“輸入學號=”TOM1&&此處填空IF!EOF()2&&此處填空DISPLAYELSE?”沒有找到!”3&&此處填空USESETTALKONUSE成績ACCEPT"請輸入學生的學號:"TOXH1&&此處填空IF!FOUND() ?"查無此人!"ELSE 2&&此處填空DOCASE CASEPJCJ>=90 DC="優(yōu)" CASEPJCJ>=80 DC="良" CASEPJCJ>=70 DC="中" CASEPJCJ>=60 DC="及格" 3&&此處填空 DC="不及格"ENDCASE?"學號","平均成績","檔次"?XH,STR(PJCJ,8,2),DCENDIFUSE21.下面程序統(tǒng)計指定學生的平均成績及該成績的檔次。22.程序輸出的結(jié)果如圖4-3所示。SETTALKOFFCLEAA="*"1&&此處填空FORK=1TOH ?2&&此處填空 FORT=1TO3&&此處填空 ??A ENDFORENDFORSETTALKON24.本程序?qū)崿F(xiàn)“百錢買百雞”的計算(取自《算經(jīng)》:“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?)SETTALKOFFCLEARFORX=0TO20FOR1&&此處填空Z=100-X-YIF2&&此處填空?"X="+STR(X,2),"Y="+STR(Y,2),"Z="+STR(Z,2)ENDIFENDFOR3&&此處填空SETTALKON25.√輸入一個自然數(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二、程序改錯題
1.√求當1!+3!+5!++N!的值不超過1020時的臨界值及N的值。SETTALKOFFCLEARS=0N=1******1******DOWHILEI<NT=1FORI=1TON
******2******T=I*IENDFORS=S+T
******3******N=N+1ENDDO?"N=",N-4SETTALKON2.√計算: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)用的方法實現(xiàn)計算: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ù),從鍵盤輸入)之間的素數(shù)和個數(shù)。SETTALKOFFCLEARINPUT"M="TOMK=0FORX=3TOMFORN=2TOX-1
******1******IFX/N=0EXITENDIFENDFOR
******2******IFN>X ??X
******3******K=K+XENDIFENDFOR?"共"+ALLTRIM(STR(K))+"個素數(shù)"SETTALKON5*
.統(tǒng)計顯示"課程"表中所有不同學期考試課和考查課的總學分數(shù)。輸出格式如下:學期考試課總學分考查課總學分**************************************1113
USE課程INDEXON學期TOXQ?"學期考試課總學分考查課總學分"?"*******************************************"DOWHILE.NOT.EOF()XQ=學期STORE0TOKS,KC
******1******DOWHILE.T. IF考試標志="1"
******2******KC=KC+學分ELSEKC=KC+學分ENDIF
******3******CONTINUEENDDO?XQ+STR(KS,19,2)+STR(KC,19,2)ENDDOUSESETTALKOFF6.√編寫程序顯示輸出給定行數(shù)的對稱菱形圖案,如圖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之間的素數(shù)。SETTALKOFFCLEARFORM=3TO200
******1*****FORN=1TOM
******2*****IFM/2=INT(M/2) EXITENDIFENDFOR
******3*****IFN>M??MENDIFENDFORSETTALKON9*
.*本程序用以判斷輸入的字符串是否是回文(回文是從左到右和從右到左讀時都一樣的一個字符串,不論大小寫字母)。SETTALKOFFCLEARC=SPACE(0)ACCEPT'請輸入字符串='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./√本程序輸入一個一位數(shù)值(0-9),并把它轉(zhuǎn)化為對應(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.√對成績.DBF(其中包含"學號"字段,并且以"學號"為關(guān)鍵字建立了索引標識“學號”)中學號相同的重復(fù)記錄進行邏輯刪除。SETTALKOFFCLEARSETDELETEDON******1******USE成績DOWHILENOTEOF()XH=學號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ù)的值分解因子,并輸出各個質(zhì)數(shù)因子(如24的質(zhì)數(shù)因子有2、2、2和3)(如果一個質(zhì)數(shù)是某個數(shù)的約數(shù),那么這個質(zhì)數(shù)是這個數(shù)的質(zhì)數(shù)因子)SETTALKOFFCLEARC1="零壹貳叁肆伍陸柒捌玖"C2="分角元拾佰仟萬拾佰仟億拾佰仟"INPUT'輸入一個正數(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*
.**對任意一個正數(shù)值型數(shù)據(jù)(該數(shù)可有小數(shù)若干位,整數(shù)部分不超過12位)自動進行小數(shù)部分四舍五入取2位,并將其轉(zhuǎn)換為中文大寫金額.四舍五入函數(shù):ROUND(X,N)16*
.*本程序輸出一個對角線上元素為0,其它元素為1的6*6階方陣。輸出時每個元素占2個字符,如圖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))+"個。"SETTALKON17*.*本程序?qū)崿F(xiàn):對輸入的正整數(shù),判別其中包含指定數(shù)碼的個數(shù)(如2312132中包含數(shù)碼1的個數(shù)為2)。19*.輸入三個正數(shù),判定是否構(gòu)成一個三角形,如果構(gòu)成一個三角形,則返回.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*
.*將成績表中成績小于60分的學號、課程號及成績顯示出來。SETTALKOFFCLEARUSE成績?''?'不及格學生名單'?''?'學號課程號成績'******1******GOBOTTOMDOWHILE.NOT.EOF()IF成績<60
******2******?學號+SPACE(5)+課程號+SPACE(5)+成績ENDIFSKIPENDDO?''******3******?'當前日期'+CTOD(DATE())USESETTALKON21.本程序用于計算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成績C="不及格及格中良優(yōu)"******1******INPUT"輸入學號="LOCATEFOR學號=XHIFFOUND()
******2******TOTAL成績TOCJIFCJ<60R=0ELSER=INT(CJ/10)-5ENDIF
******3******DC=STR(C,6)?XH,CJ,DCELSE?'查無此人!'ENDIFUSESETTALKON22*
.*本程序?qū)崿F(xiàn):從鍵盤輸入學生的學號,計算該生的平均成績,并說明成績的檔次(優(yōu)、良、中、及格和不及格)。23**.\本程序?qū)崿F(xiàn)指定表指定條件的任意查詢功能。SETTALKOFFCLEARACCEPT"請輸入表名:(擴展名略)"TOFNAME******1******IF.NOT.FILE(FNAME)WAIT"此表不存在!"ELSEUSE(FNAME)ZDSM=FCOUNT()?"此表中的字段有:"+STR(ZDSM)+"個"FORI=1TOZDSM ?STR(I)+""??FIELD(I)
******2******ENDDOENDIFACCEPT"請輸入顯示表信息的條件表達式:"TOEXP******3******LISTFOREXPUSESETTALKONSETTALKOFFCLEARDOWHILE.T.ACCEPT"請輸入表名:(不含擴展名)"TOFNAME******1******IF.NOT.FILE(FNAME)WAIT"此表不存在!"ELSEUSE&FNAMEZDSM=FCOUNT()
******2******?"此表中的字段有:"+ZDSM+"個"FORI=1TOZDSM?STR(I)+""******3******??NAME(I)ENDFORENDIFWAIT"繼續(xù)否?(Y/N)"TOYNIFUPPER(YN)="N"EXITENDIFENDDOSETTALKON24*
.*本程序用于輸入一個表名,若表存在則打開表,并顯示其各個字段名。25.本程序在屏幕上顯示如圖4-8所示的圖形。SETTALKOFFCLEAK=1DOWHILK<=5C=1
******1******DOWHILC<=5
******2******?CC=C+1ENDDO?
******3******K=K-1ENDDOSETTALKON三、表單設(shè)計題:設(shè)計步驟:1、放入對象,注意:數(shù)據(jù)環(huán)境是否需要放入表;2、設(shè)置屬性,注意:是否需要添加新屬性;3、寫事件代碼,調(diào)試運行。1.設(shè)計一個標準化模擬考試表單。界面如圖4-9至圖4-12所示。要求:文字字體、字號任意,當選擇答案時,根據(jù)對錯用Messagebox()函數(shù)顯示提示信息。(1)表單Form1的Init事件Thisform.Optiongroup1.Value=0(2)選項按鈕組Optiongroup1的InterActiveChange事件IFThis.Value=2 MessageBox("答對了,真棒!",0+48,"評判結(jié)果")ELSE MessageBox("答錯了,再試!",0+32,"評判結(jié)果")ENDIF2.編制一個表單完成表文件“學生.dbf”內(nèi)容的只讀瀏覽顯示功能,界面如圖4-13、4-14所示。要求如下:①表單初始顯示內(nèi)容為表文件'學生.dbf'的首記錄;②當按“前翻”、“后翻”、“首記錄”、“末記錄”按鈕時,表單將自動顯示相應(yīng)記錄的內(nèi)容;③當翻至表頭或表底時,將自動設(shè)置相應(yīng)按鈕不可訪問。注意:設(shè)計界面上的屬性在屬性窗口設(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.*編制一個表單完成學生成績查詢顯示功能,數(shù)據(jù)來源于表文件“學生.dbf”“成績.dbf”。界面如圖4-15、4-16所示。具體要求如下:①當用戶在組合框輸入或選擇姓名后,按回車或“確定”按鈕時,表單將自動顯示對應(yīng)學生的平均成績,如果該學生不存在,則顯示提示信息;②按“退出”按鈕時,自動關(guān)閉表單。注意:(1)有2張表,放數(shù)據(jù)環(huán)境,查找和計算時要切換表。(2)設(shè)置Combo1的RowSourcetype為6,RowSource為學生.姓名(1)表單Form1的Init事件SETTALKOFF(2)命令按鈕Command1的Click事件SELECT學生
LOCAALLFORALLT(姓名)=;ALLT(Thisform.Combo1.Displayvalue)IF!FOUND()MESSAGEBOX("查無此人!")ELSESELECT成績AVERAGEALLFOR學號=學生.學號TOPJThisform.Text1.Value=PJENDIFThisform.Refresh4.√編一頁面轉(zhuǎn)換表單,界面如圖4-17、4-18所示。要求表單上有一個包含三頁的頁框,每頁依次放入一幅圖畫(FOX.BMP)、一張表格(顯示'學生.DBF'的數(shù)據(jù))、一個列表框(包含有'學生.DBF'的'姓名'字段),并能每隔2秒鐘從左自右自動換頁,當翻到第3頁后,自動回到第1頁,未被激活的頁面自動設(shè)為不可訪問。(1)表單Form1的Init事件Thisform.P=0 (2)計時器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)如何改??不加新屬性只需寫:計時器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)框編制一個手工日歷表單,界面如圖4-19、4-20所示。要求日期以中文的方式居中顯示,顯示的字體為宋體、30號字。(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.編制一個表單完成表文件“學生.dbf”內(nèi)容的自動只讀瀏覽顯示功能,界面如圖4-21、4-22所示。具體要求如下:①表單初始顯示內(nèi)容為表文件'學生.dbf'的首記錄;②表單內(nèi)容將以2秒為間隔自動刷新,即自動順序向后翻記錄,當翻至表底時,將自動回到首記錄循環(huán)翻動。屬性窗口設(shè)置計時器的Interval=2000(1)表單Form1的Init事件Thisform.Setall("Readonly",.T.,"Textbox")Thisform.Setall("Readonly",.T.,"Editbox")Thisform.Setall("Readonly",.T.,"Checkbox")(2)計時器Timer1的Timer事件SKIPIFEOF()GOTOPENDIFThisform.Refresh7.*設(shè)計一個表單,使表單中的信息行顯示系統(tǒng)當前時間,并使該信息行在表單內(nèi)左右緩慢平移。界面如圖4-23、4-24所示。要求,顯示時間信息的字體大小為20。信息先向右移動,且每0.1秒鐘移動一個像素點。注意:加新屬性D!?。?)表單Form1的Init事件This.Caption="信息行動態(tài)平行移動"thisform.timer1.Interval=100Thisform.Label1.Caption=TIME()&&增加?。。?)計時器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.*利用計時器控件設(shè)計一個模擬拍球動作的表單。具體界面如圖4-25、4-26所示。球的起始位置在表單的頂行中部,表單執(zhí)行后,球自上而下落下并且球體逐漸變大,當球到達表單底部時自動彈回,并且球體又逐漸回縮變小,當球到達頂部時再次自動下落,如此往復(fù)彈跳,仿佛有人用手拍打球,直到關(guān)閉表單。(1)表單Form1的Init事件Thisform.Shape1.Width=40Thisform.Shape1.Height=40Thisform.Shape1.Top=0Thisform.T=1&&T是用戶自定義的屬性Thisform.Timer1.Interval=100(2)計時器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è)計一個三表關(guān)聯(lián)查詢表單(學生表、成績表、課程表),成績表與學生表建立臨時關(guān)聯(lián),成績表與課程表建立臨時關(guān)聯(lián),查詢相關(guā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è)計一個統(tǒng)計車票總金額的表單,要求是:在給出的各種車票中選擇你需要的,按“計算總額”命令按鈕,將所需要的車票總金額計算出來并顯示在指定的文本框中。命令按鈕Command1(計算總額)的Click事件代碼。S=0IFThisform.Check1.Value=1S=S+580ENDIFIFThisform.Check2.Value=1S=S+50ENDIFIFThisform.Check3.Value=1S=S+280ENDIFThisform.Text1.Value=SThisform.Refresh11.編制一個表單完成計時器計數(shù)顯示功能,界面如圖4-33、4-34所示。具體要求如下:①表單初始顯示狀態(tài)為全零“00:00:00”;②按“計數(shù)”按鈕,將自動以秒為單位從零開始計數(shù)并在表單上動態(tài)顯示;③按“停止”按鈕將顯示最后一刻的計數(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)計時器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.用選項按鈕組設(shè)計五色調(diào)色板表單,界面如圖4-35、4-36所示。要求:文字為楷書、18號字,表單的標題為“調(diào)色板”,按鈕組五個按鈕,按下圖排列,當單擊對應(yīng)的按鈕時,按鈕組的背景顏色相應(yīng)改變,初始顏色為紅色。(1)表單Form1的Init事件Thisform.OptionGroup1.Value=1Thisform.OptionGroup1.Backcolor=RGB(255,0,0)(2)選項按鈕組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è)計一個表單,當用戶在文本框中輸入矩陣的維數(shù)N后,按“顯示”按鈕則會在編輯框中輸出對角線為0的N維矩陣,輸入數(shù)據(jù)不合要求時顯示提示信息。
(1)文本框Text1的Valid事件IFVAL(This.Value)>9ORVAL(This.Value)<1=MESSAGEBOX("輸入錯,請重新輸入!")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è)計一個完成口令判定功能的表單,界面如圖4-39~4-42所示。具體要求如下:①用戶從鍵盤輸入口令時,表單的顯示控件以“*”代替具體內(nèi)容;②系統(tǒng)的口令存放在表文件“學生.dbf的”姓名字段中,要求完全匹配;③輸入口令后,按回車或按'確定'按鈕,將自動顯示信息框(Messagebox),提示“正確!”或“錯誤!”;④按'退出'按鈕將自動關(guān)閉表單。(1)表單Form1的Init事件*USE學生&&放數(shù)據(jù)環(huán)境更好Thisform.Text1.Passwordchar="*"This.Caption="口令驗證窗“(2)文本框Text1的Valid事件LOCATEFORALLTRIM(This.Value)==ALLTRIM(姓名)IFFOUND()MESSAGEBOX("正確!")RETURN.T.ELSEMESSAGEBOX("錯誤!")RETURN.F.ENDIFThisform.Refresh15.*設(shè)計一個圓球跳動表單。要求:球的寬和高為40,球的填充顏色為RGB(128,64,0),表單的標題為“圓球跳動”,球每隔0.5秒在表單的上下邊之間跳動。按開始按鈕球跳動,按停止按鈕球停止。注意:形狀的屬性、計時器的Interval等在屬性窗口設(shè)置?。。?)命令按鈕Command1的Click事件Thisform.Timer1.Enabled=.T.(2)命令按鈕Command2的Click事件Thisform.Timer1.Enabled=.F.(3)計時器Timer1的Timer事件IFThisform.Shape1.Top=0Thisform.Shape1.Top=Thisform.Height-;Thisform.Shape1.HeightELSEThisform.Shape1.Top=0ENDIFThisform.Refresh16.運用文本框和計時器對象設(shè)計一個數(shù)字時鐘表單,界面如圖4-45、4-56所示。要求:文本框文字為隸書、30號字,表單的標題為“數(shù)字時鐘”,每隔1秒鐘刷新一次時間。(1)表單Form1的Init事件Thisform.Caption="數(shù)字時鐘"Thisform.Text1.Fontname="隸書"Thisform.Text1.Fontsize=30Thisform.Timer1.Interval=1000(2)計時器Timer1的Timer事件Thisform.Text1.Value=LEFT(TIME(),2)+"時"+SUBSTR(TIME(),4,2)+"分"+RIGHT(TIME(),2)+"秒"17.編制一個顯示時鐘和日期的表單,界面如圖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)計時器Timer1的Timer事件Thisform.Text1.Value=TIME()Thisform.Refresh18.*建立一個表單,通過每次單擊'開始'按鈕,都能實現(xiàn)表單的標簽信息從頂行向下平移,移到底邊即停止。設(shè)計界面如圖4-50、4-51所示。標簽高度為30,字體顏色為藍色。(2)命令按鈕Command1的Click事件:Thisform.Timer1.Enabled=.T.Thisform.label1.top=0(4)計時器imer1的Timer事件IFThisform.Label1.Top<=Thisform.Height-Thisform.Label1.HeightThisform.Label1.Top=Thisform.Label1.Top+1ENDIFThisform.Refresh19.*編制一個表單完成表文件“學生.dbf”內(nèi)容的學生獎學金查詢顯示功能,界面如圖4-52、4-53所示。要求:①當用戶在下拉列表中選擇班級(學號的前三位)后,按回車或“確定”按鈕時,表單將自動顯示對應(yīng)班級的獎學金總額;②按“退出”按鈕時,自動關(guān)閉表單。(1)表單Form1的Init事件SETTALKOFFSETSAFETYOFFINDEXONLEFT(學生.學號,3)TOXHUNIQUE
Thisform.Combo1.Displayvalue=Left(學生.學號,3)SCANThisform.Combo1.Additem(LEFT(學生.學號,3))ENDSCANSETINDEXTO(2)組合框Combo1的Valid事件*IFEMPTY(This.Displayvalue)*RETURN.T.*ENDIFLOCATEFORLEFT(ALLTRIM(學生.學號),3)==;LEFT(ALLTRIM(This.Displayvalue),3)IFEOF()RETURN.F.ELSERETURN.T.ENDIF(3)命令按鈕Command1的Click事件SUM獎學金TOMJXJFORLEFT(ALLTRIM(學號),3)==;LEFT(ALLTRIM(Thisform.Combo1.Displayvalue),3)Thisform.Text1.Value=MJXJ21.完成如圖4-56、4-57所示的表單設(shè)計。具體要求如下:當在文本框中輸入數(shù)字并按回車鍵,判斷按鈕會自動按下,判斷該數(shù)是否為素數(shù)并顯示在Text2中,同時焦點自動回到Text1并選中原文本框中數(shù)據(jù),準備接收新的輸入。設(shè)計界面上顯示的屬性請在屬性窗口中設(shè)置并請寫出命令按鈕1、2的Click事件代碼。(1)表單Form1的Init事件ThisForm.Text1.SelectonEntry=.T.ThisForm.Text2.
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 全國教育大會解讀
- 中班安全教育教案40篇冬季
- 煤礦應(yīng)急救援應(yīng)知應(yīng)會100題課件
- 高考調(diào)研高考數(shù)學一輪復(fù)習第十章第課時
- 2024至2030年中國感光涂膠布生產(chǎn)線數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國布飾發(fā)圈行業(yè)投資前景及策略咨詢研究報告
- 2024年四川省瀘州市中考語文試題含解析
- 2024年中國緊急轉(zhuǎn)動式蘑菇鈕市場調(diào)查研究報告
- 2024年中國短滴狀塑料片自動鎖市場調(diào)查研究報告
- 2024年中國凍兔肉排市場調(diào)查研究報告
- 小學英語課堂教學策略與方法探討
- 5科學大玉米真好吃課件
- 新蘇教版2021-2022四年級科學上冊《8力與運動》教案
- DB44 T 552-2008 林業(yè)生態(tài) 術(shù)語
- 套裝門安裝工程施工方案(完整版)
- IBHRE國際心律失??脊傥瘑T會資料: ibhre 復(fù)習資料
- 洋蔥雜交制種高產(chǎn)栽培技術(shù)
- 堅定信心 努力拼搏——在公司大檢修動員會上的講話
- 油墨噴碼機購銷合同
- 水泵生產(chǎn)作業(yè)指導書
- 《高血壓的防治》PPT課件.ppt
評論
0/150
提交評論