实验二 选择循环结构程序设计6学时Word格式.docx
《实验二 选择循环结构程序设计6学时Word格式.docx》由会员分享,可在线阅读,更多相关《实验二 选择循环结构程序设计6学时Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
④当输入不正确时,显示提示信息。
若单击“重试”按钮,则清除原输入内容,焦点定位在原输入的文本框中,重新输入;
若单击“取消”按钮,则停止程序的运行。
⑤密码检验运行界面和输入密码错误显示的信息分别如图3-2和图3-3所示。
图3-2密码检验运行界面图3-3输入密码错误显示信息
掌握简单if语句的使用
实验结果:
【请将你的代码粘贴到下面】
PrivateSubFrame1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)
EndSub
PrivateSubCommand1_Click()
DimiAsInteger
IfTextpas.Text="
majq"
Then
MsgBox"
输入正确"
Else
i=MsgBox("
密码错误"
5+vbExclamation,"
输入密码"
)
Ifi<
>
4Then
End
Textpas.Text="
"
Textpas.SetFocus
EndIf
PrivateSubCommand3_Click()
End
PrivateSubForm_Load()
TextNo.Text="
Textpas.Text="
PrivateSubText1_Change()
PrivateSubTextNo_LostFocus()
IfNotIsNumeric(TextNo)Then
账号有非数字字符"
vbExclamation,"
输入账号"
TextNo.Text="
TextNo.SetFocus
EndSub【请将你的典型结果的截图粘贴到下面】
【实验3-2】税务部门征收所得税,规定如下(用IF语句实现)(10分)(P42)
①当收入为200元以内(含200元)时,免征;
②当收入为200~400元(含400元)时,将超过200元的部分纳税3%;
③当收入为400~5000元(不含5000元)时,将超过400元的部分纳税4%;
④当收入为5000元或5000元以上时,将超过400元的部分纳税5%。
程序运行后,单击窗体,在输人对话框中输入收入数,程序将输出纳税金额,运行情况如下图所示,要求
纳税程序界面
掌握多分支if语句的使用,可自行用select语句改写。
DimxAsInteger
DimyAsSingle
Show
x=Val(InputBox("
输入收入"
))
Ifx<
=200Then
y=0
ElseIfx<
=400Then
y=(x-200)*0.03
5000Then
y=(x-400)*0.04
Else
y=(x-400)*0.05
EndIf
Print"
收入为"
;
x;
"
应纳税为"
y
【请将你的典型结果的截图粘贴到下面】
【实验3-3】猜数游戏
程序自动产生一个[1,100]内的正整数,要用户猜,用户猜的值与被猜值的差距用“*”号个数表示,“*”越少表示差得越远,“*”越多表示相差越近。
(用selectcase语句实现)(10分)(P43)
界面设计参见下图:
。
猜数游戏界面
掌握selectcase语句的使用,可自行用if语句改写。
DimNAsInteger
DimdifAsInteger
dif=Abs(Val(Text1.Text)-N)
PrintN
SelectCasedif
CaseIs=0
MS="
你猜对了,真聪明!
!
Case1To2
******"
Case3To5
*****"
Case6To10
****"
Case11To20
***"
Case21To50
**"
CaseElse
*"
EndSelect
MsgBoxMS
RandomizeTimer
N=Int(100*Rnd+1)
二、循环结构程序设计
【实验3-4】求自然数N的阶乘N!
,运行结果如下图所示(10分)(P43)
求阶乘界面
掌握for语句的使用方法,可用其它循环语句编写、对比。
DimnAsInteger
DimsAsDouble
n=Val(Text1.Text)
i=1
s=1
Do
s=s*i
i=i+1
LoopUntili>
n
Text2.Text=s
【实验3-5】编程实现如图5-2所示的打印效果(10分)(P44)
打印菱形界面
掌握多重循环程序设计,可自行扩展称为等边三角形、直角三角形。
DimiAsInteger,jAsInteger
n=InputBox("
输入图案偶数行"
Fori=1Ton/2
Forj=1To2*i-1
PrintTab(30-i+j);
Nextj
Print
Nexti
Fori=n/2To1Step-1
EndSub
【实验3-6】素数问题:
计算小于1000且最靠近1000的10个素数之和。
(10分)(P45)
掌握素数算法,可用其它循环语句编写、对比。
PrivateSubForm_Click()
DimaAsInteger,bAsInteger,cAsInteger,sumAsInteger
DimflagAsBoolean
a=1000
这10个素数分别是:
Whilec<
10
flag=True
Forb=2ToSqr(a)
IfaModb=0Then
flag=False
ExitFor
Nextb
Ifflag=TrueThen
c=c+1
sum=sum+a
Printa
a=a-1
Wend
Print
这10个素数的总和"
sum
三、常见程序设计
【实验3-7】编写程序计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+…当第i项的值<
10-5时计算结束。
(10分)
掌握Do…loop语句的使用
DimaAsDouble
DimbAsInteger
DimcAsInteger
DimsAsInteger
a=0
b=0
c=1
s=0
b=b+c
a=a+b
s=s+1/a
LoopUntil1/a<
1/10^5
Prints
【实验3-8】将200~300之间的素数输出到列表框中。
掌握素数算法
PrivateSubCommand1_Click()
Fori=200To300
Forj=2Ton-1
IfiModj=0ThenExitFor
Nextj
Ifi>
j-1Then
List1.AddItemi
Nexti
【实验3-9】编写程序,在窗体上输出上三角形式的九九乘法表。
掌握多重For循环程序设计
Dimi,jAsInteger
DimsAsString
Fori=1To9
Forj=1Toi
s=i&
×
&
j&
="
i*j
PrintTab((j-1)*9+2);
s;
【实验3-10】任意输入一个或者多个英文句子,统计这些句子中的单词数量。
(10分)(教材P77)
根据实际问题,找出解决方案,结合循环和分支结构语句,解决问题。
提示:
有很多种方法可以解决这个问题,注意特殊情况。
Private
Sub
Command1_Click()
Dim
BufStr
As
String,
LS
Long,
LE
V()
String
bufStr=text1.text
=
Replace(bufstr,
'
Replace(BufStr,
vbCrLf,
vbCr,
vbLf,
Trim(BufStr)
Len(BufStr)
Loop
Until
LE
V
Split(BufStr,
Text2.Text
Trim(UBound(V)
-
LBound(V)
+
1)
End
Sub
实验小结
1.遇到的问题:
最后一题还是不懂。
2.对课程的建议:
建议把难的题在课上再讲讲吧,不讲不明白啊。