VisualBasic实验答案3.docx
《VisualBasic实验答案3.docx》由会员分享,可在线阅读,更多相关《VisualBasic实验答案3.docx(140页珍藏版)》请在冰豆网上搜索。
VisualBasic实验答案3
VisualBasic
实验指导手册
学院
专业
(班级)
学号
任课教师
实验报告的整理与编写
上机实验结束后,编写实验报告是软件工程的要求,也是培养科学作风的重要途径,实验报告的主要容包括:
(1)实验目的
实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。
因此,当我们着手做一个实验的时候,必须明确实验的目的,以保证达到课程所指定的基本要求。
在写实验报告时,要进一步确认是否达到了预期的目的。
(2)实验容
实验的目的是要通过解决一些具体问题来达到的。
在书中,每一部分都安排了多个实验题目,根据教学安排、进度、实验条件、可提供的机时、学生的基础等因素,可以选择其中的几个或全部。
因此,在实验报告中,实验容是指本次实验中实际完成的容。
在每一个实验题目中,一般都提出一些具体要求,其中有些具体要为了达到实验目的而提出的,不仅有具体的实验题目,还应包括具体要求。
(3)程序设计说明
包括算法设计思路,必要的流程图,界面设计说明、使用模块及变量的说明等。
(4)源程序代码
VisualBasic的源程序包括界面设计和代码。
程序设计的产品是程序,它应与算法或流程图相一致,要与用户界面设计一致。
程序要有具有易读性,符合结构化原则。
(5)程序的运行结果(包括对不同测试数据的运行结果)
程序运行结果一般是输出语句所输出的结果。
对于不同的输入,其输出的结果是不同的。
因此,在输出结果之前一般还应注明输入的数据,以便对输出结果进行分析和比较。
在程序的运行中,还必须用各种不同情况的数据进行调试,以检查程序能否正常运行。
因为,有时程序对某些情况是可以正常运行的,而对某些特殊情况的数据可能会出现运行出错或死机,通过各种数据的调试,尽量做到程序不会出问题。
(6)实验体会
分析和体会实验中碰到的问题及解决方法,这是实验报告中最重要的一项,也是最容易忽视的一项。
实验过程量的工作是程序调试,在调试过程中会遇到各种各样的问题,每解决一个问题就能积累一点经验,提高自己的编程能力。
因此,对实验的总结,最主要的是程序调试经验的总结。
调试分析也包括对结果的分析。
体会主要是指通过本次实验是否达到了实验目的,有哪些基本概念得到了澄清,碰到了那些以前没有见到的问题,最后采用什么方法得到解决等。
实验日期
年月日
实验一VisualBasic编程环境和控件
一、实验目的
1、掌握启动与退出VisualBasic的方法。
2、掌握VisualBasic语言程序的开发环境.
3、掌握VisualBasic语言程序设计的方法与特点
4、掌握建立、编辑、运行和保存一个简单的VisualBasic应用程序的全过程。
二、实验容
申请一个免费(如果已经有,请跳过),以便以后将每星期编制的程序压缩并存放在中(或者保存在U盘中),以便复习时用。
1.创建第一个应用程序。
编写一个简单程序,实现单击命令按钮时在文本框显示“单击命令按钮”,单击窗体空白处时在文本框显示“单击窗体”。
保存窗体文件名:
SY1_1.frm,保存工程名:
SY1_1.vbp。
程序界面如图11.所示。
图1.1实验1的运行界面
【步骤】
1启动VisualBasic6.0,在弹出的“新建工程”对话框中选择“标准EXE”。
2在窗体上建立一个文本框和一个命令按钮。
建立方法:
在左边工具箱上,单击要绘制的控件的按钮,再把鼠标移到窗体,按住鼠标左键画出所需大小的框体。
或者是双击工具箱的要绘制的控件的按钮。
3分别选中命令按钮和文本框,在属性窗口中对各属性进行设置,属性设置参照表:
表1.1实验1属性设置
对象名称
属性
属性值
窗体
Caption
我的第一个程序
文本框
Text
(空)
命令按钮
Caption
命令按钮
4双击命令按钮,进入代码窗口中命令按钮的默认事件,编写代码如下:
PrivateSubCommand1_Click()
Text1.Text="单击命令按钮"
EndSub
5双击窗体的空白处,进入代码窗口中窗体的默认事件(Form_Load()),在右边的过程列表框中选择Click,,编写代码如下:
PrivateSubForm_Click()
Text1.Text="单击窗体"
EndSub
6单击工具栏上的
按钮,运行程序,分别单击命令按钮以及窗体空白处,观察文本框上显示的容有何变化。
如果程序代码有错误,则进入代码窗口中调试程序。
7单击工具栏上的
按钮,结束程序运行。
8单击工具栏上的
按钮,将窗体、工程分别以SY1_1.frm、SY1_1.vbp保存在磁盘上。
2.建立一个应用程序,界面如图1.2所示,窗体包含有一个文本框和三个按钮,要求文本框中的字体为14号黑体加粗,颜色为红色,且文本容居中显示。
编写代码实现:
图1.2实验2的运行界面
1)按“显示容”按钮时,文本框显示“Hello,VisualBasic!
”;
2)按“清屏”按钮时,文本框中文字消失;
3)按“结束”按钮后,程序结束。
(提示:
代码中输入End,则可结束应用程序运行)
保存窗体文件名:
SY1_2.frm,保存工程名:
SY1_2.vbp。
表1.2实验2属性设置
对象名称
属性
属性值
窗体Form1
Caption
文本框Text1
Text
Alignment
Font
ForeColor
命令按钮Command1
Caption
显示容
命令按钮Command2
Caption
清屏
命令按钮Command3
Caption
结束
编写代码如下:
代码
遇到的主要问题及分析:
3、P260 实验A。
二、3.编写一程序,在文字框中统计在该窗口上鼠标单击的次数。
设计和运行界面如图1.3所示。
完成后自己取名保存。
图1.3实验3设计界面运行界面
编写代码如下:
代码
遇到的主要问题及分析:
【提高题】P259 实验A。
二、1.编写一程序,要求在屏幕上显示“欢迎学习VisualBasci”,并在“请输入你的”标签后的文本框Text1中输入;单击“你输入的是”按钮,则在Label3标签上显示在文本框Text1中输入的。
窗体如图1.4所示。
图1.4提高题的运行界面
编写代码如下:
代码
遇到的主要问题及分析:
【选作题】窗体上有两个名称分别为C1,C2的命令按扭,一个文本框Text1。
命令按钮的标题及文本框上显示的字符自定。
编程实现当按下C1时,将C2的标题与Text1中的容交换。
要求:
1)界面自己设计2)连续多次单击C1,都能将C2的标题与Text1中的容交换。
设计的界面如下:
编写代码如下:
代码
遇到的主要问题及分析:
实验心得体会
实验日期
年月日
实验二窗体及基本控件使用
一、实验目的
1、复习启动与退出VisualBasic的方法。
2、掌握窗体基本的事件、方法和属性,并学会在不同的事件的过程中,编写代码。
3、掌握文本框和标签两种控件的使用,掌握文本框和标签控件的常用属性、事件和方法。
以及它们之间的区别。
4、掌握命令按钮控件的常用属性、事件和方法。
二、实验容
1、设计一个程序(如图2.1所示),用窗体模拟黑板,窗体上没有最大化、最小化按钮;鼠标单击窗体时窗体上输出提问,双击时显示回答。
分析:
把窗体装扮成黑板模样,要设置窗体的BackColor属性为黑色,ForeColor属性为白色(模拟粉笔字的颜色)。
窗体上没有最大化、最小化按钮,则需要设置窗体的MaxButton、MinButton属性。
而单击、双击时的输出显示,可以在Click、DblClick事件里用Print和Cls方法来实现。
(a)设计状态
(b)运行状态
(c)窗体单击
(d)窗体双击
图2.1实验2.1模拟黑板
1)属性设置
表2.1实验1属性设置
对象名称
属性
属性值
窗体Form1
BackColor
ForeColoFont
MaxButton
MinButton
vbBlack
Vbwhite
False
False
2)代码编写
代码
遇到的主要问题及分析:
PrivateSubForm_Load()
Form1.Caption="模拟黑板"
EndSub
PrivateSubForm_Click()
Cls
Print"1+1=?
"
EndSub
PrivateSubForm_DblClick()
Cls
Print"1+1=2"
EndSub
【思考】
如果进一步要求随机出题(简单的数学四则运算题)在窗体上输出并显示答案,该怎么做
PrivateSubForm_Click()
DimaAsInteger,bAsInteger
a=Int(Rnd*10)
b=Int(Rnd*10)
Printa;"+";b;"=";a+b‘减法等同理
EndSub
2、窗体上有一个文本框Text1,要求当鼠标划过文本框Text1时,鼠标显示Cross“┼”形状;窗体上的一个标题为“复制”的命令按钮C1。
通过属性窗口实现以上的设置之后,编程实现:
1)程序启动时窗体标题为“修改文本框容”;
2)单击命令按钮C1,则把按钮上的标题复制到文本框,并使按钮不可见;
3)单击窗体空白处,按钮可见但不可用。
Ø必要属性设置
表2.2实验2属性设置
对象名称
属性
属性值
Text1
mousepointer
2-cross
C1
caption
复制
Ø代码编写
代码
遇到的主要问题及分析:
PrivateSubForm_Load()
Form1.caption=“修改文本框容”
EndSub
PrivateSubC1_Click()
Text1=C1.Caption
C1.Visible=False
EndSub
PrivateSubForm_Click()
C1.Visible=True
C1.Enabled=False
EndSub
3、窗体上有四个文本框,两个标题分别为“显示选息”“选中文本”的命令按钮。
要求程序运行时,光标焦点在Text1上,按下Tab键后,光标焦点跳到在Text3上。
在文本框Text1中输入一些字符;要求编程实现:
图2.2实验2.3文本信息选定窗体
1)在文本框Text1中输入一行文字并按回车(Enter)后,把Text1的容设置为窗体的标题。
2)在Text1中选中其中一部分容后,单击“显示选息”命令按钮,则把在Text1中被选中文本的第一个字符的顺序号,被选中文本的字符个数,被选中的文本容分别显示在文本框Text2,Text3,Text4中。
3)分别在文本框Text2,Text3中输入你所希望文本框Tex1中选中文本信息的顺序号以及长度,单击“选中文本”命令按钮,则根据文本框Text2,Text3输入的容,在Text1中选中对应的容,同时在Text4中显示出来。
【提示】部分相关属性和事件:
SelStart、SelLength、SelText、KeyPress
Ø必要的属性设置
表2.3实验3属性设置
对象名称
属性
属性值
Text1
text
“”
Text2
text
“”
Text3
text
“”
Text4
text
“”
Command1
caption
显示选息
Command2
caption
选中文本
Text1
tabindex
0
Text3
tabindex
1
或者Text2
tabstop
false
Ø代码编写
代码
遇到的主要问题及分析:
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13ThenForm1.Caption=Text1
EndSub
PrivateSubCommand1_Click()
Text2=Text1.SelStart
Text3=Text1.SelLength
Text4=Text1.SelText
EndSub
PrivateSubCommand2_Click()
Text1.SelStart=Text2
Text1.SelLength=Text3
Text4=Text1.SelText
EndSub
或者PrivateSubText1_LostFocus()
Text3.SetFocus
EndSub
【提高题1】创建VB工程,运行时可将文本框中的文字缩小以及还原。
窗体中包括下列控件:
标签、文本框和两个命令按钮,窗体标题为“字符缩小”,文本框字号为30磅。
图2.3实验提高1窗体
在文本框输入一串字符;按下“缩小”按钮时字号缩小为原来的一半(每按一下都会缩小为一半),界面如右图。
请完善以下代码:
PrivateSubForm_Load()
Text1.FontSize=30'设置文本框原始字号
EndSub
PrivateSubCommand1_Click()
Text1.FontSize=__Text1.FontSize/2_'将文本框字体每次缩小一半
EndSub
PrivateSubCommand2_Click()
__Text1.FontSize=30_____'文本框的字体恢复为30
EndSub
【提高题2】P260 实验A。
二、5.命令按钮、字号、容和格式的复制练习!
效果如右图。
要求:
1)Command1:
使得Text1中的字体和字号根据图2.4实验实验提高1窗体
命令按钮上显示的要求改变。
2)Command2:
要求将Text1选中的容及其字体格式复制到Text2文本框中。
Ø代码编写
代码
遇到的主要问题及分析:
PrivateSubCommand1_Click()
Text1.FontName="隶书"
Text1.FontSize=25
EndSub
PrivateSubCommand2_Click()
Text2=Text1.SelText
Text2.FontName=Text1.FontName
Text2.FontSize=Text1.FontSize
EndSub
【选作题】参考P35,建立一个允许剪切、复制和粘贴的简单便笺板程序。
可增加容:
利用MouseMove事件决定命令按钮的有效性,即当选中容,“剪切”、“复制”按钮有效,否则无效。
图2.5窗体原始界面按下运行按钮时的界面选中文本框部分容的界面
Ø代码编写
代码
遇到的主要问题及分析:
PrivateSubForm_Load()
Command1.Enabled=False
Command2.Enabled=False
EndSub
PrivateSubText1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfText1.SelText<>""Then
Command1.Enabled=true
Command2.Enabled=true
EndIf
EndSub
其他代码见p36
实验心得体会
实验日期
年月日
实验三顺序结构程序设计
实验目的:
1.熟练掌握VB的基本数据类型。
2.熟练掌握基本的输入输出函数和语句。
3.掌握顺序结构程序设计的方法。
实验容
1、定义两个变量a和b,它们的值分别由键盘输入。
编程计算并输出a与b的和、差、积、商、a除以b的余数、ab的值。
(要求自己设计窗体及输入、输出,必须有明确的示意提示)。
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubForm_Click()
Dimaasinteger,basinteger
a=Val(InputBox("输入a的值"))
b=Val(InputBox("输入b的值"))
Print"a=";a;"b=";b
Print"a+b=";a+b
Print"a-b=";a-b
Print"a*b=";a*b
Print"amodb=";aModb
EndSub
2、定义一个变量a,由键盘输入其值为任意四位整数,编程实现分别输出个、十、百、千位四个数字,并各个数字的平方和。
【提示】利用mod和\运算符将每一位分离。
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubForm_Click()
DimaAsInteger
Dimb%,c%,d%,e%
a=Val(InputBox("输入a的值,要求4位整数"))
b=aMod10'个位
c=a\1000'千位
d=(a-c*1000)\100'百位
e=(a-c*1000-d*100)\10
Print"个位:
";b
Print"十位:
";e
Print"百位:
";d
Print"千位:
";c
Print"平方和:
";b^2+e^2+d^2+c^2
EndSub
3、P262实验B二、1。
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubCommand2_Click()
Text1=Format(9/5*Val(Text2)+32,"0")
EndSub
4、设计窗体并实现:
1)单击“连接”,将Text1和Text2的容连接起来显示在Text3;
2)单击“求和”,求出Text1和Text2之和显示在Text3;
3)要求:
在单击“连接”之前Text3不可见,点“连接”之后“连接”按钮不可用;
(a)设计状态(b)运行状态
图3.1实验3.4窗体
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubCommand1_Click()
Text3.Visible=True
Text3=Text1&Text2
Command1.Enabled=False
EndSub
PrivateSubCommand2_Click()
Text3=Val(Text1)+Val(Text2)
EndSub
PrivateSubForm_Load()
Text3.Visible=False
EndSub
5、创建VB工程,界面如右所示,编程实现运行时可将标签中的文字字号随机放大(1~5整数倍)和(任意比例)缩小以及还原(原来字号)。
界面如右图所示。
【提示】图3.2实验3.5窗体
1)将标签的AotuSize属性设置为False及True,看看有什么区别?
2)用一个变量在程序开始运行时记住标签中原始字体的大小(想想放在什么事件过程中?
);这个变量还会在“还原”按键中使用,其说明语句要放在通用-声明中;
3)每次按放大或缩小按键都会在当前的基础上放大或缩小;
4)字体放大到一定程度会出现“溢出”的错误提示,可以先不管。
Ø代码编写:
代码
遇到的主要问题及分析:
Dimt
PrivateSubForm_Load()
t=Label1.FontSize
EndSub
PrivateSubCommand1_Click()
Label1.FontSize=Label1.FontSize*Int(Rnd*5+1)
EndSub
PrivateSubCommand2_Click()
Label1.FontSize=Label1.FontSize*Rnd
EndSub
PrivateSubCommand3_Click()
Label1.FontSize=t
EndSub
6、编程实现随机产生一个“F”~“S”围的大写字母,并输出该字母及其对应的ASCII码值,同时输出其小写字母及其对应的ASCII码的值。
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubForm_Click()
a=Int(Rnd*(83-70+1)+70)
PrintChr(a);"的ASCII值=";a
PrintLCase(Chr(a));"的ASCII值=";Asc(LCase(Chr(a)))
EndSub
【选作题1】编程解决古代数学问题“鸡兔同笼”。
即已知在同一个笼子里有总数为m只鸡和兔,鸡和兔的总脚数为n只,求鸡和兔各有多少只?
【提示】鸡和兔的总数m、鸡和兔的总脚数n需要预先输入(文本框或输入框输入)。
再设鸡和兔子的个数分别为x和y,通过已知输入的m和n;列出方程求解,分别用m,n两个已知量来表示x和y。
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubForm_Click()
m=Val(Text1)
n=Val(Text2)
y=1/2*n-m
x=2*m-1/2*n
Print"鸡有";x;"兔子有";y
EndSub
【选作题2】编程实现自动升位。
要求将原来任意一个带区号的7位升到8位,在最前面加8。
程序运行结果如图所示。
(要求必须适用于3位或4位区号的)
【提示】无论区号或是多少位,只要找到“-”的位置,就可以将“-”之前(包括“-”)的左子串、“8”、以及“-”后面剩下的字符串“串”起来。
Ø代码编写:
代码
遇到的主要问题及分析:
PrivateSubForm_Click()
a=InStr(Text1,"-")
Text2=Left(Text1,a)+"8"+Mid(Text1,a+1)
EndSub
【提高题】参考教材P33的例2.5及P65的例4.2,完成P263实验B二、2。
Ø代码编写:
代码
遇到的主要问题及分析:
ConstPI=3.14
PrivateSubComma