实验二 选择循环结构程序设计6学时.docx

上传人:b****3 文档编号:4622430 上传时间:2022-12-07 格式:DOCX 页数:15 大小:175.10KB
下载 相关 举报
实验二 选择循环结构程序设计6学时.docx_第1页
第1页 / 共15页
实验二 选择循环结构程序设计6学时.docx_第2页
第2页 / 共15页
实验二 选择循环结构程序设计6学时.docx_第3页
第3页 / 共15页
实验二 选择循环结构程序设计6学时.docx_第4页
第4页 / 共15页
实验二 选择循环结构程序设计6学时.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验二 选择循环结构程序设计6学时.docx

《实验二 选择循环结构程序设计6学时.docx》由会员分享,可在线阅读,更多相关《实验二 选择循环结构程序设计6学时.docx(15页珍藏版)》请在冰豆网上搜索。

实验二 选择循环结构程序设计6学时.docx

实验二选择循环结构程序设计6学时

实验报告二

课程

VB程序设计

实验项目

选择、循环结构程序设计(6学时)

成绩

专业班级

2015级经济学四班

姓名

杨自然

学号

201531100361

实验日期

实验目的

(1)掌握分支结构(if、ifelse、selectcase)语句

(2)掌握基本循环控制结构(For-Next、While-Wend、Do-Loop)语句

(3)掌握循环嵌套结构

(4)掌握素数算法

(5)能综合运用循环控制结构解决较复杂的问题

实验内容

一、选择结构程序设计

【实验3-1】编写一个“系统登录”程序,对用户输入的账号和密码进行检验。

(10分)(实验教材P39)

要求:

①账号不超过6位数,密码为4位字符,本题的密码假设为“majq”。

②账号中不能有非数字字符,可以通过IsNumeric函数对文本框中的输入内容进行测试。

③密码输入时,屏幕上不能显示输入字符,以“*”代替。

④当输入不正确时,显示提示信息。

若单击“重试”按钮,则清除原输入内容,焦点定位在原输入的文本框中,重新输入;若单击“取消”按钮,则停止程序的运行。

⑤密码检验运行界面和输入密码错误显示的信息分别如图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

Else

Textpas.Text=""

Textpas.SetFocus

EndIf

EndIf

EndSub

PrivateSubCommand3_Click()

End

EndSub

PrivateSubForm_Load()

TextNo.Text=""

Textpas.Text=""

EndSub

PrivateSubText1_Change()

EndSub

PrivateSubTextNo_LostFocus()

IfNotIsNumeric(TextNo)Then

MsgBox"账号有非数字字符",vbExclamation,"输入账号"

TextNo.Text=""

TextNo.SetFocus

EndIf

EndSub【请将你的典型结果的截图粘贴到下面】

 

【实验3-2】税务部门征收所得税,规定如下(用IF语句实现)(10分)(P42)

①当收入为200元以内(含200元)时,免征;

②当收入为200~400元(含400元)时,将超过200元的部分纳税3%;

③当收入为400~5000元(不含5000元)时,将超过400元的部分纳税4%;

④当收入为5000元或5000元以上时,将超过400元的部分纳税5%。

程序运行后,单击窗体,在输人对话框中输入收入数,程序将输出纳税金额,运行情况如下图所示,要求

纳税程序界面

掌握多分支if语句的使用,可自行用select语句改写。

实验结果:

【请将你的代码粘贴到下面】

PrivateSubForm_Load()

DimxAsInteger

DimyAsSingle

Show

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分)(P43)

界面设计参见下图:

猜数游戏界面

掌握selectcase语句的使用,可自行用if语句改写。

实验结果:

DimNAsInteger

PrivateSubCommand1_Click()

DimdifAsInteger

dif=Abs(Val(Text1.Text)-N)

PrintN

SelectCasedif

CaseIs=0

MS="你猜对了,真聪明!

"

Case1To2

MS="******"

Case3To5

MS="*****"

Case6To10

MS="****"

Case11To20

MS="***"

Case21To50

MS="**"

CaseElse

MS="*"

EndSelect

MsgBoxMS

EndSub

PrivateSubForm_Load()

RandomizeTimer

N=Int(100*Rnd+1)

EndSub

【请将你的典型结果的截图粘贴到下面】

二、循环结构程序设计

【实验3-4】求自然数N的阶乘N!

,运行结果如下图所示(10分)(P43)

求阶乘界面

掌握for语句的使用方法,可用其它循环语句编写、对比。

实验结果:

【请将你的代码粘贴到下面】

PrivateSubCommand1_Click()

DimnAsInteger

DimiAsInteger

DimsAsDouble

n=Val(Text1.Text)

i=1

s=1

Do

s=s*i

i=i+1

LoopUntili>n

Text2.Text=s

EndSub

【请将你的典型结果的截图粘贴到下面】

【实验3-5】编程实现如图5-2所示的打印效果(10分)(P44)

打印菱形界面

掌握多重循环程序设计,可自行扩展称为等边三角形、直角三角形。

实验结果:

【请将你的代码粘贴到下面】

PrivateSubCommand1_Click()

DimnAsInteger

DimiAsInteger,jAsInteger

n=InputBox("输入图案偶数行")

Fori=1Ton/2

Forj=1To2*i-1

PrintTab(30-i+j);"*";

Nextj

Print

Nexti

Fori=n/2To1Step-1

Forj=1To2*i-1

PrintTab(30-i+j);"*";

Nextj

Print

Nexti

EndSub

【请将你的典型结果的截图粘贴到下面】

 

【实验3-6】素数问题:

计算小于1000且最靠近1000的10个素数之和。

(10分)(P45)

掌握素数算法,可用其它循环语句编写、对比。

实验结果:

【请将你的代码粘贴到下面】

PrivateSubForm_Click()

DimaAsInteger,bAsInteger,cAsInteger,sumAsInteger

DimflagAsBoolean

a=1000

Print"这10个素数分别是:

"

Whilec<10

flag=True

Forb=2ToSqr(a)

IfaModb=0Then

flag=False

ExitFor

EndIf

Nextb

Ifflag=TrueThen

c=c+1

sum=sum+a

Printa

EndIf

a=a-1

Wend

Print

Print"这10个素数的总和";sum

EndSub

【请将你的典型结果的截图粘贴到下面】

三、常见程序设计

【实验3-7】编写程序计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+…当第i项的值<10-5时计算结束。

(10分)

掌握Do…loop语句的使用

实验结果:

【请将你的代码粘贴到下面】

PrivateSubForm_Click()

DimaAsDouble

DimbAsInteger

DimcAsInteger

DimsAsInteger

a=0

b=0

c=1

s=0

Do

b=b+c

a=a+b

s=s+1/a

LoopUntil1/a<1/10^5

Prints

EndSub

【请将你的典型结果的截图粘贴到下面】

【实验3-8】将200~300之间的素数输出到列表框中。

(10分)

掌握素数算法

实验结果:

【请将你的代码粘贴到下面】

PrivateSubCommand1_Click()

DimiAsInteger,jAsInteger

DimflagAsBoolean

Fori=200To300

Forj=2Ton-1

IfiModj=0ThenExitFor

Nextj

Ifi>j-1Then

List1.AddItemi

Else

EndIf

Nexti

EndSub

【请将你的典型结果的截图粘贴到下面】

【实验3-9】编写程序,在窗体上输出上三角形式的九九乘法表。

(10分)

掌握多重For循环程序设计

实验结果:

【请将你的代码粘贴到下面】

PrivateSubForm_Click()

Dimi,jAsInteger

DimsAsString

Fori=1To9

Forj=1Toi

s=i&"×"&j&"="&i*j

PrintTab((j-1)*9+2);s;

Nextj

Print

Nexti

EndSub

【请将你的典型结果的截图粘贴到下面】

 

【实验3-10】任意输入一个或者多个英文句子,统计这些句子中的单词数量。

(10分)(教材P77)

根据实际问题,找出解决方案,结合循环和分支结构语句,解决问题。

提示:

有很多种方法可以解决这个问题,注意特殊情况。

实验结果:

【请将你的代码粘贴到下面】

Private Sub Command1_Click()

    Dim BufStr As String, LS As Long, LE As Long, V() As String

    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)

    Loop Until LS = LE

    V = Split(BufStr, " ")

    Text2.Text = Trim(UBound(V) - LBound(V) + 1)

End Sub

【请将你的典型结果的截图粘贴到下面】

实验小结

1.遇到的问题:

最后一题还是不懂。

2.对课程的建议:

建议把难的题在课上再讲讲吧,不讲不明白啊。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1