部分上机题目及参考解法.docx

上传人:b****6 文档编号:5809364 上传时间:2023-01-01 格式:DOCX 页数:19 大小:114.97KB
下载 相关 举报
部分上机题目及参考解法.docx_第1页
第1页 / 共19页
部分上机题目及参考解法.docx_第2页
第2页 / 共19页
部分上机题目及参考解法.docx_第3页
第3页 / 共19页
部分上机题目及参考解法.docx_第4页
第4页 / 共19页
部分上机题目及参考解法.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

部分上机题目及参考解法.docx

《部分上机题目及参考解法.docx》由会员分享,可在线阅读,更多相关《部分上机题目及参考解法.docx(19页珍藏版)》请在冰豆网上搜索。

部分上机题目及参考解法.docx

部分上机题目及参考解法

部分上机题目及参考解法

2.2简单程序设计实验

1、

按钮事件过程对应的代码为:

PrivateSubButton1_Click()‘此处简写

TextBox1.Text="计算机科学与工程学院欢迎您!

"

EndSub

需要注意的是:

代码是在按钮的Click事件中写的,并非在其他事件中。

2、

“显示”按钮对应的事件过程为:

PrivateSubButton1_Click()‘此处简写

TextBox1.Text="锄禾日当午"&vbCrLf

TextBox1.Text&="汗滴禾下土"&vbCrLf

TextBox1.Text&="谁知..."

'这里考察的是回车换行符的用法

EndSub

“清除”按钮对应的事件过程为:

PrivateSubButton2_Click()‘此处简写

TextBox1.Text=""

'清空文本框的内容就是把文本框的内容赋值为空串

EndSub

“结束”按钮对应的事件过程为:

PrivateSubButton3_Click()‘此处简写

End

'强制结束程序

EndSub

2.3VB.NET基本语法实验

1、

“计算”按钮对应的事件过程为:

PrivateSubButton1_Click()‘此处简写

Dima,b,c,dAsSingle

a=Val(TextBox1.Text)'得到数量

b=Val(TextBox2.Text)'得到单价

c=Val(TextBox3.Text)'得到折扣

d=a*b*c'得到总价钱,即应付金额

TextBox4.Text=d'给应付金额文本框赋值

EndSub

“累计”按钮对应的事件过程为:

PrivateSubButton2_Click()‘此处简写

Dima,bAsSingle

a=Val(TextBox4.Text)'得到本次交易的应付金额

b=Val(TextBox5.Text)'得到以前交易所累计的金额

TextBox5.Text=a+b'将本次交易的金额也累计上去

EndSub

“清除”按钮对应的事件过程为:

PrivateSubButton3_Click()‘此处简写

TextBox1.Text=""'清空数量

TextBox2.Text=""'清空单价

TextBox3.Text=""'清空折扣

TextBox4.Text=""'清空应付金额

EndSub

2.4选择结构实验

1、

“纳税”按钮对应的事件过程为:

PrivateSubButton1_Click()‘此处简写

Dima,bAsSingle

a=(1500-800)*0.03'800--1500之间的总税金

b=(5000-1500)*0.05'1500-5000之间的总税金

Dimx,yAsSingle

x=Val(TextBox1.Text)'得到收入的值

Ifx>5000Then

y=(x-5000)*0.1+a+b'超过5000需要征3段税

ElseIfx>1500Then

y=(x-1500)*0.05+a'1500--5000需要征2段税

ElseIfx>800Then

y=(x-800)*0.03'800-1500需要征1段税

EndIf

TextBox2.Text=y'将税金输出到Textbox2

EndSub

3、

点击窗体后,要求输入学号、成绩,经程序处理后,结果如下:

那么在窗体单击事件中的代码如下:

PrivateSub成绩判定_Click()’窗体的名称已经改成“成绩判定”

DimxuehaoAsString

DimchengjiAsInteger

xuehao=InputBox("输入你的学号")

chengji=Val(InputBox("输入你的成绩"))

Ifchengji>100Orchengji<0Then

MsgBox("成绩输入有误")

ExitSub

EndIf

DimstrAsString

SelectCasechengji

CaseIs>=90

str="学号"&xuehao&",分数"&chengji&",优秀"

MsgBox(str)

CaseIs>=80

str="学号"&xuehao&",分数"&chengji&",良好"

MsgBox(str)

CaseIs>=70

str="学号"&xuehao&",分数"&chengji&",中等"

MsgBox(str)

CaseIs>=60

str="学号"&xuehao&",分数"&chengji&",及格"

MsgBox(str)

CaseElse

str="学号"&xuehao&",分数"&chengji&",不及格"

MsgBox(str)

 

EndSelect

EndSub

2.5循环结构实验

1、

“统计”按钮对应的事件过程为:

PrivateSubButton1_Click()‘此处简写

DimstrAsString

Dimi,cAsInteger

str=TextBox1.Text

Fori=1ToLen(str)

IfMid(str,i,1)="e"Then

c+=1

EndIf

Next

Label1.Text="字符串"&str&"中共含有"&c&"个e字符"

EndSub

2、

“人口增长”按钮对应的事件过程为:

PrivateSubButton1_Click()“此处简写

DimsumAsDouble

DimxAsInteger

sum=13

x=0

Whilesum<20

x+=1

sum=13*1.01^x

Loop

MsgBox(x&"年后我国人口将达到20亿")

EndSub

5、歌德巴赫猜想

“歌德巴赫猜想”按钮下面对应的代码为:

PrivateSubButton1_Click()’此处简写

Dimm,x,y,I,jAsInteger

DimstrAsString

m=Val(InputBox(""))

Forx=3Tom/2

Dimflag1AsBoolean

flag1=True

Fori=2Tox-1

IfxModi=0Then

flag1=False

ExitFor

EndIf

Next

Dimflag2AsBoolean

y=m-x

flag2=True

Fori=2Toy-1'判断y是否为素数

IfyModi=0Then

flag2=False

ExitFor

EndIf

Next

Ifflag1=TrueAndflag2=TrueThen

str&=m&"="&x&"+"&y&vbCrLf

EndIf

Next

MsgBox(str)

EndSub

6、使用函数的歌德巴赫猜想

FunctionIsPrime(ByValn%)AsBoolean

‘判断一个数n是否为素数,若是返回true,否则返回false

DimiAsInteger

Fori=2Ton-1

IfnModi=0Then

ReturnFalse

EndIf

Next

ReturnTrue

EndFunction

“歌德巴赫猜想”按钮下面对应的代码为:

PrivateSubButton1_Click()‘此处简写

Dimm,x1,x2AsInteger

m=Val(InputBox("输入一个大于等于6的偶数"))

Forx1=3Tom/2

x2=m-x1

IfIsPrime(x1)AndIsPrime(x2)Then

TextBox1.Text&=m&"="&x1&"+"&x2&vbCrLf

EndIf

Next

EndSub

注意:

我们自己设计的函数和按钮事件过程,在定义时是并列的关系。

6、菲波纳奇数列

(1)不使用过程

PrivateSubButton1_Click()

DimA(49)AsDouble

A(0)=0

A

(1)=1

DimiAsInteger

Fori=2To49

A(i)=A(i-1)+A(i-2)

Next

TextBox1.Text=""

Fori=1ToUBound(A)+1

DimcAsInteger

c=Len(A(i-1).ToString)

TextBox1.Text&=A(i-1)&Space(15-c)

IfiMod5=0Then

TextBox1.Text&=vbCrLf

EndIf

Next

EndSub

(2)使用过程

Subprint(ByValA#())

DimiAsInteger

Fori=1ToUBound(A)+1

DimcAsInteger

c=Len(A(i-1).ToString)

TextBox1.Text&=A(i-1)&Space(15-c)

IfiMod5=0Then

TextBox1.Text&=vbCrLf

EndIf

Next

EndSub

PrivateSubButton1_Click()

DimA(49)AsDouble

A(0)=0

A

(1)=1

DimiAsInteger

Fori=2To49

A(i)=A(i-1)+A(i-2)

Next

print(A)

EndSub

2.6数组的应用试验

1、数组操作

DimA()AsString={"北京","上海","广州","深圳"}

Dimi,jAsInteger

Label1.Text="第一组数据:

"&vbCrLf

Fori=0ToUBound(A)

Label1.Text&=A(i)&""

Next

Label1.Text&=vbCrLf

'DimB(4)Asstudent

'Fori=0ToUBound(B)

'B(i).name=InputBox("输入姓名")

'B(i).chinese=Val(InputBox("输入语文成绩"))

'B(i).math=Val(InputBox("输入数学成绩"))

'B(i).english=Val(InputBox("输入英语成绩"))

'B(i).total=B(i).chinese+B(i).math+B(i).english

'Next

'

'Label1.Text&="第二组数据:

"&vbCrLf

'Label1.Text&="姓名数学语文英语总分"&vbCrLf

'Fori=0ToUBound(B)

'Label1.Text&=B(i).name&""&B(i).math&""&B(i).chinese&""&B(i).english&""&B(i).total&vbCrLf

'Next

DimC(,)AsInteger={{12,26,-3,0},{26,34,-6,26},{0,-2,2,10},{4,2,3,9}}

Label1.Text&="第三组数据是:

"&vbCrLf

Fori=0ToUBound(C,1)

Forj=0ToUBound(C,2)

Label1.Text&=C(i,j)&""

Next

Label1.Text&=vbCrLf

Next

2.

DimC(,)AsInteger={{12,26,-3,0},{26,34,-6,26},{0,-2,2,10},{4,2,3,9}}

DimmaxAsInteger=C(0,0)

Dimx0,y0AsInteger

x0=0:

y0=0

Dimi,jAsInteger

Fori=0ToUBound(C,1)

Forj=0ToUBound(C,2)

IfC(i,j)>maxThen

max=C(i,j)

x0=i:

y0=j

EndIf

Next

Next

MsgBox("最大值为:

"&max&"位置:

"&x0&","&y0)

DimcountAsInteger

Fori=0ToUBound(C,1)

Forj=0ToUBound(C,2)

IfC(i,j)<0Then

count+=1

EndIf

Next

Next

MsgBox(count)

4.循环移位

(1)不使用函数

Dima(9)AsInteger

DimiAsInteger

Fori=0ToUBound(a)'用随机函数为数组赋值

a(i)=Int(Rnd()*90)+10

Next

DimstrAsString

Fori=0ToUBound(a)

str=str&a(i)&""

Next

MsgBox(str)

DimmAsInteger

m=Val(InputBox(""))

DimjAsInteger

Forj=1Tom'j控制次数

DimtAsInteger

t=a(0)

Fori=1ToUBound(a)

a(i-1)=a(i)

Next

a(UBound(a))=t

str=str&vbCrLf

Fori=0ToUBound(a)

str=str&a(i)&""

Next

Next

MsgBox(str)

(2)使用函数

SubMoveOne(ByValA%())

DimiAsInteger

DimcAsInteger

c=A(0)

Fori=1ToUBound(A)

A(i-1)=A(i)

Next

A(UBound(A))=c

EndSub

Subprint(ByValA%())

DimiAsInteger

Fori=0ToUBound(A)

Label1.Text&=A(i)&""

Next

Label1.Text&=vbCrLf

EndSub

PrivateSub成绩判定_Click()

DimA()AsInteger={25,81,-2,26,45,52}

DimiAsInteger

Label1.Text="没有移动前"&vbCrLf

print(A)

Fori=1To4

MoveOne(A)

print(A)

Next

EndSub

///////////////////////////

6.杨辉三角

PrivateSubButton6_Click()

Dima(8,8)AsInteger

Dimi,jAsInteger

Fori=0ToUBound(a,1)

a(i,0)=1

a(i,i)=1

Next

Fori=1ToUBound(a,1)

Forj=1Toi-1

a(i,j)=a(i-1,j-1)+a(i-1,j)

Next

Next

DimstrAsString

Fori=0ToUBound(a,1)

Forj=0Toi

str&=a(i,j)&Space(5-a(i,j).ToString.Length)

Next

str&=vbCrLf

Next

MsgBox(str)

EndSub

2.7排序试验

1.

PrivateSubButton1_Click()

Dima(9)AsInteger

Dimi,j,upAsInteger

up=UBound(a)

Fori=0Toup

a(i)=Int(Rnd()*51)+50

Next

DimstrAsString

print(str,a)

Fori=0ToUBound(a)-1

DimminAsInteger

min=i

Forj=i+1ToUBound(a)

Ifa(j)

min=j

EndIf

Next

DimtAsInteger

t=a(i):

a(i)=a(min):

a(min)=t

Next

print(str,a)

MsgBox(str)

EndSub

2.9过程调用中的参数传递试验

2.

Functionfactor(ByValnAsInteger)AsLong

DimiAsInteger

DimfAsLong=1

Fori=1Ton

f=f*i

Next

Returnf

EndFunction

PrivateSubButton2_Click()

DimmAsInteger=Val(TextBox1.Text)

DimnAsInteger=Val(TextBox2.Text)

TextBox3.Text=factor(n)/factor(m)/factor(n-m)

EndSub

 

下面是一些递归函数

1.求n!

Functionf(ByValn%)AsInteger

Ifn=1ThenReturn1

Returnn*f(n-1)

EndFunction

Functiong(ByValm%,ByValn%)AsInteger

IfmModn=0ThenReturnn

Returng(n,mModn)

EndFunction

2.菲波纳奇数列

Functionfib#(ByValn#)

Ifn=1ThenReturn0

Ifn=2ThenReturn1

Ifn>=3ThenReturnfib(n-1)+fib(n-2)

EndFunction

3.求数组中的最大值

Functionmax%(ByValA%())

Dimt,iAsInteger

t=A(0)

Fori=1ToUBound(A)

IfA(i)>tThent=A(i)

Next

Returnt

EndFunction

Functionmax1%(ByValA%(),ByValm%,ByValn%)

Ifm=nThenReturnA(m)

DimtAsInteger

t=max1(A,m+1,n)

IfA(m)>tThen

ReturnA(m)

Else

Returnt

EndIf

EndFunction

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

当前位置:首页 > 经管营销

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

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