数据库实验考核题库及解答_第1页
数据库实验考核题库及解答_第2页
数据库实验考核题库及解答_第3页
数据库实验考核题库及解答_第4页
数据库实验考核题库及解答_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验考核题库及解答

注意:1)程序填空题:把第13题(口令验证)、第23题(转换中文星期的自定义函数)去掉了。2)程序改错题:把第10题(K!+…+M!,带参调用)去掉,把第18题(输出最大数和最小数)去掉。3)表单设计题:把第10题(查询并显示指定学生的平均成绩和成绩档次)换为了教材的例6.10(统计车票总金额);把第20题(命令按钮组实现前翻、后翻等)去掉了。上面的题号与《数据库应用基础学习指导》第4部分题目编号一致。

一、程序填空:

1.√在学生表中查找并输出指定学生的所有信息。SETTALKOFFCLEARUSE学生1&&此处填空ACCEPT"请输入指定的学生学号:"TOXHSEEKXHIF2&&此处填空?"查无此人!"ELSE3&&此处填空ENDIFUSESETTALKON2.√

*判断给定的正整数值是否为素数,并能反复判断。SETTALKOFFCLEARDOWHILE.T.INPUT"请输入一个正整数:"TOX1&&此处填空IFINT(X/I)=X/IEXITENDIFENDFORIF2&&此处填空?X,"是素数!"ELSE?X,"不是素数!"ENDIFWAIT"是否继续输入(Y/N)"TOYN3&&此处填空LOOPELSEEXITENDIFENDDOSETTALKON3.√

*输入边长,如果能构成三角形,则计算三角形面积。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.√根据输入的数据,计算不大于该数的所有奇数累加和。SETTALKOFFCLEARYN="Y"DOWHILE1&&此处填空INPUT"请输入两位以内的正整数:"TONSTORE0TOX,YDOWHILEX<NX=X+1IF2&&此处填空Y=Y+XENDIFENDDO?"不大于该数的奇数累加和="+STR(Y,4)3"继续计算否?(Y/N)"TOYN&&此处填空ENDDO?"再见!"SETTALKON6.根据输入的数据,判断该数是否为偶数,可以反复判断。SETTALKOFFCLEARYN="Y"1&&此处填空INPUT"请输入一个自然数:"TONIF2&&此处填空?"不是偶数!"ELSE?"是偶数!"ENDIF3"继续否?(Y/N)"TOYN&&此处填空ENDDO?"再见!"SETTALKONSETTALKOFFDOWHILE.T.CLEARACCEPT"请输入表名(扩展名略):"TOTBNIFFILE("&TBN..DBF")1&&此处填空ELSEWAIT"指定的表不存在!"LOOPENDIF?"表中的全部字段名列表:"FORN=1TO2&&此处填空

?FIELD(N)ENDFORACCEPT"输入显示条件:"TOEXPRLIST3&&此处填空WAIT"是否继续(Y/N)?:"TOYNIFUPPER(YN)!="Y"EXITENDIFENDDOUSESETTALKON7.√

*显示指定表中的全部字段名,并由用户输入显示表信息的条件,最后列表显示满足条件的记录。8.√

*接收从键盘输入的任意5个数,输入的数可以是负数,但包括符号位最多三位。程序的功能是,找出其中最大的数和最小的数,最后显示出来。SETTALKOFFCLEARINPUT"请输入第一个数字:"TOXZD=X1&&此处填空N=52&&此处填空INPUT"请输入下一个数字:"TOXIFZD<XZD=XENDIFIF3&&此处填空ZX=XENDIFN=N-1ENDDO?"最大数:"+STR(ZD,3,0),"最小数:"+STR(ZX,3,0)SETTALKON9.√

*显示输出学生表中每个班级的男女同学的奖学金总金额。SETTALKOFFCLEARUSE学生INDEXON学号TOINN0?"**********各班男女奖学金总额统计************"?"班级男同学奖学金总额女同学奖学金总额"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?'输入数据不符合题目要求!'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)+"个数满足条件"ENDIFSETTALKON/12.√

*输入正整数M,显示1~M中有哪些数可以分为两个相等的素数。(如M=10,有3个数符合,即2+2=4,3+3=6和5+5=10)14.本程序显示学生表中的获得奖学金的学生姓名和奖学金数额SETTALKOFFCLEARUSE学生1&&此处填空IF2&&此处填空?姓名,奖学金SKIPELSE3&&此处填空ENDIFENDDOUSESETTALKON15.本程序显示学生表中1990年或以前出生的学生姓名和出生年月(日期型)。SETTALKOFFCLEARUSE学生LOCATE1&&此处填空2&&此处填空?姓名,出生年月3&&此处填空ENDDOUSESETTALKON16.√

*本程序计算一个十进制正整数N的各位数字之和(如输入:12378,则计算1+2+3+7+8)。SETTALKOFFCLEARINPUT"M="TOMIFINT(M)!=MORABS(M)!=M?"输入的数据不符合题目要求!"1&&此处填空S=0DO2&&此处填空T=MOD(M,10)S=S+TM=3&&此处填空ENDDO?SENDIFSETTALKONN型数据取数的技巧:除十取余:得到最后一位数;除十取整:得到取数后的剩余用循环逐个取数,当剩余为零时循环结束.17.本程序实现从键盘中输入5个数,去掉一个最大数和一个最小数,然后求平均值。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.设变量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="优" CASEPJCJ>=80 DC="良" CASEPJCJ>=70 DC="中" CASEPJCJ>=60 DC="及格" 3&&此处填空 DC="不及格"ENDCASE?"学号","平均成绩","档次"?XH,STR(PJCJ,8,2),DCENDIFUSE21.下面程序统计指定学生的平均成绩及该成绩的档次。22.程序输出的结果如图4-3所示。SETTALKOFFCLEAA="*"1&&此处填空FORK=1TOH ?2&&此处填空 FORT=1TO3&&此处填空 ??A ENDFORENDFORSETTALKON24.本程序实现“百钱买百鸡”的计算(取自《算经》:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?)SETTALKOFFCLEARFORX=0TO20FOR1&&此处填空Z=100-X-YIF2&&此处填空?"X="+STR(X,2),"Y="+STR(Y,2),"Z="+STR(Z,2)ENDIFENDFOR3&&此处填空SETTALKON25.√输入一个自然数,判断该数是否为完数。(完数的定义:若该数除本身之外的所有因子之和等于该数,则为完数。如:1+2+3=6,6为完数;1+2+4#8,8不是完数。)SETTALKOFFCLEARINPUT"M="TOMN=11&&此处填空FORN=1TOM-1 IF2&&此处填空 S=S+N ENDIFENDFORIF3&&此处填空 ?M,"是完数!"ELSE ?M,"不是完数!"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.用带参调用的方法实现计算: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为正整数,从键盘输入)之间的素数和个数。SETTALKOFFCLEARINPUT"M="TOMK=0FORX=3TOMFORN=2TOX-1

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

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

******3******K=K+XENDIFENDFOR?"共"+ALLTRIM(STR(K))+"个素数"SETTALKON5*

.统计显示"课程"表中所有不同学期考试课和考查课的总学分数。输出格式如下:学期考试课总学分考查课总学分**************************************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.√编写程序显示输出给定行数的对称菱形图案,如图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之间的素数。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./√本程序输入一个一位数值(0-9),并把它转化为对应的中文大写数字(零-玖)。SETTALKOFFCLEARX='零壹贰叁肆伍陆柒捌玖'******1******DOWHILENOTEOF()INPUT'N='TON******2******S=STUFF(X,N,2)?STR(N,1)+">"+SWAIT'是否继续(Y/N)'TOT******3******IFUPPER(T)='n' EXITENDIFENDDOSETTALKON12.√对成绩.DBF(其中包含"学号"字段,并且以"学号"为关键字建立了索引标识“学号”)中学号相同的重复记录进行逻辑删除。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?'输入的数据不符合题目要求!'******2******ENDIFI=2?STR(M)+'的质数因子有:'DOWHILEI<=MIFM%I=0??STR(I,6)

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

.*将给定的正整数的值分解因子,并输出各个质数因子(如24的质数因子有2、2、2和3)(如果一个质数是某个数的约数,那么这个质数是这个数的质数因子)SETTALKOFFCLEARC1="零壹贰叁肆伍陆柒捌玖"C2="分角元拾佰仟万拾佰仟亿拾佰仟"INPUT'输入一个正数='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?"转换的结果是:"+DSETTALKON15*

.**对任意一个正数值型数据(该数可有小数若干位,整数部分不超过12位)自动进行小数部分四舍五入取2位,并将其转换为中文大写金额.四舍五入函数: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定义数组的命令:DIMENSION或者DECLARESETTALKOFFCLEARINPUT'输入数值='TOMINPUT'输入数码='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))+"中包含数码"+STR(N,1)+"共"+ALLT(STR(S,19))+"个。"SETTALKON17*.*本程序实现:对输入的正整数,判别其中包含指定数码的个数(如2312132中包含数码1的个数为2)。19*.输入三个正数,判定是否构成一个三角形,如果构成一个三角形,则返回.T.,否则返回.F.。另外通过参数的引用将三角形的面积传回。SETTALKOFFCLEARINPUT'X1='TOX1INPUT'X2='TOX2INPUT'X3='TOX3******1******?TARER(X1,X2,X3)?"三角形面积为:"+ALLTRIM(STR(X1,19,2))SETTALKON*自定义函数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="不及格及格中良优"******1******INPUT"输入学号="LOCATEFOR学号=XHIFFOUND()

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

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

.*本程序实现:从键盘输入学生的学号,计算该生的平均成绩,并说明成绩的档次(优、良、中、及格和不及格)。23**.\本程序实现指定表指定条件的任意查询功能。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"继续否?(Y/N)"TOYNIFUPPER(YN)="N"EXITENDIFENDDOSETTALKON24*

.*本程序用于输入一个表名,若表存在则打开表,并显示其各个字段名。25.本程序在屏幕上显示如图4-8所示的图形。SETTALKOFFCLEAK=1DOWHILK<=5C=1

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

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

******3******K=K-1ENDDOSETTALKON三、表单设计题:设计步骤:1、放入对象,注意:数据环境是否需要放入表;2、设置属性,注意:是否需要添加新属性;3、写事件代码,调试运行。1.设计一个标准化模拟考试表单。界面如图4-9至图4-12所示。要求:文字字体、字号任意,当选择答案时,根据对错用Messagebox()函数显示提示信息。(1)表单Form1的Init事件Thisform.Optiongroup1.Value=0(2)选项按钮组Optiongroup1的InterActiveChange事件IFThis.Value=2 MessageBox("答对了,真棒!",0+48,"评判结果")ELSE MessageBox("答错了,再试!",0+32,"评判结果")ENDIF2.编制一个表单完成表文件“学生.dbf”内容的只读浏览显示功能,界面如图4-13、4-14所示。要求如下:①表单初始显示内容为表文件'学生.dbf'的首记录;②当按“前翻”、“后翻”、“首记录”、“末记录”按钮时,表单将自动显示相应记录的内容;③当翻至表头或表底时,将自动设置相应按钮不可访问。注意:设计界面上的属性在属性窗口设置,不用写表单的Init事件代码!!(1)命令按钮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.*编制一个表单完成学生成绩查询显示功能,数据来源于表文件“学生.dbf”“成绩.dbf”。界面如图4-15、4-16所示。具体要求如下:①当用户在组合框输入或选择姓名后,按回车或“确定”按钮时,表单将自动显示对应学生的平均成绩,如果该学生不存在,则显示提示信息;②按“退出”按钮时,自动关闭表单。注意:(1)有2张表,放数据环境,查找和计算时要切换表。(2)设置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.√编一页面转换表单,界面如图4-17、4-18所示。要求表单上有一个包含三页的页框,每页依次放入一幅图画(FOX.BMP)、一张表格(显示'学生.DBF'的数据)、一个列表框(包含有'学生.DBF'的'姓名'字段),并能每隔2秒钟从左自右自动换页,当翻到第3页后,自动回到第1页,未被激活的页面自动设为不可访问。(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注意:可以不加新属性,代码应如何改??不加新属性只需写:计时器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.借助于文本框和微调框编制一个手工日历表单,界面如图4-19、4-20所示。要求日期以中文的方式居中显示,显示的字体为宋体、30号字。(1)表单Form1的Init事件Thisform.Text1.Value=DATE()Thisform.Text1.DateFormat=14&&增加!!Thisform.Spinner1.Setfocus(2)微调Spinner1的UpClick事件Thisform.Text1.Value=Thisform.Text1.Value+1Thisform.Refresh6.编制一个表单完成表文件“学生.dbf”内容的自动只读浏览显示功能,界面如图4-21、4-22所示。具体要求如下:①表单初始显示内容为表文件'学生.dbf'的首记录;②表单内容将以2秒为间隔自动刷新,即自动顺序向后翻记录,当翻至表底时,将自动回到首记录循环翻动。属性窗口设置计时器的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.*设计一个表单,使表单中的信息行显示系统当前时间,并使该信息行在表单内左右缓慢平移。界面如图4-23、4-24所示。要求,显示时间信息的字体大小为20。信息先向右移动,且每0.1秒钟移动一个像素点。注意:加新属性D!!(1)表单Form1的Init事件This.Caption="信息行动态平行移动"thisform.timer1.Interval=100Thisform.Label1.Caption=TIME()&&增加!!(2)计时器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.*利用计时器控件设计一个模拟拍球动作的表单。具体界面如图4-25、4-26所示。球的起始位置在表单的顶行中部,表单执行后,球自上而下落下并且球体逐渐变大,当球到达表单底部时自动弹回,并且球体又逐渐回缩变小,当球到达顶部时再次自动下落,如此往复弹跳,仿佛有人用手拍打球,直到关闭表单。(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.*设计一个三表关联查询表单(学生表、成绩表、课程表),成绩表与学生表建立临时关联,成绩表与课程表建立临时关联,查询相关的信息。要求表格是只读显示,不能删除、不能添加。运行界面如图4-29、4-30所示。注意:需要在数据环境建立关联!!表单Form1的Init事件Thisform.Setall("Readonly",.T.,"Grid")Thisform.Setall("Allowaddnew",.F.,"Grid")Thisform.Setall("Deletemark",.F.,"Grid")第10题:改为P258例6.10设计一个统计车票总金额的表单,要求是:在给出的各种车票中选择你需要的,按“计算总额”命令按钮,将所需要的车票总金额计算出来并显示在指定的文本框中。命令按钮Command1(计算总额)的Click事件代码。S=0IFThisform.Check1.Value=1S=S+580ENDIFIFThisform.Check2.Value=1S=S+50ENDIFIFThisform.Check3.Value=1S=S+280ENDIFThisform.Text1.Value=SThisform.Refresh11.编制一个表单完成计时器计数显示功能,界面如图4-33、4-34所示。具体要求如下:①表单初始显示状态为全零“00:00:00”;②按“计数”按钮,将自动以秒为单位从零开始计数并在表单上动态显示;③按“停止”按钮将显示最后一刻的计数时间。(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.用选项按钮组设计五色调色板表单,界面如图4-35、4-36所示。要求:文字为楷书、18号字,表单的标题为“调色板”,按钮组五个按钮,按下图排列,当单击对应的按钮时,按钮组的背景颜色相应改变,初始颜色为红色。(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.*设计一个表单,当用户在文本框中输入矩阵的维数N后,按“显示”按钮则会在编辑框中输出对角线为0的N维矩阵,输入数据不合要求时显示提示信息。

(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.*设计一个完成口令判定功能的表单,界面如图4-39~4-42所示。具体要求如下:①用户从键盘输入口令时,表单的显示控件以“*”代替具体内容;②系统的口令存放在表文件“学生.dbf的”姓名字段中,要求完全匹配;③输入口令后,按回车或按'确定'按钮,将自动显示信息框(Messagebox),提示“正确!”或“错误!”;④按'退出'按钮将自动关闭表单。(1)表单Form1的Init事件*USE学生&&放数据环境更好Thisform.Text1.Passwordchar="*"This.Caption="口令验证窗“(2)文本框Text1的Valid事件LOCATEFORALLTRIM(This.Value)==ALLTRIM(姓名)IFFOUND()MESSAGEBOX("正确!")RETURN.T.ELSEMESSAGEBOX("错误!")RETURN.F.ENDIFThisform.Refresh15.*设计一个圆球跳动表单。要求:球的宽和高为40,球的填充颜色为RGB(128,64,0),表单的标题为“圆球跳动”,球每隔0.5秒在表单的上下边之间跳动。按开始按钮球跳动,按停止按钮球停止。注意:形状的属性、计时器的Interval等在属性窗口设置!!(1)命令按钮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.运用文本框和计时器对象设计一个数字时钟表单,界面如图4-45、4-56所示。要求:文本框文字为隶书、30号字,表单的标题为“数字时钟”,每隔1秒钟刷新一次时间。(1)表单Form1的Init事件Thisform.Caption="数字时钟"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所示。命令按钮及文本框的字体、颜色和大小设置为自己喜欢的形式。(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.*建立一个表单,通过每次单击'开始'按钮,都能实现表单的标签信息从顶行向下平移,移到底边即停止。设计界面如图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”内容的学生奖学金查询显示功能,界面如图4-52、4-53所示。要求:①当用户在下拉列表中选择班级(学号的前三位)后,按回车或“确定”按钮时,表单将自动显示对应班级的奖学金总额;②按“退出”按钮时,自动关闭表单。(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所示的表单设计。具体要求如下:当在文本框中输入数字并按回车键,判断按钮会自动按下,判断该数是否为素数并显示在Text2中,同时焦点自动回到Text1并选中原文本框中数据,准备接收新的输入。设计界面上显示的属性请在属性窗口中设置并请写出命令按钮1、2的Click事件代码。(1)表单Form1的Init事件ThisForm.Text1.SelectonEntry=.T.ThisForm.Text2.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论