VB实验2.docx
- 文档编号:3572605
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:15
- 大小:254.46KB
VB实验2.docx
《VB实验2.docx》由会员分享,可在线阅读,更多相关《VB实验2.docx(15页珍藏版)》请在冰豆网上搜索。
VB实验2
实验报告二
实验目的
(1)掌握分支结构(if、ifelse、selectcase)语句
(2)掌握基本循环控制结构(For-Next、While-Wend、Do-Loop)语句
(3)掌握循环嵌套结构
(4)掌握素数算法
(5)能综合运用循环控制结构解决较复杂的问题
实验内容
一、选择结构程序设计
【实验3-1】编写一个“系统登录”程序,对用户输入的账号和密码进行检验。
(10分)
要求:
①账号不超过6位数,密码为4位字符,本题的密码假设为“majq”。
②账号中不能有非数字字符,可以通过IsNumeric函数对文本框中的输入内容进行测试。
③密码输入时,屏幕上不能显示输入字符,以“*”代替。
④当输入不正确时,显示提示信息。
若单击“重试”按钮,则清除原输入内容,焦点定位在原输入的文本框中,重新输入;若单击“取消”按钮,则停止程序的运行。
⑤密码检验运行界面和输入密码错误显示的信息分别如图3-2和图3-3所示。
图3-2密码检验运行界面图3-3输入密码错误显示信息
掌握简单if语句的使用
实验结果:
【请将你的代码粘贴到下面】
PrivateSubcmdClear_Click()
txtNo.Text=""
txtNo.Text=""
EndSub
PrivateSubcmdExit_Click()
End
EndSub
PrivateSubcmdOK_Click()
DimiAsInteger
IftxtPas.Text="majq"Then
MsgBox"输入正确"
Else
i=MsgBox("密码错误",5+vbExclamation,"输入密码")
Ifi<>4Then
End
Else
txtPas.Text=""
txtPas.SetFocus
EndIf
EndIf
EndSub
PrivateSubForm_Load()
txtNo.Text=""
txtNo.Text=""
EndSub
PrivateSubtxtNo_LostFocus()
IfNotIsNumeric(txtNo)Then
MsgBox"账号有非数字字符",vbExclamation,"输入账号"
txtNo.Text=""'清空
txtNo.SetFocus'txtno获得焦点
'上面两步是文本框重新输入的惯用操作
EndIf
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-2】税务部门征收所得税,规定如下(用IF语句实现)(10分)
①当收入为200元以内(含200元)时,免征;
②当收入为200~400元(含400元)时,将超过200元的部分纳税3%;
③当收入为400~5000元(不含5000元)时,将超过400元的部分纳税4%;
④当收入为5000元或5000元以上时,将超过400元的部分纳税5%。
程序运行后,单击窗体,在输人对话框中输入收入数,程序将输出纳税金额,运行情况如下图所示,要求
纳税程序界面
掌握多分支if语句的使用,可自行用select语句改写。
实验结果:
【请将你的代码粘贴到下面】
PrivateSubForm_click()
DimxAsInteger
DimyAsSingle
x=Val(InputBox("输入收入"))
Ifx<=200Then
y=0
ElseIfx<=400Then
y=(x-200)*0.03
ElseIfx<=5000Then
y=(x-400)*0.04
Else
y=(x-400)*0.05
EndIf
Print"收入为";x;"应纳税为:
";y
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-3】猜数游戏
程序自动产生一个[1,100]内的正整数,要用户猜,用户猜的值与被猜值的差距用“*”号个数表示,“*”越少表示差得越远,“*”越多表示相差越近。
(用selectcase语句实现)(10分)
界面设计参见下图:
。
猜数游戏界面
掌握selectcase语句的使用,可自行用if语句改写。
实验结果:
【请将你的代码粘贴到下面】
DimNAsInteger
PrivateSubCommand1_Click()
DimdAsInteger
d=Abs(Val(Text1.Text)-N)
SelectCased
CaseIs=0
ds="你猜对了!
真聪明!
!
"
Case1To2
ds="******"
Case3To5
ds="*****"
Case6To10
ds="****"
Case11To20
ds="***"
Case21To50
ds="**"
CaseElse
ds="*"
EndSelect
MsgBoxds
EndSub
【请将你的典型结果的截图粘贴到下面】
二、循环结构程序设计
【实验3-4】求自然数N的阶乘N!
,运行结果如下图所示(10分)
求阶乘界面
掌握for语句的使用方法,可用其它循环语句编写、对比。
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
DimnAsInteger
DimiAsInteger
DimsAsDouble
n=Val(Text1.Text)
s=1
Fori=1Ton
s=s*i
Nexti
Text2.Text=s
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-5】编程实现如图5-2所示的打印效果(10分)
打印菱形界面
掌握多重循环程序设计,可自行扩展称为等边三角形、直角三角形。
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
DimnAsInteger
DimiAsInteger,jAsInteger
n=InputBox("输入图案偶数行")
Fori=1Ton/2
PrintTab(10-i);string(2*i-1,"*");
Nexti
Fori=n/2To1Step-1
PrintTab(10-i);string(2*i-1,"*");
Nexti
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-6】素数问题:
计算小于1000且最靠近1000的10个素数之和。
(10分)
掌握素数算法,可用其它循环语句编写、对比。
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
Dimn%,sum#,k%
n=999
DoWhilek<>10
'判断n是否是素数
Forj=2Ton-1
IfnModj=oThenExitFor
Nextj
Ifj>n-1Then
k=k+1
sum=sum+n
EndIf
n=n-1
Loop
Printsum
EndSub
【请将你的典型结果的截图粘贴到下面】
三、常见程序设计
【实验3-7】编写一个简易计算器编写程序计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+…当第i项的值<10-5时计算结束结束。
(10分)
掌握Do…loop语句的使用
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
fm=1
c=1
Do
t=1/fm
s=s+t
fm=fm+c
c=c+1
LoopWhilet>=0.00001
MsgBoxs
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-8】将200~300之间的素数输出到列表框中。
(10分)
掌握素数算法
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
Fori=200To300
'判断I是否是素数
ForJ=2Toi-1
IfiModJ=0ThenExitFor
NextJ
IfJ>i-1Then
List1.AddItemi
EndIf
Nexti
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-9】编写程序,在窗体上输出上三角形式的九九乘法表。
(10分)
掌握多重For循环程序设计
实验结果:
【请将你的代码粘贴到下面】
PrivateSubForm_Click()
DimaAsInteger
DimbAsInteger
Fora=1To9
Forb=1Toa
PrintCStr(b)&"*"&CStr(a)&"="&CStr(a*b);Spc
(2);
Nextb
Nexta
EndSub
【请将你的典型结果的截图粘贴到下面】
【实验3-10】任意输入一个或者多个英文句子,统计这些句子中的单词数量。
(10分)
根据实际问题,找出解决方案,结合循环和分支结构语句,解决问题。
提示:
有很多种方法可以解决这个问题,注意特殊情况。
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
DimBufStrAsString,LSAsLong,LEAsLong,V()AsString
BufStr=Text1.Text
BufStr=Replace(BufStr,"'","")
BufStr=Replace(BufStr,vbCrLf,"")
BufStr=Replace(BufStr,vbCr,"")
BufStr=Replace(BufStr,vbLf,"")
BufStr=Trim(BufStr)
Do
LS=Len(BufStr)
BufStr=Replace(BufStr,"","")
LE=Len(BufStr)
LoopUntilLS=LE
V=Split(BufStr,"")
Text2.Text=Trim(UBound(V)-LBound(V)+1)
EndSub
【请将你的典型结果的截图粘贴到下面】
【加分1】百钱买百鸡问题,一百个钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只,问一百只鸡中公鸡、母鸡、小鸡各多少)(加分10分,最高100分)
实验结果:
【请将你的代码粘贴到下面】
PrivateSubCommand1_Click()
Fori=0To100
Forj=0To100
Fork=0To100
Ifi*5+j*3+k/3=100Andi+j+k=100Then
Printi,j,k
EndIf
Nextk
Nextj
Nexti
EndSub
【请将你的典型结果的截图粘贴到下面】
【加分2】完成超级玛丽的子弹消灭怪兽、跳跃、碰撞、吃蘑菇功能(加分20分,最高100分)
实验结果:
【请将你的代码粘贴到下面】
【请将你的典型结果的截图粘贴到下面】
实验小结
1.遇到的问题:
2.对课程的建议:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 实验