VB程序设计阶段性作业31.docx
- 文档编号:7665185
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:12
- 大小:93.29KB
VB程序设计阶段性作业31.docx
《VB程序设计阶段性作业31.docx》由会员分享,可在线阅读,更多相关《VB程序设计阶段性作业31.docx(12页珍藏版)》请在冰豆网上搜索。
VB程序设计阶段性作业31
中国地质大学(武汉)远程与继续教育学院
VB程序设计课程作业3(共4次作业)
学习层次:
专升本涉及章节:
第8章——第9章
一、判断题
1.声明形参处缺省传递方式声明,则为按值传递(Byval)。
2.过程中的静态变量是局部变量,当过程再次被执行时,它的值是上一次过程调用后的值。
3.虽然标签控件显示的文本在运行时不能编辑,但是可以通过程序代码进行改变。
标拖动控件来定位。
4.要在文本框中输入6位密码,并按回车键确认,则文本框的MaxLength属性可设置为6。
5.单选钮能响应Click事件,但不能响应KeyPress事件。
6.移动框架时框架内控件也跟随移动,因此框架内控件的Left和Top属性值也随之改变。
7.从几十个项目中任选其中一项或多项时可选用列表框或组合框控件来实现。
8.用户可拖动滚动条的滚动滑块来改变滚动条的Value值,在移动滚动滑块时,发生Change事件。
9.由于定时器控件在运行时是不可见的,因此在设置时可将其放在窗体的任何位置。
二、选择题
1.将焦点主动设置到指定的控件或窗体上,应采用方法。
A、SetDateB、SetFocusC、SetTextD、GetGata
2.要使文本框显示滚动条,除了设置ScrollBars属性外还必须设置属性。
A、AutoSizeB、MultiLineC、AlignmentD、Visible
3.要使复选框控件不响应Click事件,可设置复选框的属性。
A、AppearanceB、StyleC、EnabledD、TabIndex
4.以下语句将删除列表框List1中的最后一项。
A、List1.RemoveItemList1.ListCount
B、List1.Clear
C、List1.List(List1.ListCount-1)=""
D、List1.RemoveItemList1.ListCount-1
5.设计动画时通常用定时器控件属性来控制动画速度。
A、IntervalB、TimerC、MoveD、Enabled
三、填空题
1.调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用(按值传递/按地址传递)方式。
2.在窗体Form1的过程中引用窗体Form2中的全局变量y,写作。
3.运行时,若需要命令按钮为灰色,即不被击活,在设计时可以通过属性来实现。
4.要让控件隐藏起来,处于不可见状态,可修改其属性。
5.运行时单击复选框,将使复选框的Value值取。
6.当列表框的MultiSelect属性值为时,单击列表项或按空格键可以实现复选。
7.拖动滚动条的滚动滑块时仅发生事件。
8.定时器控件只能接收事件。
9.定时器的Interval属性值不得大于。
四、程序阅读题(写出下列程序的运行结果)
程序1.请写出在Text1、Text2、Text3中依次输入3、4、5后,单击窗体时Label1的显示结果。
PrivateSubForm_Click()
DimaAsSingle,bAsSingle,cAsSingle
a=Text1.Text:
b=Text2.Text:
c=Text3.Text
Label1.Caption=Str(a*a+2*b*b+3*c*c)
EndSub
程序2.写出程序运行时,单击Option1
(2)后,窗体上的显示结果。
PrivateSubForm_Load()
Option1(0).Value=False:
Option1
(1).Value=False:
Option1
(2).Value=False
EndSub
PrivateSubOption1_Click(IndexAsInteger)
SelectCaseIndex
Case0
Check1(0).Value=1:
Check1
(1).Value=0
Case1
Check1(0).Value=0:
Check1
(1).Value=1
Case2
Check1(0).Value=1:
Check1
(1).Value=1
EndSelect
IfCheck1(0).Value=1ThenPrint"您好"
IfCheck1
(1).Value=1ThenPrint"欢迎使用VisualBasic!
"
EndSub
程序3.写出程序运行时,在组合框中输入“香蕉”并按回车键后,列表框中的所有表项。
PrivateSubForm_Load()
Combo1.AddItem"西瓜":
Combo1.AddItem"苹果":
Combo1.AddItem"橘子"
Combo1.AddItem"葡萄":
Combo1.AddItem"哈密瓜"
Combo1.AddItem"火龙果":
Combo1.AddItem"柚子"
Combo1.List(0)="李子":
Combo1.List(7)="猕猴桃"
EndSub
PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)
DimiAsInteger
IfKeyAscii=13ThenCombo1.List(Combo1.ListCount)=Combo1.Text
List1.Clear
Fori=0ToCombo1.ListCount-1
IfLen(Trim(Combo1.List(i)))<3ThenList1.AddItemCombo1.List(i)
Nexti
EndSub
程序4.已知水平滚动条HScroll1的有关属性已经在属性窗口进行了如下的设置:
HScroll1.Min:
1HScroll1.Max:
10HScroll1.SmallChange:
1
HScroll1.LargeChange:
2HScroll1.Value:
5
写出连续3次单击水平滚动条HScroll1右端箭头后,窗体上显示的结果。
PrivateSubHScroll1_Change()
StaticyAsInteger
IfHScroll1.ValueMod2=0Then
y=y+HScroll1.Value
Print"y=";y
EndIf
EndSub
程序5.写出程序运行后窗体上显示的结果。
DimxAsInteger
PrivateSubForm_Load()
Timer1.Interval=1000:
Timer1.Enabled=True
EndSub
PrivateSubTimer1_Timer()
Callsub1(x)
x=x+1
Ifx>=5ThenTimer1.Enabled=False
EndSub
PublicSubsub1(nAsInteger)
n=n+1
Print"n=";n
EndSub
五、程序填空题
1.【程序说明】窗体上已建立命令按钮Command1(开始)、Command2(结束)和文本框Text1,Text1中输入字符个数不得超过100个。
开始运行时,“结束”命令按钮不能响应;按“开始”命令按钮后,将文本框中的字符按其ASCII码值由小到大顺序从左到右重新排列,并在窗体上输出重新排列后的字符串,同时“结束”命令按钮能响应,“开始”按钮不能响应。
PrivateSubCommand1_Click()
DimnAsByte,iAsByte,jAsByte,pAsByte
Dima(100)AsString*1,str1AsString,tAsString
str1=Text1.Text:
n=Len(str1)
Fori=1Ton:
(1):
Nexti
Fori=1Ton-1
p=i
Forj=i+1Ton
Ifa(p)>a(j)Then
(2)
Nextj
Ifp<>iThent=a(i):
(3):
a(p)=t
Nexti
Fori=1Ton:
Printa(i);:
Nexti
(4)
Command1.Enabled=False
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Command2.Enabled=False
EndSub
2.【程序说明】利用1个定时器、1个标签和2个命令按钮制作一个动态秒表。
各控件名称取缺省值,控件Command1、Command2标题分别为“开始”、“结束”。
运行时,单击“开始”按钮后秒表开始计时,并在标签上显示总秒数;单击“结束”按钮后,计时结束,在窗体上显示出运行的时间(折算成小时、分钟和秒数)。
DimxAsLong
PrivateSubForm_Load()
Timer1.Interval=1000:
Timer1.Enabled=False
EndSub
PrivateSubCommand1_Click()
Cls
x=0
(1)
EndSub
PrivateSubCommand2_Click()
DimhAsInteger,mAsInteger,sAsInteger
Timer1.Enabled=False
h=
(2)
m=(3)
s=xMod3600Mod60
Print"运行了"+Str(h)+"小时"+Str(m)+"分"+Str(s)+"秒"
EndSub
PrivateSubTimer1_Timer()
(4)
Label1.Caption=x
EndSub
3.【程序说明】本题是利用计时器控件来实现文字的水平移动,要求:
(1)运行时标签框内的文字从窗体左边向右边移动,当标签框的左边界超出窗体的右边界时,从窗体的左边进入窗体(尾部先进入)。
(2)文字移动时颜色不断产生随机变化。
PrivateSubForm_Load()
Form1.WindowState=2
Timer1.Interval=100
EndSub
PrivateSubTimer1_Timer()
Label1.ForeColor=RGB(255*Rnd,255*Rnd,255*Rnd)
(1)=Label1.Left+150
IfLabel1.Left>=Form1.WidthThen
(2)
EndSub
六、程序设计题
1.在窗体上建立命令按钮“Command1”(显示)和“Command2”(退出)。
运行时,“Command2”按钮始终显示“退出”;单击“显示”按钮后窗体上显示“欢迎使用VisualBasic!
”,同时标题改为“清除”,再单击“清除”按钮后,界面恢复窗体装入时的初始状态。
2.编制一个演示文本操作的程序,界面如图10-3所示,要求各命令按钮为一个控件数组。
(1)程序刚运行时3个命令按钮均不能响应。
(2)当选择文本之后Label1显示响应的提示,“剪切”和“复制”按钮能够响应。
(3)单击“剪切”或“复制”按钮后,所有按钮中只有“粘贴”按钮能响应。
(4)单击“粘贴”按钮后,3个命令按钮都不能响应。
图10-3程序设计题5的窗体界面
3.编制1个用于进制转换的应用程序,运行时的界面如图10-6所示。
图10-5程序设计题8的界面设计图10-6程序设计题9的界面设计
4.设计一个字幕推出程序。
程序界面如图10-7所示,标签的字号在定时器的控制下每个时间间隔放大2磅并且保持标签在窗体中水平居中,当标签的字号超过72时,定时器停止响应Timer事件。
字号放大的速度由水平滚动条控制,部分程序已经设计如下:
PrivateSubForm_Load()
Label1.Left=Width/2-Label1.Width/2
Label1.AutoSize=True
HScroll1.Min=1:
HScroll1.Max=1000
HScroll1.SmallChange=10:
HScroll1.LargeChange=100
HScroll1.Value=500:
Timer1.Interval=500
EndSub
请设计其他事件过程。
图10-7程序设计题10的界面设计
参考答案
一、判断题
1.×2.√3.√4.√5.×6.×7.×8.×9.√
二、选择题
1.B2.B3.C4.D5.A
三、填空题
1.按值传递
2.Form2.y
3.Enabled
4.Visible
5.0或1
6.1
7.Scroll
8.Timer
9.65535
四、程序阅读题(写出下列程序的运行结果)
程序1116
程序2.您好
欢迎使用VisualBasic!
程序3.李子
苹果
橘子
葡萄
柚子
香蕉
程序4.y=6
y=14
程序5.n=1
n=3
n=5
五、程序填空题
1.
(1)a(i)=Mid(str1,i,1)或a(i)=Mid(Text1.Text,i,1)
(2)p=j(3)a(i)=a(p)(4)Command2.Enabled=True
2.
(1)Timer1.Enabled=True
(2)x\3600
(3)(xMod3600)\60或(x-3600*h)\60(4)x=x+1
3.
(1)Label1.Left
(2)Label1.Left=-Label1.Width
六、程序设计题
程序1.界面设计略,过程设计如下:
PrivateSubCommand1_Click()
IfCommand1.Caption="显示"Then
Print"欢迎使用VisualBasic!
":
Command1.Caption="清除"
Else
Form1.Cls:
Command1.Caption="显示"
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubForm_Load()
Form1.Cls:
Command1.Caption="显示":
Command2.Caption="退出"
EndSub
程序2.界面设计如图10-3所示,过程设计如下:
PrivateSubForm_Load()
Command1(0).Enabled=False:
Command1
(1).Enabled=False
Command1
(2).Enabled=False:
Label1.Caption=""
EndSub
PrivateSubCommand1_Click(IndexAsInteger)
SelectCaseIndex
Case0
Clipboard.Clear:
Clipboard.SetTextText1.SelText
Text1.SelText="":
Label1.Caption="请选择要粘贴的位置!
"
Command1(0).Enabled=False:
Command1
(1).Enabled=False
Command1
(2).Enabled=True
Case1
Clipboard.Clear:
Clipboard.SetTextText1.SelText
Label1.Caption="请选择要粘贴的位置!
":
Command1(0).Enabled=False
Command1
(1).Enabled=False:
Command1
(2).Enabled=True
CaseElse
Text1.SelText=Clipboard.GetText():
Form_Load
Label1.Caption="粘贴完成!
"
EndSelect
EndSub
PrivateSubText1_MouseUp(ButtonAsInteger,ShiftAsInteger,_
XAsSingle,YAsSingle)
DimnAsInteger
n=Text1.SelLength
Ifn>0Then
Label1.Caption="选择了"&n&"个字,请选择下一步操作!
"
Command1(0).Enabled=True:
Command1
(1).Enabled=True
Else
Label1.Caption=""
EndIf
EndSub
程序3.界面设计如图10-6所示,过程设计如下:
PrivateSubForm_Load()
Option1(0).Caption="八进制":
Option1
(1).Caption="十六进制"
Option1
(2).Caption="二进制"
EndSub
PrivateFunctiontran(kAsLong,nAsInteger)AsString
DimxAsInteger,yAsString*1,k1AsLong
tran="":
k1=Abs(k)
DoWhilek1>0
x=k1Modn
Ifx>=10Theny=Chr(Asc("A")+x-10)Elsey=CStr(x)
tran=y+tran
k1=k1\n
Loop
Ifk<0Thentran="-"+tran
EndFunction
PrivateSubOption1_Click(IndexAsInteger)
DimkAsLong,nAsInteger
k=Val(Text1.Text)
SelectCaseIndex
Case0
Label2.Caption="八进制":
n=8
Case1
Label2.Caption="十六进制":
n=16
Case2
Label2.Caption="二进制":
n=2
EndSelect
Text2.Text=tran(k,n)
EndSub
程序4.界面设计如图10-7所示,过程设计如下:
PrivateSubForm_Load()
Label1.Left=Width/2-Label1.Width/2
Label1.AutoSize=True
HScroll1.Min=1:
HScroll1.Max=1000
HScroll1.SmallChange=10:
HScroll1.LargeChange=100
HScroll1.Value=500:
Timer1.Interval=500
EndSub
PrivateSubHScroll1_Change()
Timer1.Interval=HScroll1.Value
EndSub
PrivateSubHScroll1_Scroll()
CallHScroll1_Change
EndSub
PrivateSubTimer1_Timer()
Label1.FontSize=Label1.FontSize+2
Label1.Left=Width/2-Label1.Width/2
IfLabel1.FontSize>=72ThenTimer1.Enabled=False
EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计 阶段性 作业 31