LOGO
表单练习题
题目1:
设计一表单如图所示,判断一个正数是不是素数。
要求:在文本框输入一个正数,单击“确定”按钮后显示结果,单击“退出”按钮释放表单。假定表单中各对象的属性值已经设置。为Command1的Click事件添加过程代码:
参考答案:
K=VAL(Thisform.Text1.Value)
FOR I=2 TO K-1
IF K % I = 0
https://www.doczj.com/doc/373345671.html,bel2.Caption="判断结果:不是
素数"
RETURN
ENDIF
ENDFOR
https://www.doczj.com/doc/373345671.html,bel2.Caption="判断结果:是素数" 注意:
FOR I=2 TO K-1可以替换为:FOR I=2 TO K/2
或FOR I=2 TO SQRT(K)
题目2:
设计一表单如图所示,求100-1000之间能被37整除的数。
要求在编辑框中输出结果,并通过命令按钮来控制输出。假定表单中各对象的属性值已经设置。为Command1的Click事件添加过程代码:
k=0
for x=100 to 1000
if x%37=0
thisform.edit1.value=thisform.edit1.value+str(x,5)
k=k+1
if k%5=0
thisform.edit1.value=thisform.edit1.value+chr(13)
endif
endif
endfor
题目3:
设计一表单如图所示,通过微调器控件改变曲率来控制图形。假定表单中各对象的属性值已经设置。
为Spinner1的InteractiveChange事件添加过程代码:
参考答案:
IF Thisform.Spinner1.Value<100 And Thisform.Spinner1.Value>-1
Thisform.Shape1.Curvature=Thisform.Spinner1.Value
ENDIF
题目4:
计算两实数X与Y的乘积,要求设计表单界面如图所示。功能为:在文本框中输入X和Y后,单击“计算”按钮即计算出XY的值。假定表单中各对象的属性值已经设置。请写出计算按钮的Click事件代码。
X=VAL(Thisform.Text1.Value)
Y=VAL(Thisform.Text2.Value)
Thisform.Text3.Value=STR(X*Y)
Thisform.Refresh
题目5:
一个表单如下图所示,要求实现如下功能:当在文本框Text1内输入一个正整数n时,单击“计算”命令按钮时,将在文本框中显示n以内的所有2的倍数的和(n为一正整数)的值,如n=11,则应计算s=2+4+6+8+10的值。单击“退出”命令按钮时则结束程序的运行。请写出实现上述功能的命令按钮的程序代码。
⑴“计算”命令按钮的程序代码如下:
n=thisform.text1.value
s=0
for i=2 to n step 2
s=s+i
endfor
thisform.text2.value=s
thisform.refresh
⑵“退出”命令按钮的程序代码如下:
thisform.release
题目6:
一个表单如下图所示,要求实现如下功能:当在文本框Text1内输入一个正整数n时,单击“计算”命令按钮将在文本框中显示n阶乘(1*2*3*……*n)的值。单击“退出”命令按钮时则结束程序的运行。请写出实现上述功能的命令按钮的程序代码。
⑴“计算”命令按钮的程序代码如下:
n=thisform.text1.value
s=1
for i=1 to n step 1
s=s*i
endfor
thisform.text2.value=s
thisform.refresh
⑵“退出”命令按钮的程序代码如下:
thisform.release
题目7:
如下图所示表单,要求任意输入两个数后,单击“确定”命令按钮能按由大到小输出,单击“退出”关闭表单。请写出“确定”和“退出”命令按钮的代码
参考答案
"确定"命令按钮的代码:
a=thisform.text1.value
b=thisform.text2.value
if a>b
thisform.text3.value=a
thisform.text4.value=b
else
thisform.text3.value=b
thisform.text4.value=a
endif
"退出"命令按钮的代码:
thisform.release
题目8:
现已设计职工工资浏览表单(如下图),请写出“第一个”、“上一个”、“下一个”、“最后一个”、“退出”按钮 Click 事件的代码。
工资浏览表单中各按钮 CLICK 事件代码如下:
“第一个” 按钮 CLICK 事件代码如下:
go Top
Thisform .Refresh
“上一个” 按钮 CLICK 事件代码如下:
if .not.Bof()
skip -1
endif
Thisform .Refresh
“下一个” 按钮 CLICK 事件代码如下:
if .not.Eof()
skip
endif
Thisform .Refresh
“最后一个” 按钮 CLICK 事件代码如下:
go Bottom
Thisform .Refresh
“退出” 按钮 CLICK 事件代码如下:
Thisform .ReLease
题目9:
若已设计好如下的表单界面,要求在该表单中输入正整N的值后单击“计算”命令按钮能计算出N!并输出至表单中,单击“退出” 命令按钮关闭表单。请完成“计算”和“退出”命令按钮的代码。
(1) “计算”命令按钮的Click事件代码:
N=THISFORM.TEXT1.VALUE
P=1
FOR I=1 TO N
P=P*I
ENDFOR
THISFORM.TEXT2.VALUE=P
(2) “退出”命令按钮的Click事件代码:
THISFORM.RELEASE
题目10
创建如图所示表单,并将表单保存为FORM10。
要求:通过复选框和选项按钮组(单选按钮)完成对编辑框中文本的字体和字形设置。
1、FORM1的Init事件(使编辑框得到焦点)的代码:
ThisForm.Edit1.SetFocus
ThisForm.Edit1.FontSize=16
2、OptionGroup1的Click事件(为编辑框的文本设置字体)的代码:
n=This.Value
Do Case
Case n=1
Thisform.Edit1.FontName='黑体'
Case n=2
Thisform.Edit1.FontName='楷体GB_2312'
EndCase
ThisForm.Edit1.Setfocus
3、Check1的Click事件(为编辑框内文本设置粗体)的代码:
If This.Value=1
ThisForm.Edit1.FontBold=.T.
Else
ThisForm.Edit1.FontBold=.F.
Endif
ThisForm.Edit1.Setfocus
4、Check2的Click事件(为编辑框内文本设置斜体)的代码:
If This.Value=1
ThisForm.Edit1.FontItalic=.T.
Else
ThisForm.Edit1.FontItalic=.F.
Endif
ThisForm.Edit1.Setfocus
题目11
创建如图所示表单,并将表单保存为FORM11。
要求:当输入两个加数时,单击“求和”按钮,得到结果;单击“清空”按钮,清空文本框所有值,等待再次输入;单击“取消”按钮后关闭表单。
1、刚执行表单时若想使文本框Text1获得焦点,即让光标处于第一个数据输入位置,表单的Activate事件的代码为:
thisform.text1.setfocus
2、“求和”按钮(Command1)的单击事件(Click Event)的代码为:
thisform.text3.value=val(thisform.text1.value)+val(thisform.text2.value)
3、“清空”按钮(Command2)的单击事件(Click Event)的代码为:
thisform.text1.value=""
thisform.text2.value=""
thisform.text3.value=""
4、“退出”按钮(Command3)的单击事件(Click Event)的代码为:
thisform.release
题目12
创建如图所示表单,并将表单保存为FORM12。
要求:用户单击“登录”按钮时,执行表单mainform;选择“取消”按钮后弹出消息框,用户可选择释放或重新执行该表单。
注意:Text2的PasswordChar属性设为*
假设只能输入用户名“user1”和密码“123456”登录。
1、“登录”按钮(Command1)的单击事件(Click Event)的代码为:
if thisform.text1.value="user1" .and. thisform.text2.value="123456"
do form mainform
form02.release
else
messagebox("密码或用户名错误",0,"提示")
endif
2、“退出”按钮(Command2)的单击事件(Click Event)的代码为:
nAnswer=messagebox("你决定退出系统吗?", 4, "提示")
do case
case nAnswer=6
thisform.release
case nAnswer=7
messagebox("请重新输入用户名和", 0, "提示")
endcase
题目13
创建如图所示表单,并将表单保存为FORM13。
要求:用户单击“确定”按钮时,在编辑框中显示对选项组和复选框的选择。
1、命令按钮组(Commandgroup1)的单击事件(Click Event)的代码为:
if https://www.doczj.com/doc/373345671.html,mandgroup1.value=2
thisform.release
else
cstr="你所在城市"+chr(13);
+thisform.optiongroup1.buttons[thisform.optiongroup1.value].caption+chr(13) cstr=cstr+"你的爱好"+chr(13)
if thisform.check1.value=1
cstr=cstr+thisform.check1.caption
endif
if thisform.check2.value=1
cstr=cstr+thisform.check2.caption
endif
if thisform.check3.value=1
cstr=cstr+thisform.check3.caption
endif
thisform.edit1.value=cstr
endif
题目14
创建如图所示表单,并将表单保存为FORM14。
要求:表单运行时,LIST1中显示STUD表中的所有字段,用户单击左箭头按钮时,LIST1中选择的字段移入到LIST2。
1、表单的init事件的代码:
thisform.list1.value=0
thisform.list2.value=0
use stud
for i=1 to fcount()
thisform.list1.additem(fields(i))
next
use
2、左箭头按钮(Command1)的单击事件(Click Event)的代码为:
thisform.list2.addlistitem(thisform.list1.list[thisform.list1.value])
thisform.list1.removeitem[thisform.list1.value]
题目15
创建如图所示表单,并将表单保存为FORM15。
要求:计算两数的最小公倍数
Command1.Click事件代码:
a=val(THISform.text1.value)
b=val(thisform.text2.value)
m=a*b
d=a % b
DO while d<>0
a=b
b=d
d=a % b
ENDDO
ThisForm.text3.Value=str(m/b)
题目16
创建如图所示表单,并将表单保存为FORM16。要求:实现英制和公制的相互转换
提示:1英寸=2.54厘米
Command1.Click事件代码:
x=val(THISform.text1.value)
ThisForm.text2.Value=x*2.54
Command2.Click事件代码:
x=val(THISform.text1.value)
ThisForm.text2.Value=x/2.54