VisualBasic程序设计教程第版实验答案Word格式.docx

上传人:b****6 文档编号:19313094 上传时间:2023-01-05 格式:DOCX 页数:72 大小:69.99KB
下载 相关 举报
VisualBasic程序设计教程第版实验答案Word格式.docx_第1页
第1页 / 共72页
VisualBasic程序设计教程第版实验答案Word格式.docx_第2页
第2页 / 共72页
VisualBasic程序设计教程第版实验答案Word格式.docx_第3页
第3页 / 共72页
VisualBasic程序设计教程第版实验答案Word格式.docx_第4页
第4页 / 共72页
VisualBasic程序设计教程第版实验答案Word格式.docx_第5页
第5页 / 共72页
点击查看更多>>
下载资源
资源描述

VisualBasic程序设计教程第版实验答案Word格式.docx

《VisualBasic程序设计教程第版实验答案Word格式.docx》由会员分享,可在线阅读,更多相关《VisualBasic程序设计教程第版实验答案Word格式.docx(72页珍藏版)》请在冰豆网上搜索。

VisualBasic程序设计教程第版实验答案Word格式.docx

实验1-2

模仿教学篇例1.1,将事件过程中的自上而下移动改为自右向左移动,同时考虑文字超出窗体边界的情况。

各个控件及属性窗口的设置见表2.1.2,背景图形文件可以选择自己喜欢的,按钮上的图标可通过Windows搜索功能查找。

以“学号-1-2”为项目名保存。

表2.1.2属性设置

Form1

实验1.2"

Picture:

选择自己喜欢的图片

我开始学习程序设计"

FontSize=36;

BackStyle=0

Style=1;

Picture="

clock02.ico"

ToolTipText="

自动"

Command2

key04.ico"

手动"

Timer1

Interval=0

注:

因为印刷错误,例题1.1中两个命令按钮的图形与事件过程代码不一致,需要调整。

自定义事件过程MyMove代码应调整为,可实现文字移动方向的改变

SubMyMove()

Label1.MoveLabel1.Left-50,Label1.Top

IfLabel1.Left<

0ThenLabel1.Left=Form1.Width

Timer1.Interval=200

PrivateSubCommand2_Click()

Timer1.Interval=0

CallMyMove

PrivateSubForm_Load()

PrivateSubTimer1_Timer()

实验1-3

“学号-1-3”为项目名保存。

图2.1.2实验1.3运行界面

(1)对窗体编写两个事件:

Form_Load事件中对文本框置初值为空;

Form_Click事件对鼠标单击文本框计数。

(2)对鼠标单击文本框计数计算为:

Text1.Text=Val(Text1.Text)+1

PrivateSubForm_click()

Text1.Text=Val(Text1.Text)+1

Text1.Text="

实验1-4

按照教学篇例2.2对窗体三个事件过程(Load、Click、DblClick)编程,在3个事件中装入不同的图片(自己选择);

在属性窗口练习鼠标指针改变:

MousePointer(值为99,用户自定义)、MouseIcon为Key04.ico图标文件,练习窗体图标(Icon)、边框线类型(BorderStyle)、最大化按钮和最小化按钮的改变,运行观察其效果。

以“学号-1-4”为项目名保存。

例题中Form_Resize事件可以不考虑,Picture属性设置中注意图片文件有后缀名,运行测试前需要先保存项目名,保证图片文件和程序文件在同一个文件夹下,否则会出现图片找不到的错误提示。

PrivateSubForm_Click()

Caption="

单击窗体"

Picture=LoadPicture(App.Path+"

\p2.jpg"

Print"

欢迎使用VB"

PrivateSubForm_DblClick()

Cls

双击窗体"

\p3.jpg"

结束使用VB"

装入窗体"

\p1.jpg"

装入图片"

实验1-5

命令按钮、字号、内容和格式的复制练习,效果如下图所示。

有关控件及属性参见下表。

以“学号-1-5”为项目名保存。

图2.1.3实验1.5运行界面

表2.1.3属性设置

实验1.5"

输入文本复制文本"

VB功能强大,但要下功夫学习才能学好"

MultiLine=True;

ScrollBar=2

Text2

MultiLine=True

隶书25磅"

复制=>

(1)Command1:

使得Text1的字体和字号根据命令按钮显示的要求改变

(2)Command2:

要求将Text1选中的内容及其格式复制到Text2。

选中的内容通过Text1的SelText属性获得

为使Text2文本框保持Text1中的字符格式,通过Text2.FontSize=Text1.FontSize和Text2.FontName=Text1.FontName实现

Text1.FontName="

隶书"

Text1.FontSize=25

Text2=Text1.SelText

Text2.FontName=Text1.FontName

Text2.FontSize=Text1.FontSize

实验1-6

图片缩小、还原的设置。

“学号-1-6”为项目名保存。

图2.1.4实验1.6运行界面

(1)单击“缩小一半”按钮,图片纵、横均缩小一半。

(2)单击“还原”按钮,图片与初始装入时同大。

为了实现还原效果,要做以下3件事。

(1)必须在事件过程外,即程序代码最上方声明窗体级变量:

Dimh%,w%‘用户输入的变量声明语句

(2)在Form1_Load事件中保存图像控件的初始值:

w=Image1.Width

h=Image1.Height

(3)在Command2_Click事件中还原为初始值:

Image1.Width=w

Image1.Height=h

缩小一半Command1_Click事件请读者自行完成。

思考:

若要设置图片放大效果,如何修改代码?

Dimh%,w%

Image1.Width=Image1.Width*0.5

Image1.Height=Image1.Height*0.5

Image1.Width=w

Image1.Height=h

w=Image1.Width

h=Image1.Height

实验2-1

图2.2.1实验2.1运行界面

(1)随机数生成某范围内的正整数公式为

Int(Rnd*范围+基数)

其中范围=数的上限-下限+1,基数=数的下限。

例如,要生成2位数,语句为

Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)

(2)保留两位小数,利用Format函数,形式为Format(要显示的数值,"

0.00"

)。

Text1.Text=Int(Rnd*9+1)

Text2.Text=Int(Rnd*90+10)

Text3.Text=Int(Rnd*900+100)

Text4.Text=Format((Val(Text1.Text)+Val(Text2.Text)+Val(Text3.Text))/3,"

0.00"

PrivateSubCommand3_Click()

Text2.Text="

Text3.Text="

Text4.Text="

实验2-2

我国有13亿人口,假定按人口年增长0.8%计算,多少年后我国人口超过26亿。

  

(1)已知年增长率r=0.8%,求人数超过26亿的年数n公式为:

其中:

Log(x)为对数函数,Log

(2)缘由Log(13/26),0.8%需写成0.008

(2)该题目的界面设计由读者自行设计。

n=Int(Log

(2)/Log(1+0.008)+1)

Text1=n&

"

年后人口超过26亿"

实验2-3

输入一个合法的3位正整数,测试其数值合法性后,逆序输出并显示。

例如,输入“734”,输出是“437”

(2)利用“MOD”和“\”运算符将一个3位数分离出3个1位数,然后利用乘法和加法运算将3个1位数连接成一个逆序的3位数。

图2.2.2实验2.3运行界面图2.2.3出错信息

Dimx%,x1%,x2%,x3%

x=Val(Text1)

x1=xMod10

x2=(xMod100)\10

x3=x\100

Label2=x1*100+x2*10+x3

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

IfNotIsNumeric(Text1.Text)Then

EndIf

PrivateSubText1_LostFocus()

MsgBox"

输入非数值数据,请重新输入"

,"

数据检验"

Text1.SetFocus

实验2-4

图2.2.4实验2.4运行界面

  事件过程可以在Form_Click中编码,输出控件可以使用标签控件。

Label1=UCase(Text1.Text)

Label2=Len(Text1.Text)

Label3=Left(Text1,11)

Label4=Mid(Text1,12,6)

Label5=Right(Text1,5)

实验2-5

图2.2.5实验2.5运行界面

Label2="

Val函数的结果"

Text2=Val(Text1.Text)

Str函数的结果"

Text2=Str(Text1.Text)

Chr函数的结果"

Text2=Chr(Text1.Text)

PrivateSubCommand4_Click()

Asc函数的结果"

Text2=Asc(Text1.Text)

实验2-6

“清屏”按钮后,清除窗体所显示的图形。

利用循环语句和String函数。

读者也可以发挥自己的想像力,设计更美观的图形。

图2.2.6实验2.6运行界面图2.2.7进一步要求运行界面

Print

Fori=1To5

PrintTab(15-i*2);

String(2*i-1,"

★"

);

String(10-(2*i-1),"

☆"

Nexti

实验2-7

用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,其间有间隔。

PrivateSubcommand1_Click()

x=Val(InputBox("

输入一个正实数"

"

计算"

0))

pf=Format(x*x,"

0.000"

pfg=Format(Sqr(x),"

lf=Format(x*x*x,"

lfg=Format(x^(1/3),"

平方为:

;

pf;

Space(3);

平方根为:

pfg;

立方为:

lf;

立方根为:

lfg

实验3-1

在购买某物品时,若所标明的价钱x在下述范围内,所付钱y按对应折扣支付:

提示:

此例用多分支结构实现,注意计算公式和条件表达式的正确书写。

Dimx!

y!

输入x的值"

))

Ifx<

1000Then

y=x

ElseIfx<

2000Then

y=0.9*x

3000Then

y=0.8*x

Else

y=0.7*x

Printy

实验3-2

编一个程序输入上网的时间并计算上网费用,计算方法如下:

同时为了鼓励多上网,每月收费最多不超过150元。

首先利用多分支If语句根据3个时间段算出费用,然后再用单分支If语句对超过150元的费用设置为150元。

输入上网时间"

10Then

y=30

50Then

y=30+2.5*(x-10)

y=30+2.5*40+2*(x-50)

Ify>

150Then

y=150

实验3-3

输入x,y,z

 

图2.3.1实验3.3运行界面

①利用InputBox函数输入3个数,存放到数值型变量中,然后对其进行比较;

若放在字符串变量中,有时会得到不正确的结果(因为字符串是从左到右的规则比较,例如会出现“34”>

“2345”>

“126789”的情况)。

②对三个数进行排序,只能通过两两比较,一般可用三条单分支if语句来实现。

方法如下:

先将x与y比较,使得x>

y;

然后将x与z比较,使得x>

z,此时x最大;

最后将y与z比较,使得y>

z。

③要显示多个数据,可以用“;

”逐一显示,也可利用“&

”字符串连接符将多个变量连接显示。

例如要输出x、y、z:

Print”排序后”;

x;

””;

y;

z‘用分号将多个变量显示

也可

Print”排序后”&

x&

””&

y&

z‘用”&

”字符串连接符

若要按从小到大的次序显示,程序将如何修改?

z!

x=InputBox("

inputx"

y=InputBox("

inputy"

z=InputBox("

inputz"

xyz"

排序前"

x;

y;

z

yThent=x:

x=y:

y=t

zThent=x:

x=z:

z=t

Ify<

zThent=y:

y=z:

排序后"

实验3-4

图2.3.2实验3.4运行界面

对于存放操作符的文本框Text3,利用SelectCase语句实现相应的运算。

PrivateSubText3_LostFocus()

SelectCaseTrim(Text3)

Case"

+"

Text4=Val(Text1)+Val(Text2)

-"

Text4=Val(Text1)-Val(Text2)

*"

Text4=Val(Text1)*Val(Text2)

/"

IfVal(Text2)=0Then

分母为零,重新输入"

Text2="

Text2.SetFocus

Text4=Val(Text1)/Val(Text2)

EndSelect

实验3-5

利用计算机解决古代数学问题”鸡兔同笼问题”。

即已知在同一个笼子里有总数为M只鸡和兔,鸡和兔的总脚数为N只,求鸡和兔各有多少只?

鸡、兔的只数通过已知输入的M,N列出方程可解,设鸡为x只,兔为y只,则计算公式为:

但不要求出荒唐的解(如3.5只鸡、4.5只兔,或者求得的只数为负数)。

因此,在Text2_LostFocus事件中要考虑下面两个条件:

①输入的总脚数N必须是偶数,否则提示数据错误的原因,要求重新输入数据。

(使用求余方法判断,即NMod2<

>

0)

图2.3.3

实验3.5运行界面

PrivateSubText2_LostFocus()

DimM%,N%,y%

M=Val(Text1)

N=Val(Text2)

IfNMod2<

0Then

MsgBox("

脚数必须是偶数"

y=N/2-M

IfN>

4*MOrN<

2*MThen

出现荒唐解,请重新输入"

Label2=M-y

Label3=y

实验3-6

输入一元二次方程的ax2+bx+c=0的

图2.3.4实验3.6运行界面

要考虑实根,要求判断b^2-4*a*c>

=0。

Dima!

b!

c!

x1!

x2!

de!

a=Text1

b=Text2

c=Text3

de=b*b-4*a*c

t=2*a

Ifde=0Then

Text4=Format(-b/t,"

Text5=Format(-b/t,"

ElseIfde>

Text4=Format((-b+Sqr(de))/t,"

Text5=Format((-b-Sqr(de))/t,"

)&

&

Format(Sqr(Abs(de))/t,"

i"

Private

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

当前位置:首页 > 小学教育 > 语文

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

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