Visua lBasic实验实训指导书.docx

上传人:b****6 文档编号:6677982 上传时间:2023-01-08 格式:DOCX 页数:37 大小:464.06KB
下载 相关 举报
Visua lBasic实验实训指导书.docx_第1页
第1页 / 共37页
Visua lBasic实验实训指导书.docx_第2页
第2页 / 共37页
Visua lBasic实验实训指导书.docx_第3页
第3页 / 共37页
Visua lBasic实验实训指导书.docx_第4页
第4页 / 共37页
Visua lBasic实验实训指导书.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

Visua lBasic实验实训指导书.docx

《Visua lBasic实验实训指导书.docx》由会员分享,可在线阅读,更多相关《Visua lBasic实验实训指导书.docx(37页珍藏版)》请在冰豆网上搜索。

Visua lBasic实验实训指导书.docx

VisualBasic实验实训指导书

 

Visual

Basic

 

前言

《VisualBasic程序设计》是一门实践性很强的课程,在教学过程中应十分重视实践环节,加强动手能力的培养。

初学程序设计的学生往往在老师讲课时能听得懂,自己动手时却不知如何下手,为此我们特编写了此《VisualBasic程序设计实验指导书》,与课程的理论教材配套使用。

全书分为两大部分:

实验和实训。

其中实验包括了7个实验项目,主要内容包括VisualBasic语言基础(数据类型、运算符、表达式的使用),三种程序设计结构,数组的应用,基本控件的属性、方法与事件及其使用,文件系统控件的使用,菜单编辑器的使用及菜单的设计和多窗体应用的程序设计。

每个实验项目有实验目的、实验内容和问题讨论三部分组成。

实验的参考程序多样,界面丰富多彩,具有开拓思维的启发作用。

实训包含五个小程序,分别是调色板、计算器、记事本、看图器和时钟。

通过实训主要是培养学生基本的编程思路和掌握简单的算法,了解VisualBasic开发小型应用程序的整个过程。

本书在取材与编写上立足与教材同步,但又不失自己独立性与完整性,可单独作为VisualBasic程序设计的上机实例使用。

书中所有参考程序都可以在VisualBasic6.0企业版下正常运行。

目录

实验一:

数据类型、运算符、表达式的使用2

实验一:

数据类型、运算符、表达式的使用3

实验一:

数据类型、运算符、表达式的使用4

实验二:

三种程序设计结构5

实验三:

数组的应用7

实验四:

基本控件的属性、方法与事件及其应用11

实验五:

文件系统控件的使用16

实验六:

菜单编辑器的使用及菜单的设计18

实验七:

多窗体应用程序的设计22

实训24

课程学时分配34

实验说明35

实验一:

数据类型、运算符、表达式的使用

[实验目的]

1.掌握VB数据类型的基本概念。

2.掌握变量、常量的定义方法、各种运算符和表达式的使用。

[实验内容]

1.先手工计算下列表达式的值,然后上机验证(在立即窗口中完成)。

(1)8Mod3*2/5

(2)7/3*3*(4^3)Mod5

(3)”abc”+”123”&”456”

(4)297.5+”0.5”

(5)4<8and5<>6

(6)flaseornot(3+4>=7)

(7)(falseandtrue)ornot(trueorfalse)

(8)1/3*3<>1

2.当

(1)a=27,b=4

(2)a=27,b=-4(3)a=-27,b=4(4)a=-27,b=-4,分别求a/b,a\b,aModb的值,并总结运算符/、\、Mod的区别

3.设a,b,c为布尔型变量,且a=true,b=false,c=true,求下列表达式的值(先手工计算,后上机验证)

(1)aAndNotbImpc

(2)NotaEquNotb

(3)notaandb

(4)(notbOrc)and(bOrc)

(5)not(aOrb)and(bandc)

(6)aXorbOrc

[问题讨论]

1.简述各种运算符、表达式综合使用的运算顺序。

2.区别运算符/、\、Mod。

3.如何在立即窗口中验证表达式的值。

 

实验二:

三种程序设计结构

[实验目的]

1.掌握Let语句、Print方法、InputBox函数、MsgBox函数及过程、注释语句的用法。

2.熟悉选择结构程序设计,灵活使用有关选择结构语句(行If语句、块If语句、情况语句、选择结构的嵌套)解决实际问题。

3.熟悉循环结构程序设计,灵活使用各种循环语句解决实际问题。

[实验内容]

1.顺序结构

编制程序:

自由落体运动的位移公式为:

S=1/2*g*t^2+V0t。

其中V0为初始速度;g为重力加速度;t为经历的时间;求位移量S。

要求:

将g定义成符号常量,V0和t的值用InputBox函数输入。

代码如下:

PrivateSubForm_click()

DimV0assingle,tassingle

Constg=9.8

V0=Val(InputBox(”请输入初速度”,”输入对话框”))

S=1/2*g*t^2+V0t

Print“位移为:

”;S

EndSub

2.选择结构

编程序求一元二次方程:

a*x^2+b*x+c=0的两个根。

PrivateSubForm_click()

Dima,b,c,det,x1,x2

a=Val(InputBox(“请输入二次项系数”,”输入数据”))

b=Val(InputBox(“请输入一次项系数”,”输入数据”))

c=Val(InputBox(“请输常数项”,”输入数据”))

ifa=0Then

Print”二次项系数不能为0”

Else

det=b*b-4*a*c

Ifdet>=0Then

x1=(-b+sqr(det))/(2*a)

x2=(-b-sqr(det))/(2*a)

Print“x1=”;x1

Print“x2=”;x2

Else

Print“x1=”;str((-b)/(2*a));”+”str(Abs(sqr(-det))/2*a)&”i”

Print“x2=”;str((-b)/(2*a));”-”str(Abs(sqr(-det))/2*a)&”i”

EndIf

EndIf

EndSub

3.循环结构

编程乘法口诀表:

PrivateSubForm_click()

Dimiasinteger,jasinteger

Fori=1to9

Forj=1toI

Printi;”*”;j;”=”;i*j

Next

Next

EndSub

[问题讨论]

1.试分析If—Then—Else结构和SelectCase结构的异同点。

2.在For…Next循环中,试分析循环初值、终值和步长的关系。

3.ExitDo语句的作用是什么?

它可以在哪些循环中使用?

4.练习

(1)设计一个程序显示10个两位整数的随机数。

(2)用InputBox$函数输入一个正整数,若输入正确,计算其平方根

(3)求百钱买百鸡问题。

实验三:

数组的应用

[实验目的]

1.掌握数组的定义方法。

2.正确理解和使用数组元素的下标,掌握数组元素的使用、赋值、输入和输出。

3.使用数组解决实际问题。

[实验内容]

1.静态数组

随机产生10个两位整数,找出其最大值、最小值和平均值

设计步骤如下:

建立应用程序用户界面与设置对象属性。

编写代码。

考虑到要在不同的过程中使用数组,所以首先在模块的通用段声明数组:

Dima(1To10)AsInteger

随机整数的生成由窗体的Load事件代码完成:

PrivateSubForm_Load()

DimpAsString

Randomize

p=""

Fori=1To10

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

p=p&Str(a(i))&","

Next

Label1.Caption=LTrim(Left(p,Len(p)–1))

EndSub

“重置”按钮Command1的Click事件代码:

PrivateSubCommand1_Click()

Form_Load

Text1.Text=""

Text2.Text=""

Text3.Text=""

EndSub

求最大、最小以及平均值由“确定”按钮Command2的Click事件代码完成:

PrivateSubCommand2_Click()

DimnAsInteger,mAsInteger,sAsSingle

min=100:

max=10:

s=0

Fori=1To10

Ifa(i)>nThenmax=a(i)

Ifa(i)

s=s+a(i)

Next

Text1.Text=max

Text2.Text=min

Text3.Text=s/10

EndSub

最后是“关闭”按钮Command3的Click事件代码:

PrivateSubCommand3_Click()

UnloadMe

EndSub

(1)在“重置”按钮的Click事件代码中,通过调用窗体的Load事件过程来重新产生随机数。

(2)如果要求产生的随机整数互不相同,应改写窗体的Load事件代码:

PrivateSubForm_Load()

DimpAsString

Randomize

p=""

Fori=1To10

Do

x=Int(Rnd*90)+10

yes=0

Forj=1Toi-1

Ifx=a(j)Thenyes=1:

ExitFor'如与前面的元素相同,则返回到Do循环

Next'重新产生随机数

LoopWhileyes=1

a(i)=x

p=p&Str(a(i))&","

Next

Label1.Caption=LTrim(Left(p,Len(p)-1))

EndSub

2.动态数组

编程序,输出杨辉三角形(国外称Pascal三角形)

建立应用程序用户界面与设置对象属性。

编写代码。

在模块的通用段声明数组一个动态数组:

Dima()

为了使输入所需项数并按回车后可以得到各项,编写文本框Text1的按健(KeyPress)事件代码:

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

DimnAsInteger

IfKeyAscii=13Then

n=Val(Text1.Text)

Ifn>16Then

MsgBox"请不要超过16"

ExitSub

EndIf

ReDima(n,n)

Fori=1Ton

a(i,1)=1:

a(i,i)=1

Next

p=Format(1,"!

@@@@")&Chr(13)

p=p&Format(1,"!

@@@@")&Format(1,"!

@@@@@")&

Fori=3Ton

p=p&Format(a(i,1),"!

@@@@")

Forj=2Toi–1

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

p=p&Format(a(i,j),"!

@@@@@")

Next

p=p&Format(a(i,i),"!

@@@@@")&Chr(13)

Next

MsgBoxp,0,"杨辉三角形"

EndIf

EndSub

[问题讨论]

1.静态数组与动态数组的使用。

2.常用数组解决的问题有那些?

实验四:

基本控件的属性、方法与事件及其应用

[实验目的]

1.图片框、图像框、单选钮、复选钮、组合框、列表框的练习和比较。

2.掌握定时器、框架、滚动条的应用。

[实验内容]

1.设计程序,利用图片框的属性和方法加载、清除图形。

如图所示

2.定时器

利用定时器显示当前系统时间,同时用图像框显示三个笑脸。

3.单选按钮、复选按钮、框架

PrivateSubCheck1_Click()

IfCheck1.ValueThen

Text1.FontBold=True

Else

Text1.FontBold=False

EndIf

EndSub

PrivateSubCheck2_Click()

IfCheck2.ValueThen

Text1.FontItalic=True

Else

Text1.FontItalic=False

EndIf

EndSub

PrivateSubCheck3_Click()

IfCheck3.ValueThen

Text1.FontUnderline=True

Else

Text1.FontUnderline=False

EndIf

EndSub

PrivateSubOption1_Click()

Text1.FontName="宋体"

EndSub

PrivateSubOption2_Click()

Text1.FontName="楷体_gb2312"

EndSub

PrivateSubOption3_Click()

Text1.FontSize=18

EndSub

PrivateSubOption4_Click()

Text1.FontSize=36

EndSub

4.列表框、组合框

代码:

Dimpos(7)AsString

PrivateSubForm_Load()

Command1.Font.Size=12

Command1.Caption="退出"

WithList1

.FontSize=12

.AddItem"东岳泰山"

.AddItem"南岳衡山"

.AddItem"中岳嵩山"

.AddItem"西岳华山"

.AddItem"北岳恒山"

.AddItem"五台山山"

.AddItem"黄山"

.AddItem"峨眉山"

.Selected(0)=True

EndWith

pos(0)="在山东泰安市境内"

pos

(1)="在湖南衡山县境内"

pos

(2)="在河南登封县境内"

pos(3)="在陕西华阴县境内"

pos(4)="在山西浑源县境内"

pos(5)="在山西五台山境内"

pos(6)="在安徽南部境内"

pos(7)="在四川乐山地区"

Text1.FontSize=12

Text1=List1.Text+pos(0)

EndSub

PrivateSubList1_Click()

DimiAsInteger

Fori=0To(List1.ListCount-1)

IfList1.Selected(i)=TrueThen

Text1=List1.Text+pos(i)

EndIf

NextI

EndSub

5.计时器、滚动条

代码如下:

OptionExplicit

DimrAsInteger,gAsInteger,bAsInteger

PrivateSubCommand1_Click()

Timer1.Enabled=True

EndSub

PrivateSubCommand2_Click()

Timer1.Enabled=False

EndSub

PrivateSubTimer1_Timer()

RandomizeTimer

r=Int(Rnd*256)

g=Int(Rnd*256)

b=Int(Rnd*256)

HScroll1.Value=r

Label4.Caption=r

HScroll2.Value=g

Label5.Caption=g

HScroll3.Value=b

Label6.Caption=b

Text1.ForeColor=RGB(r,g,b)

EndSub

[问题讨论]

1.列表框与组合框有什么区别?

2.单选按钮与复选按钮的区别?

3.什么是容器控件,它有什么样的特点?

4.滚动条的 Change事件与Scroll事件有什么不同?

实验五:

文件系统控件的使用

[实验目的]

1.掌握驱动器列表框、目录列表框、文件列表框三个文件系统控件的使用。

2.掌握三个文件系统控件的组合方法。

3.图像框的使用。

[实验内容]

制作一个如下图所示的图片查看器:

要求:

1。

驱动器列表框、目录列表框、文件列表框必须配合使用,并且在目录名位置显示路径。

2.能够通过列表框中文件类型的选择可使在文件列表框中显示该类型的文件。

3.图片在图像框中显示

PrivateSubCombo1_Click()

File1.Pattern=Combo1.Text

File1.Path=Dir1.Path

EndSub

PrivateSubDir1_Change()

File1.Path=Dir1.Path

Label4.Caption=Dir1.Path

EndSub

PrivateSubDrive1_Change()

Dir1.Path=Drive1.Drive

EndSub

PrivateSubFile1_Click()

Text1.Text=File1.FileName

Image1.Picture=LoadPicture(File1.Path+"\"+Text1.Text)

EndSub

PrivateSubForm_Load()

Label4.Caption=Dir1.Path

Combo1.AddItem("*.jpg")

Combo1.AddItem("*.ico")

Combo1.Text="*.jpg"

File1.Pattern="*.jpg"

EndSub

[问题讨论]

1.驱动器列表框、目录列表框、文件列表框三个文件系统控件如何配合使用。

2.文件列表框Pattern属性的使用。

3.讨论一下能否用图片框代替图像框。

实验六:

菜单编辑器的使用及菜单的设计

[实验目的]

1.熟练掌握窗口菜单的规划、设计和使用方法。

2.掌握弹出式菜单设计和使用方法。

3.掌握工具栏设计和应用方法。

[实验内容]

1.菜单

(1)菜单编辑器的使用

(2)下拉式菜单

利用菜单来控制标题板的内容、字体、字体风格等,如图所示

打开菜单编辑器设计菜单。

写菜单项代码。

编写“文本内容”项Txt的Click事件代码:

PrivateSubTxt_Click()

temp=InputBox("请输入标题板的新内容","输入",Label1.Caption)

Iftemp<>""Then

Label1.Caption=temp

EndIf

EndSub

编写“文本字体”中4个菜单选项的Click事件代码:

PrivateSubsong_Click()

Label1.FontName="宋体"

EndSub

PrivateSubli_Click()

Label1.FontName="隶书"

EndSub

PrivateSubkai_Click()

Label1.FontName="楷体"

EndSub

PrivateSubhei_Click()

Label1.FontName="黑体"

EndSub

编写“文本风格”中3个菜单选项的Click事件代码:

PrivateSubbld_Click()

bld.Checked=Notbld.Checked

Label1.FontBold=bld.Checked

EndSub

PrivateSubItl_Click()

Itl.Checked=NotItl.Checked

Label1.FontItalic=Itl.Checked

EndSub

PrivateSubUndrln_Click()

Undrln.Checked=NotUndrln.Checked

Label1.FontUnderline=Undrln.Checked

EndSub

(3)菜单控件数组

(4)菜单项的可用与不可能

(5)弹出式菜单

语法为:

[〈窗体名〉.]PopupMenu〈菜单名〉[,flags[,x[,y[,boldcommand]]]]

将上例用弹出式菜单实现,(如图所示)。

只需增加标签和窗体的MouseDown事件代码:

PrivateSubLabel1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=2Then

PopupMenuStyl,6

EndIf

EndSub

PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

IfButton=2Then

PopupMenuNam,6

EndIf

EndSub

2.工具栏

(1)用手工方式制作工具栏

(2)使用Toolbar控件与ImageList控件

设计如下程序:

修改应用程序用户界面

通过“属性页”对话框来设置工具栏控件与图像列表控件的属性

(3)修改及编写程序代码。

修改窗体的事件代码:

PrivateSubForm_Resize()

WithText1

.Top=Toolbar1.Height

.Left=0

.Height=Form1.ScaleHeight-Toolbar1.Height

.Width=Form1.ScaleWidth

EndWith

EndSub

编写工具栏按钮的事件代码:

PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)

n=Button.Index

SelectCasen

Case2,3,4

File_Click(n-2)

具有Office97风格的工具栏

Case6

Text1.FontBold=Button.Value

Case7

Text1.FontItalic=Button.Value

Case8

Text1.FontUnderline=Button.Value

EndSelect

EndSub

[问题讨论]

1.菜单栏、工具栏在创建时应注意哪些问题?

2.弹出式菜单创建的语法格式。

实验七

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

当前位置:首页 > 解决方案 > 学习计划

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

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