实验题整理.docx

上传人:b****7 文档编号:10313799 上传时间:2023-02-10 格式:DOCX 页数:23 大小:22.71KB
下载 相关 举报
实验题整理.docx_第1页
第1页 / 共23页
实验题整理.docx_第2页
第2页 / 共23页
实验题整理.docx_第3页
第3页 / 共23页
实验题整理.docx_第4页
第4页 / 共23页
实验题整理.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

实验题整理.docx

《实验题整理.docx》由会员分享,可在线阅读,更多相关《实验题整理.docx(23页珍藏版)》请在冰豆网上搜索。

实验题整理.docx

实验题整理

VisualFoxPro实验题汇总

★顺序结构程序设计

1.用过程化编成方式编写本题。

求解一元二次方程(JFC.PRG)

a=1

b=4

c=4

x1=(-b+SQRT(b^2-4*a*c))/(2*a)

x2=(-b-SQRT(b^2-4*a*c))/(2*a)

?

"方程的一个根是:

",x1,space(10),"另一个根是:

",x2

2.理解大小写转换函数。

在文本框中输入文本串,按“转大写”按钮,文本中的英文字母变为大写,按“转小写”按钮,文本中的英文字母变为小写(如图所示)。

:

Publica

:

Thisform.text1.value=a

<大写>:

Thisform.text1.value=upper(a)

<小写>:

Thisform.text1.value=lower(a)

<复原>:

Thisform.text1.value=a

3.班上集体购买课外读物,在文本框中输入3种书的单价、购买数量,计算并输出所用的总金额。

<总计>:

a=val(thisform.text1.value)

b=val(thisform.text2.value)

c=val(thisform.text3.value)

d=val(thisform.text4.value)

e=val(thisform.text5.value)

f=val(thisform.text6.value)

thisform.text7.value=a*b+c*d+e*f

4.在文本框中输入小时、分、秒,化成共有多少秒,然后输出之。

a=val(thisform.text1.value)

b=val(thisform.text2.value)

c=val(thisform.text3.value)

thisform.text4.value=a*3600+b*60+c

5.编程序输出在指定范围内的3个随机数,范围在文本框中输入。

<三个随机数>:

Thisform.label3.caption=str(int((b-a+1)*rand()+a))

Thisform.label4.caption=str(int((b-a+1)*rand()+a))

Thisform.label5.caption=str(int((b-a+1)*rand()+a))

6.编写例题4-8求圆面积,用对话框输出结果

<计算>:

r=val(thisform.text1.value)

a=”圆的面积为:

”+alltrim(str(3.14*r^2))

messagebox(a,0,”计算圆的面积”)

thisform.text1.selstart=0

thisform.text1.sellength=len(thisform.text1.text)

thisform.text1.setfocus

★顺序结构程序

1.输入3个不同的数,将它们从大到小排序。

<排序>:

a=val(thisform.text1.value)

b=val(thisform.text2.value)

c=val(thisform.text3.value)

docase

casea=max(a,b,c)

thisform.text4.value=alltrim(str(a))

casea=min(a,b,c)

thisform.text6.value=alltrim(str(a))

otherwise

thisform.text5.value=alltrim(str(a))

endcase

docase

caseb=max(a,b,c)

thisform.text4.value=alltrim(str(b))

caseb=min(a,b,c)

thisform.text6.value=alltrim(str(b))

otherwise

thisform.text5.value=alltrim(str(b))

endcase

dosase

casec=max(a,b,c)

thisform.text4.value=alltrim(str(c))

casec=min(a,b,c)

thisform.text4.value=alltrim(str(c))

otherwise

thisform.text5.value=alltrim(str(c))

endcase

2.创建一个检查输入口令的表单,口令设定为“SOFTWARE”,允许用户输入三次口令。

如果三次输入错误,则显示相关信息,并禁止再次输入口令:

如果正确,则显示“欢迎使用本系统!

”字样,请编写该程序。

<确认>:

a=ALLTRIM(thisform.container1.text1.value)

ifa=="SOFTWARE"

thisform.label1.caption="欢迎使用本系统!

"

thisform.container1.visible=.F.

thisform.label1.visible=.T.

mand1.visible=.t.

else

b=b+1

ifb>=3

messagebox("你已第"+str(b,3)+"次输入错误,"+chr(13);

+"不能使用该系统",48,"错误提示")

thisform.release

ELSE

messagebox("你已第"+str(b,3)+"次输入错误!

",48,"错误提示")

thisform.container1.text1.selstart=0

thisform.container1.text1.sellength=len(ltrim(thisform.container1.text1.value))

RETURN0

endif

endif

<关闭>:

Thisform.release

3.输入一个数字(0~6),用中英文显示星期几。

<星期转换>:

a=thisform.text1.value

docase

casea=”0”&&注意带””,字符型

thisform.text2.value=”星期日”

thisform.text3.value=”Sunday”

casea=”1”

thisform.text2.value=”星期一”

thisform.text3.value=”Monday”

casea=”2”

thisform.text2.value=”星期二”

thisform.text3.value=”Tuesday”

casea=”3”

thisform.text2.value=”星期三”

thisform.text3.value=”Wednesday”

casea=”4”

thisform.text2.value=”星期四”

thisform.text3.value=”Thursday”

casea=”5”

thisform.text2.value=”星期五”

thisform.text3.value=”Friday”

casea=”6”

thisform.text2.value=”星期六”

thisform.text3.value=”Saturday”

otherwise

messagebox(“对不起,只能输入0-6的整数”,48,”提示”)

endcase

thisform.text1.selstart=0&&以下可不写

thisform.text1.sellength=len(thisform.text1.text)

thisform.text1.setfocus

4.若基本工资大于等于600元,增加工资20%;若小于600元大于等于400元,则增加工资15%;若小于400元则增加工资10%。

请根据用户输入的基本工资,计算出增加后的工资。

<新工资>:

x=val(thisform.text1.value)

docase

casex>=600

y=x*1.2

casex<600andx>=400

y=x*1.15

casex<400

y=x*1.1

endcase

thisform.text2.value=y

5.输入圆的半径r,利用选项按钮,选择运算:

计算面积、计算周长等。

r=val(thisform.text1.value)

n=This.value

Docase

Casen=1

Y=alltrim(str(2*3.14*r))

A="圆的周长为:

"+y

Casen=2

Y=alltrim(str(3.14*r^2))

A="圆的面积为:

"+y

Endcase

Thisform.label2.caption=a

6.设计一个电子游动标题板,标题“使用VFP设计动画”在表单的黄色区域(容器中)自左至右地反复移动。

单击“暂停”按钮,标题停止移动,按钮变成“继续”。

单击“继续”按钮,标题继续移动,按钮又变回“暂停”

<属性>:

10&&动画移动的快慢,数字越大移动越慢

:

Ifthisform.container1.label1.left+thisform.container1.width<670&&”670”大于container的宽度和label的宽度加和数.即动画要完全过去才能再开始.

thisform.container1.label1.left=thisform.container1.label1.left+1

else

thisform.container1.label1.left=-360&&”-360”绝对值要大于container的宽度

endif

:

Ifmand1.caption=”暂停”

Tmand1.caption=”继续”

Thisform.container1.timer1.enabled=.f.

Else

Tmand1.caption=”暂停”

Thisform.container1.timer1.enabled=.t.

Endif

7.设计一个计算一元二次方程根的程序:

从文本框输入一元二次方程的三个系数:

A,B,C,计算并输出方程的两个根X1、X2。

当A<>0时,有两个根。

当B*B-4*A*C>0时,有两个不等的实根。

当B*B-4*A*C=0时,有两个相等的实根。

当B*B-4*A*C<0时,有两个不等的虚根。

<求解X>:

a=val(thisform.text1.value)

b=val(thisform.text2.value)

c=val(thisform.text3.value)

m=b^2-4*a*c

docase

casea=0

x=-c/b

thisform.label4.caption=”该方程不是二次方程,只有一个根,X=”+alltrim(str(x))

otherwise

docase

casem>0

x1=(-b+sqrt(m))/(2*a)

x2=(-b-sqrt(m))/(2*a)

thisform.label4.caption=”该方程有两个不相等的实根,X1=”+alltrim(str())+space(5);

+”X2=”+alltrim(str(x2))

Casem=0

X=-b/(2*a)

Thisform.label4.caption=”该方程有两个相等的实根,X1=X2=”+alltrim(str(x))

Casem<0

Thisform.label4.caption=”该方程有两个不相等的虚根.”

Endcase

Endcase

4★循环结构程序设计

1.在列表框中输出100~1000之间能被37整除的数。

<输出>:

Forn=100to1000

Ifn%37=0

Thisform.list1.additem(alltrim(str(n)))

Endif

Endfor

<关闭>:

Thisform.release

2.设计程序,求s=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)的值。

<=><click>:

n=val(thisform.text1.value)

m=0

s=0

fori=1ton

ifi<=n

m=m+i

s=s+m

endif

endfor

thisform.label3.caption=alltrim(str(s))

thisform.text1.selstart=0

thisform.text1.sellength=len(thisform.text1.text)

thisform.text1.setfocus

<关闭>:

Thisform.release

3.输出“九九”乘法表,格式如图所示。

<属性>columncount:

10

Columnwidth:

30,30,30,30,30,30,30,30,30,30(10个)

<计算>:

Thisform.list1.additem(“*”)

Fori=1to9

Thisform.list1.addlistitem(alltrim(str(i,3)),1,i+1)

Thisform.list1.addlistitem(alltrim(str(i,3)),i+1,1)

Forn=1toi

Thisform.list1.addlistitem(alltrim(str(n,3)),i+1,n+1)

Endfor

Endfor

<清空>:

Thisform.list1.clear

4.组合框中显示2000-2400年间所有闰年。

<显示>

Forn=2000to2400

Ifn%4=0andn%100<>0orn%400=0

Tbo1.additem(alltrim(str(n)))

Tbo1.displayvalue=1&&使第一行总是显示

Endif

Endfor

<关闭>:

thisform.release

5.页框:

素数页:

在列表框中显示2到1000的所有素数。

含7页:

列表框中显示1-200之间所有含7的数据。

素数页:

<显示>:

Forn=2to1000

S=0

Fori=2ton-1&&除本身以外

ifn%i=0

s=1

exit

endif

endfor

ifs=0

this.parent.list1.additem(alltrim(str(n)))

endif

endfor

含7页:

<显示>:

FORn=1to200

If“7”$str(n)

This.parent.list1.additem(alltrim(str(n)))

Endif

Endfor

5★索引,表单中使用数据表

4.设计一个操作数据表的表单,使之具有按记录浏览数据表的功能(首记录、上一个、下一个、尾记录)

<首记录>:

Gotop

Tmand1.enabled=.f.

Tmand2.enabled=.f.

Tmand3.enabled=.t.

Tmand4.enabled=.t.

Thisform.refresh

<上一个>:

Skip-1

Ifrecno=1

Tmand1.enabled=.f.

Tmand2.enabled=.f.

Endif

Tmand3.enabled=.t.

Tmand4.enabled=.t.

Thisform.refresh

<下一个>:

Skip1

Ifeof()=0

Gobottom

Tmand3.enabled=.f.

Tmand4.enabled=.f.

Endif

Tmand1.enabled=.t.

Tmand2.enabled=.t.

Thisform.refresh

<尾记录>:

Gobottom

Tmand1.enabled=.t.

Tmand2.enabled=.t.

Tmand3.enabled=.f.

Tmand4.enabled=.f.

Thisform.refresh

<关闭>:

Thisform.release

6★多表操作

7★数组

1.有一个8×6的矩阵,各元素的值由由计算机随机产生,求全部元素的平均值,并输出高于平均值的元素以及它们的行、列号。

<属性>:

columncount6

Columnwidths:

30,30,30,30,30,30

Rowsource:

a

Rowsourcetype:

5-数组

:

Publica(8,6)

Fori=1to48

a(i)=alltrim(str(rand()*100))

Thisform.list1.numberofelements=48      &&在list中设随机数矩阵

Endfor

:

P=””

K=this.value

Docase

Casek=1

S=0

Fori=1to48

S=s+val(a(i))

Endfor

Av=s/48

Thisform.label2.caption=”平均值为:

”+alltrim(str(av))

Form=1to8

Forn=1to6

Ifa(i)>av

P=p+”a(“+str(a(m,1))+”,”+str(a(1,n))+”)=”+alltrim(a(m,n))+”,”&&a(m,n)=x中m和n必须加上str

endif

endfor

endfor

messagebox(p,0,”大于平均值的元素为:

”)

Casek=2

Thisform.activate

Thisform.refresh

Thisform.label2.caption=”平均值为:

”&&<重置>

Endcase

2.求方阵(6×6)的两个对角线元素和。

属性:

columncount:

6

Columnwidths:

30,30,30,30,30,30

Rowsource:

a

RowsourceType:

5-数组

:

Publica(6,6)

Fori=1to36

a(i)=alltrim(str(rand()*100))

thisform.list1.numberofelements=36

endfor

<计算>:

S=0

Z=0

Fori=1to6

S=s+val(a(i,i))

Z=z+val(a(I,7-i))

Thisform.text1.value=alltrim(str(s))

Thisform.text2.value=allrtrim(str(z))

Endfor

<重置>:

Thisform.activate

Thisform.text1.value=””

Thisform.text2.value=””&&value””默认值

Thisform.refresh

3.任意10个数由大到小排列

:

Publica(10)

Fori=1to10

Yes=1

Dowhileyes=1

X=int(rand()*100)

Yes=0

Forj=1toi-1

Ifx=val(a(j))

Yes=1

Exit&&exit直接跳到endfor

Endif

Endfor

Enddo&&避免随机数重复的do循环

a(i)=str(x,2)&&任何数字预留两位字符,避免alltrim

p=p+a(i)+”,”&&不能写a(i)=allt(str(x,2))这样如果随机产生了个位数,那么用asort排序(字符排序)时“7”会比“66”大

thisform.text1.value=left(p,len(p)-1)&&把最后一个逗号去掉

<排序>:

Assort(a)

P=””

Fori=10to1step-1&&默认从小到大排

P=p+a(i)+”,”

Thisform.text2.value=left(p,len(p)-1)

<重置>:

Thisform.activate

Thisform.text2.value=””

Thisform.refresh

★自定义属性和方法

1.求两个数n,m的最大公约数和最小公倍数。

添加自定义方法:

<表单><新建属性>

Gys:

Parametersmnz

Ifm

T=m

m=n

N=t&&对调mn

Endif

R=m%n

Dowhiler<>0

N=r

M=n

R=m%n

Enddo

Z=n&&z为公约数,公倍数=m*n/z

:

thisform.text1.setfocus

<计算>:

X=val(thisform.text1.value)

Y=val(thisform.text2.value)

A=0

B=0

Ifx*y<>0

Thisform.gys(x,y,@a)

B=x*y/a

Thisform.label3.caption=alltrim(str(a))

Thisform.label5.caption=alltrim(s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1