东北林业大学VB期末复习资料.docx
《东北林业大学VB期末复习资料.docx》由会员分享,可在线阅读,更多相关《东北林业大学VB期末复习资料.docx(35页珍藏版)》请在冰豆网上搜索。
![东北林业大学VB期末复习资料.docx](https://file1.bdocx.com/fileroot1/2022-11/29/39414f50-f8a7-47b1-94ed-57b36a75ce73/39414f50-f8a7-47b1-94ed-57b36a75ce731.gif)
东北林业大学VB期末复习资料
期末成绩:
笔试50分、上机40分、平时10分、。
笔试时间为1小时。
四道大题为:
程序运行结果(10分)、叙述程序段功能(10分)、程序填空(10分)、编程题(20分)
上机考试时间40分钟。
两道大题,每题20分。
笔试复习提纲
1、常用函数使用:
String(N,C)、随机函数Rnd、chr(N)、Round(N)、Str(N)、val(C)、mid(C,N1,N2)、Left(C,N)Trim(C)、Time()、Now()等。
参考例题:
P263实验第4、5、6题
2、顺序结构:
理解赋值语句、会使用Inputbox()函数和Msgbox子过程、print语句进行输入和输出。
参考例题:
P67例4.3,P263第8题
3、选择结构:
参考例题:
P265第1、3题
4、循环结构:
利用循环结构输出图形;判断素数、水仙花数、回文数算法;计算最大公约数和最小公倍数;计算级数部分和;参考例题:
P268第1、2题,P83例4.15,P269第6题,P278第4题,P87例4.17
5、数组:
掌握静态数组、动态数组的使用以及利用数组的常用算法。
计算一组数中的最大值、最小值、平均值;数组排序(选择排序法);显示杨辉三角形;参考例题:
P105例5.4、5.5,P271第1、4、6题
6、过程:
掌握函数过程、子过程的定义及调用方法、参数的传递方式。
参考例题:
P133例6.6,P277第1、2、4题以及如下例题:
使用函数过程计算:
s=4!
+5!
+6!
主程序
PrivateSubForm_Click()
Printfax(4)+fax(5)+fax(6)
EndSub
函数定义
PrivateFunctionfax(kAsInteger)AsSingle
t=1
Fori=2Tok
t=t*i
Nexti
fax=t
EndFunction
7、文件
要求对随机文件进行操作,实现以下功能:
(1)输入:
由键盘输入5个学生信息保存到随机文件D:
\TT\T.DAT中
(2)每个学生包括学号、姓名、总分
(3)显示:
显示不及格的学生信息
(4)修改:
将不及格的学生成绩增加5分
机试复习提纲
1.单选按钮和复选框。
参考例题:
P154例7.1;P280第2题
2.组合框、列表框。
参考例题:
P111例5.9;P273第7题及以下例题:
(1)文本框的内容添加到列表框:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
List1.AddItemText1.Text
Text1.Text=""
EndIf
EndSub
(2)在窗体上显示列表框中的所有内容:
PrivateSubForm_Click()
Fori=0ToList1.ListCount-1
PrintList1.List(i)
Nexti
EndSub
(3)组合框中的文本框中的内容添加到组合框:
style=1
PrivateSubCombo1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
Combo1.AddItemCombo1.Text
Combo1.Text=""
EndIf
3.滚动条调色板程序P157例7.4
4.时钟参考例题:
P4例1.1及以下例题:
建立对象时钟、两个命令按钮、一个标签,随机产生六位数中奖号码。
(时钟Interval=100)
PrivateSubCommand1_Click()PrivateSubForm_Load()
Timer1.Enabled=TrueTimer1.Enabled=False
EndSubEndSub
PrivateSubCommand2_Click()PrivateSubTimer1_Timer()
Timer1.Enabled=FalseLabel1.Caption=Int(Rnd*900000+100000)
EndSubEndSub
5.通用对话框掌握利用通用对话框实现打开文件功能。
参考例题:
P164例7.9
6.菜单掌握菜单的设计及菜单编程。
参考例题:
P281第6、7题
7.要求会画圆、画椭圆、画曲线(正弦、余弦、y=x^3、玫瑰曲线等)、画矩形以及边框颜色和填充颜色。
参考例题:
P209例9.1,P2851、2、3、4及以下例题:
本程序含有如下菜单系统:
一级菜单有“文件”和“画图”,“文件”菜单下有一二级菜单“退出”;“画图”菜单下有两个二级菜单“画曲线”、“画矩形”,“文件”名称为:
mn_fl;“退出”名称为:
mn_fl_end;“画图”名称为:
mn_dr;“画曲线”名称为:
mn_dr_yx3;“画矩形”名称为:
mn_dr_re。
完成以下功能:
画曲线:
以(-10,1000)和(10,-1000)为对角顶点建立坐标系;画出坐标轴和Y=X^3的曲线,X的取值区间为[-10,10];
PrivateSubmn_dr_yx3_Click()
Scale(-10,1000)-(10,-1000)
Forx=-10To10Step0.01
y=x^3
PSet(x,y)
Nextx
EndSub
实验AVB环境和可视化编程基础
1
PrivateSubCommand1_Click()
Label3=Text1
EndSub
2.
PrivateSubForm_Load()
Timer1.Interval=0
EndSub
PrivateSubCommand1_Click()'手动
Timer1.Interval=0
CallMyMove
EndSub
PrivateSubCommand2_Click()'自动
Timer1.Interval=200
EndSub
PrivateSubTimer1_Timer()
CallMyMove
EndSub
SubMyMove()
Label1.MoveLabel1.Left-50,Label1.Top
IfLabel1.Left<0ThenLabel1.Left=Form1.Width
EndSub
3
PrivateSubForm_Click()
Text1=Val(Text1)+1
EndSub
PrivateSubForm_Load()
Text1=0
EndSub
5
SubCommand1_Click()
Text1.FontName="隶书"
Text1.FontSize=25
EndSub
SubCommand2_Click()
Text2.Text=Text1.SelText
Text2.FontName=Text1.FontName
Text2.FontSize=Text1.FontSize
EndSub
实验B:
顺序结构
①目的
掌握常用函数的用法以及顺序结构程序的编制;
掌握关系表达式和逻辑表达式的用法;
掌握选择结构的基本用法。
②内容
教材中P263实验4、5、6、7、8
程序代码:
实验4
PrivateSubCommand1_Click()
Text2=UCase(Text1.Text)
Print"长度";Len(Text1.Text)
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
EndSub
实验5
PrivateSubCommand1_Click()
Randomize
Text1=Int(Rnd*901+100)
EndSub
PrivateSubCommand2_Click()
Dimx%,x1%,x2%,x3%
x=Val(Text1)
x1=xMod10
x2=(xMod100)\10
x3=x\100
Label1=x1*100+x2*10+x3
EndSub
实验6
PrivateSubForm_Load()
Label1=Left(Text1,11)
Label2=Mid(Text1,12,6)
Label3=Right(Text1,5)
EndSub
实验7
PrivateSubCommand1_Click()
Print
Fori=1To5
PrintTab(15-i*2);String(2*i-1,"★");Spc(18-4*(i-1));String(2*i-1,"★")
Nexti
EndSub
PrivateSubCommand2_Click()
Cls
EndSub
另一种
PrivateSubCommand1_Click()
Print
Fori=1To5
PrintTab(15-i*2);String(2*i-1,"★");String(11-2*i,"☆");String(2*i-1,"★")
Nexti
EndSub
PrivateSubCommand2_Click()
Cls
EndSub
实验8
PrivateSubForm_Click()
DimaAsSingle
a=InputBox("请输入一个正实数")
Print"a的平方是";Int(a*a*1000+0.5)/1000;
Print"a的平方根是";Int(Sqr(a)*1000+0.5)/1000;
Print"a的立方是";Int(a*a*a*1000+0.5)/1000;
Print"a的立方根是";Int(a^(1/3)*1000+0.5)/1000
EndSub
实验三:
选择结构
①目的
掌握常用函数的用法以及顺序结构程序的编制;
掌握关系表达式和逻辑表达式的用法;
掌握选择结构的基本用法。
②内容
教材中P2651、3、5、6、7、8
程序代码:
1、
DimxAsSingle
x=Val(InputBox("请输入价钱"))
Ifx<1000Then
y=x
ElseIfx<2000Then
y=0.9*x
ElseIfx<3000Then
y=0.8*x
Else
y=0.7*x
EndIf
Print"你应支付:
";y
3、
PrivateSubCommand2_Click()
Dimx!
y!
z!
x=InputBox("inputx")
y=InputBox("inputy")
z=InputBox("inputz")
Print"xyz"
Print"排序前";x;"";y;"";z
Ifxx=y:
y=t
Ifyt=y:
y=z:
z=t
Ifxt=x:
x=y:
y=t
EndIf
EndIf
Print"排序后"&x&""&y&""&z
EndSub
5、
Dimm%,n%,x%,y%
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
EndSub
PrivateSubText2_LostFocus()
m=Text1.Text
n=Text2.Text
IfnMod2<>0Then
MsgBox("脚数为奇数,重新输入")
Text2.Text=""
Text2.SetFocus
EndIf
Ifn<2*mOrn>4*mThen
MsgBox("脚数小于头数的倍数或大于4倍,重新输入")
Text2.Text=""
Text2.SetFocus
EndIf
EndSub
PrivateSubText3_GotFocus()
y=n/2-m
x=m-y
Text3.Text=x
Text4.Text=y
EndSub
6、
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle
Dimx1AsSingle,x2AsSingle
a=Val(Text1.Text):
b=Val(Text2.Text):
c=Val(Text3.Text)
d=b*b-4*a*c
Ifa<>0Then
Ifd>0Then
MsgBox"两实根"
x1=(-b+Sqr(d))/2/a
x2=(-b-Sqr(d))/2/a
Text4.Text=x1:
Text5.Text=x2
ElseIfd=0Then
MsgBox"两重根"
x1=-b/2/a
x2=x1
Text4.Text=x1:
Text5.Text=x2
Else
MsgBox"两复根"
x1=-b/2/a
x2=Sqr(-d)/2/a
Text4.Text=x1&"+"&x2&"i"
Text5.Text=x1&"-"&x2&"i"
EndIf
Else
Ifb<>0Then
MsgBox"单根"
x1=-c/b:
x2=-c/b
Text4.Text=x1:
Text5.Text=x2
Else
MsgBox"无意义"
EndIf
EndIf
EndSub
PrivateSubCommand2_Click()
end
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Text4.Text=""
Text5.Text=""
EndSub
7、
PrivateSubText3_LostFocus()
SelectCaseTrim(Text3)
Case"+"
Text4=Val(Text1)+Val(Text2)
Case"-"
Text4=Val(Text1)-Val(Text2)
Case"*"
Text4=Val(Text1)*Val(Text2)
Case"/"
IfVal(Text2)=0Then
MsgBox"分母为零,重新输入"
Text2=""
Text2.SetFocus
Else
Text4=Val(Text1)/Val(Text2)
EndIf
EndSelect
EndSub
8、
方法一
ch=InputBox("请输入一个数字1--7")
t=Choose(ch,"星期一","星期二","星期三","星期四","星期五","星期六","星期日")
MsgBox(t)
方法二
PrivateSubForm_Click()
ch=InputBox("请输入一个数字1--7")
SelectCasech
Case"1"
MsgBox"星期一"
Case"2"
MsgBox"星期二"
Case"3"
MsgBox"星期三"
Case"4"
MsgBox"星期四"
Case"5"
MsgBox"星期五"
Case"6"
MsgBox"星期六"
Case"7"
MsgBox"星期日"
EndSelect
EndSub
实验三:
循环结构
①目的
掌握循环结构的功能;
掌握For-Next和Do-Loop循环控制语句的用法;
掌握多重循环结构的用法。
②内容
教材中P2681、2、3、4、6
1
PrivateSubForm_Click()
Fori=1To10
PrintTab(20-i);String(2*i-1,Right(Str(i),1))
Nexti
EndSub
2
PrivateSubForm_Click()
Fori=1To9
PrintTab(i+10);String(20-2*i,Chr(i+64))
Nexti
EndSub
3
PrivateSubCommand1_Click()
Dims!
t!
i&
s=1
t=1
i=1
DoWhile1/t>0.0001
t=t+i
s=s+1/t
i=i+1
Loop
Print"DoWhile结构";s,i-1;"项"
EndSub
PrivateSubCommand2_Click()
Dims!
t!
i&
s=1
t=1
Fori=1To100000
t=t+i
s=s+1/t
If1/t<0.0001ThenExitFor
Nexti
Print"For结构";s,i;"项"
EndSub
4
PrivateSubForm_Click()
DimpiAsDouble,nAsSingle
n=InputBox("sdfd")
pi=2
Fori=1Ton
pi=pi*2*i*2*i/(2*i-1)/(2*i+1)
Nexti
Printpi
EndSub
6
PrivateSubForm_Click()
Fori=100To999
x=Int(i/100)
y=Int((i-x*100)/10)
z=i-x*100-y*10
Ifi=x*x*x+y*y*y+z*z*zThen
Printi,
EndIf
Nexti
EndSub
另一种方法
PrivateSubForm_Click()
Fori=1To9
Forj=0To9
Forz=0To9
Ifi*i*i+j*j*j+z*z*z=i*100+j*10+zThen
Printi*100+j*10+z,
EndIf
Nextz
Nextj
Nexti
EndSub
实验E:
数组和自定义类型
①目的
掌握数组的概念;
体会数组在处理有序数据方面的优越性;
掌握数组的常用解题算法。
②内容
教材中实验:
1、2、3、4、5、6
1、
PrivateSubForm_Click()
Dima(1To10)AsInteger,i%,maxa%,mina%,avera!
Fori=1To10
a(i)=Int(Rnd*100)
Nexti
mina=a
(1)
maxa=a
(1)
avera=a
(1)
Fori=2To10
Ifa(i)>maxaThenmaxa=a(i)
Ifa(i)avera=avera+a(i)
Nexti
Fori=1To10
Printa(i);
Nexti
Print
Print"max=";maxa,"min=";mina,"aver=";avera/10
EndSub
2、
PrivateSubForm_Click()
Dima
a=Array(56,78,98,88,76,78)
Fori=0To5
PrintString(a(i)\5,"◆");a(i)
Print
Nexti
EndSub
3、统计各分数段的个数
Dima(1To20)AsInteger
PrivateSubCommand1_Click()
Randomize
Fori=1To20
a(i)=Int(Rnd*101)
j=j+1
Picture1.PrintTab(6*j-5);a(i);
IfjMod4=0ThenPicture1.Print:
j=0
Nexti
EndSub
PrivateSubCommand2_Click()
Dims(5To9)AsInteger
Fori=1To20
j=a(i)\10
Ifj<6Then
s(5)=s(5)+1
ElseIfj<9Then
s(j)=s(j)+1
Else
s(9)=s(9)+1
EndIf
Nexti
Fori=5To9
Picture2.Print"s(";i;")的人数有";s(i)
Nexti
EndSub
4、
PrivateSubForm_Click()
Dima(1To10)AsInteger
Randomize
Fori=1To10
a(i)=Int(Rnd*90+10)
Printa(i);
Nexti
Print
Fori=1To9
k=i
Forj=i+1To10
Ifa(k)Nextj