安徽建筑工业学院.docx
《安徽建筑工业学院.docx》由会员分享,可在线阅读,更多相关《安徽建筑工业学院.docx(46页珍藏版)》请在冰豆网上搜索。
安徽建筑工业学院
安徽建筑工业学院
现代教育技术中心
实 验 报 告
课程名称:
VisualBasic程序设计
指导教师:
_______
专 业:
_______
班 级:
_______
姓 名:
_______
学 号:
_______
200 至200 学年第 学期
安徽建筑工业学院现代教育技术中心实验报告
实验一 VisualBasic集成环境和程序设计初步
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.掌握启动和关闭VisualBasic系统方法,熟悉VisualBasic的集成开发环境。
2.掌握VisualBasic工具箱窗口、属性窗口、工程资源管理器窗口各自功能作用。
3.熟悉开、闭各种窗口的方法和工具栏的定制。
4.掌握建立(打开)工程、保存(另存)工程、运行工程和编译工程的方法。
5.掌握代码窗口、对象窗口、立即窗口的使用
6.学会在窗体上添加控件方法和如何布局控件的命令,熟悉基本控件默认名。
实验内容
1.问答题
1写出以下控件的中文名称。
LableCommandButtonTextBoxCheckBoxOptionButtonTimerPictureBoxImage
2.编程题
必做部分
(1)打开VisualBasic并建立一个名为“文字转换”的工程。
在界面上建立一个标签,一个文本框和一个按钮,分别显示“修改前”、“安徽理工大学”“修改”字样,用户点击“修改”按钮,标签和文本框分别显示“修改后”、“安徽建筑工业学院”字样。
提示:
保存这个工程,运行这个工程,编译这个工程。
注意它们保存在什么位置,一个工程由几个什么类型的文件组成,通过图标能分清它们吗?
(2)打开VisualBasic并建立一个名为“圆的相关计算”的工程,窗体命名为“计算界面”。
在该窗体上添加三个标签三个文本框和两个按钮。
如图所示。
要求:
当用户在文本框1中输入半径后,单击“计算圆的周长”在文本框2中显示结果;单击“计算圆的面积”,在文本框3中显示结果。
提示:
可先行参看常量的声明方法。
(3)新建另一个工程。
添加3个命令按钮,使命令按钮1标题提示文字是“打印”,使另外两个命令按钮的标题分别为“清除”和“退出”。
要求三个按钮在窗体的右下角处,大小尺寸同第一个按钮。
运行时按“打印”按钮时在窗体上输出两行文字“学海无涯苦作舟,书山无路勤为径。
”按“清除”按钮时清除这两行文字并显示“知识就是力量”。
按“退出”按钮时结束运行状态回到设计状态。
选作部分
(1)打开VisualBasic并建立一个名为“美丽的校园”工程。
在窗体上装入一幅图片。
画一个标签,使其标题为:
“知识的港湾,成才的摇篮”。
并可由下往上,由上往下运动。
按要求保存工程调试运行工程直到满意为止。
编译这个工程并运行编译后的程序。
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
实
验
分
析
教
师
评
阅
成绩:
教师签名:
年月日
安徽建筑工业学院现代教育技术中心实验报告
实验二 顺序、选择结构程序设计
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.掌握各类表达式、赋值语句的书写规则。
2.掌握常用函数的使用方法、掌握InputBox和MsgBox函数的使用方法和返回值的使用。
3.熟悉利用立即窗口来测试常用函数,各类表达式的计算结果。
了解如何察看Debug.print表达式语句的执行结果。
4.掌握If~语句,If~Then~语句If~Then~EndIf语句和If~Then~ElseIf~…EndIf语句的使用规则和执行流程。
掌握Iif函数,Choose函数的使用规则和方法。
5.掌握SelectCase~Case~…CaseElse~EndSelect语句的使用规则和执行流程。
掌握Switch函数的使用规则和方法。
实验内容
1.书写以下表达式:
①
_____________
② x和y是一个落在第一或第三象限内的点坐标____________________
③ a是100以内的整数___________________
2.求以下表达式的值
①语句PrintFormat("HELLO","<")的输出结果是__________
②设标签Label1.Caption="oppo,myOPPOmusicmyMusic珍珠玉盘",则
Right(Label1,3)Left(Label1,4)Mid(Label1,9,4)
Instr(Label1,"OPPO")Len(Label1.Caption)
Instr(Instr(Label1,"m")+1,Label1,"m")
LenB(Label1.Caption)
③ "315"+23&"12mod7"
④"12e2"+23&315mod2
⑤7and-1
3.选择回答
①InputBox函数返回值的类型为:
A)数值B)字符串C)变体D)数值或字符串(视输入的数据而定)
②表达式4+5\6*7/8Mod9的值是:
【正确答案】
B
A)4B)5C)6D)7
③语句PrintFormat(32548.5,"000.000.00")的输出结果是:
A)32548.500.00B)32,548.5C)032,548.50D)32,548.50
④执行语句InputBox"Today","Tomorrow","Yesterday"将显示一个输入对话框,在对话框的输入区中显示的信息是:
A)TodayB)TomorrowC)YesterdayD)Daybeforeyesterday
⑤表达式Int(5*Rnd+1)*Int(5*Rnd-1)值的范围是_____.
A.[0,15]B.[-1,15]C.[-4,15]D.[-5,15]
下列可作为VisualBasic变量名的是__________
A)A#AB)4AC)?
xyD)constA
执行如下程序段时,从键盘输入-5,输出的结果是__________
x=-5
s=Val(InputBox("请输入s的值:
"))
SelectCases
CaseIs>0
y=x+1
CaseIs=0
y=x+2
CaseElse
y=x+3
EndSelect
Printx;y
A.-5-2B.-5-4C.-5-3D.-5-5
4.编程题
必做部分
(1)通过两个文本框分别获得两个输入值,用户通过点击“比较大小”按钮使得文本框1的值大于文本框2的值。
(2)设窗口内的命令按钮“加倍”具有如下的功能:
将文本框Text1中输入的数值加倍后,在文本框Text2中显示其结果。
(3)编制一段程序完成以下分段函数的求值,自变量的值通过InputBox函数完成。
如果分段函数无定义用MsgBox函数给予提示。
(4)当一个文本框控件获得焦点的时候,只要在键盘上按下一个具有ASCII码的按键就会触发一次它的KeyPress事件。
请在这个事件中编一段代码使文本框的文本属性只能含有1,2,3,4,m,j字符。
(5)用户通过inputbox函数获得一位同学的成绩。
通过selectcase语句编程显示该成绩的等级。
(”A”>=90;90>”B”>=80;80>”C”>=70;70>”D”>=60;60>”failed”)
选做部分
(1)比较3个数的大小。
通过3个文本框获得值,使用print方法在窗体上按大小顺序输出。
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
实
验
分
析
教
师
评
阅
成绩:
教师签名:
年月日
安徽建筑工业学院现代教育技术中心实验报告
实验三 循环结构程序设计
(1)
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.掌握对For循环和For循环的循环次数计算方法。
2.掌握各种形式的DO循环的使用规则和执行流程。
3.熟练使用ExitFor、ExitDo、Goto语句和循环嵌套。
实验内容
1.选择回答
①运行下列程序时,如果连击3次cmd1,且输入9,3,16,获得的运行结果分别是:
PrivateSubCmd1_Click()
DimxAsInteger
DimyAsInteger
x=Val(InputBox("输入数据"))
IfInt(Sqr(x))<>Sqr(x)Then
y=x*x
Else
y=Sqr(x)
EndIf
Form1.Text1.Text=Str(y)
EndSub
A.3、3、4B.81、9、256C.3、9、4D.9、3、16
②下面程序运行时
ForM=1To3
ForN=0ToM-1
NextN
NextM
内层循环的循环总次数是()
A.6B.7C.8D.9
③阅读下面的程序段:
x=1
Do
x=x+1
LoopUntilx>1
Printx
程序结果为
A.1B.2C.3D.出错
2.编程题
必做部分
(1)编写程序,计算1----20的阶乘。
(2)计算200-----300范围内能被5和7同时整除的数字之和。
(3)求自然对数e的近似值,要求误差小于0.00001,近似公式为:
e=1+1/1!
+1/2!
+1/3!
+……+1/n!
+……
选作部分
(1)编写程序输出1000之内的所有完数."完数"是指一个数恰好'等于它的因子之和。
如6的因子为1,2,3。
而6=1+2+3,因此6是完数。
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
实
验
分
析
教
师
评
阅
成绩:
教师签名:
年月日
安徽建筑工业学院现代教育技术中心实验报告
实验四 循环结构程序设计
(2)
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.掌握对For循环和For循环的循环次数计算方法。
2.掌握各种形式的DO循环的使用规则和执行流程。
3.熟练使用ExitFor、ExitDo、Goto语句和循环嵌套。
实验内容
1.读程序写结果
①PrivateSubCommand1_Click()
Dimm%,a%,n!
Form=1To10Step2
a=0
Forn=0To9Step2
a=a+2
Nextn
Nextm
Printa
EndSub结果:
②PrivateSubCommand1_Click()
DimiAsInteger,xAsInteger,j%,k%,w%
Text1=""
Fori=1To4
Ifx>12ThenExitFor
Forj=1To3
Fork=1To2
x=x+3
Text1.Text=Text1.Text+Trim(Str(x))
w=x
Nextk
Nextj
Nexti
Printw
EndSub结果:
wText1.Text
③PrivateSubForm_Click()
DimkAsInteger
Dimn%,m%
n=5:
m=1
DoUntilk>n
m=m*2
k=k+1
Loop
Printk,m
EndSub结果:
km
Fori=1To6
IfiMod2=0Then
Print"#";
Else
Print"*";
EndIf
Nexti
以上程序段的输出字符的结果是___________
2.编程题
必做部分
(1)用辗转相除法求两个自然数m、n的最大公约数和最小公倍数。
(用文本框获得输入)
(2)请在窗体适当位置增加以下控件:
一个标签(名称分别为label1,标题为“100-200之间的素数和为”),一个文本框(名称为text1,文本为空白)和1个命令按钮(名称为:
command1,标题为:
“计算”),将窗体名称改为“求素数和”。
要求程序运行后,单击"计算"按钮,在text1文本框中显示出100—200之间的素数和。
(3)在窗体上添加1个文本框,编程统计用户输入文本框的字符串中含有目标串“and”的次数。
(4)求s=1-1/3!
+1/5!
-1/7!
+……+(-1)(n-1)*1/(2n-1)!
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
实
验
分
析
教
师
评
阅
成绩:
教师签名:
年月日
安徽建筑工业学院现代教育技术中心实验报告
实验五 数组和数组的应用
(1)
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.握数组的定义方法,熟悉求数组上下界的函数和关于数组的几个内部函数。
2.熟悉动态数组的定义和动态数组的重定义
3.掌握控件数组的使用方法和熟悉对控件数组的编程
4.掌握排序、插入、查找、删除方法
实验内容
1.选择
①如下数组声明语句,则数组a包含元素的个数有_____。
Dima(3,-2to2,5)
A.120B.75C.60D.13
设有以下程序,程序运行后,单击窗体,输出结果是:
________
optionbase1
PrivatesubForm_click()
Dima,Iasinteger
a=Array(2,3,4,5,6,7,8,9)
Fori=0to3
Printa(5-i);
Nexti
Endsub
A.4321B.5432C.6543D.7654
③设有以下程序,程序运行后,单击命令按钮command1后,输出结果是:
________
Privatesubcommand1_click()
Dimi%,j%,b%(5,5)
Fori=1to3
Forj=1to3
b(i,j)=(i-1)*3+j:
Printb(i,j);
Nextj
Print
Nexti
Endsub
A.123B.234C.147D.123
246345258456
369456369789
2.编程题
必做部分
⑴给一个4*4的二维数组赋值,主、辅对角线上元素为1,其余位置元素为0,赋值后输出。
(2)求有10个元素的一维数组中的最大值,并将其与第一个元素互换位置。
(3)输出菲波那齐数列的前20个元素。
(4)将一个5*5的二维数组元素进行转置,数组元素通过Rnd函数获得,并输出;将转置后的矩阵输出。
选做部分
(1)编程打印5行的杨辉三角形。
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
实
验
分
析
教
师
评
阅
成绩:
教师签名:
年月日
安徽建筑工业学院现代教育技术中心实验报告
实验六 数组和数组的应用
(2)
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.握数组的定义方法,熟悉求数组上下界的函数和关于数组的几个内部函数。
2.熟悉动态数组的定义和动态数组的重定义
3.掌握控件数组的使用方法和熟悉对控件数组的编程
4.掌握排序、插入、查找、删除方法
实验内容
1.读程序,写结果。
①在窗体上画一个命令按钮Command1,然后编写如下代码:
OptionBase1
PrivateSubCommand1_Click()
d=0:
c=10
x=Array(10,12,21,32,24)
Fori=1To5
Ifx(i)>cThen
d=d+x(i)
c=x(i)
Else
d=d-c
EndIf
Nexti
Printd
EndSub
程序运行后,单击命令按钮,输出结果是:
________
OptionBase1
PrivateSubForm_Click()
Dima,b,c,d%(3,3),i%,j%
a=Array(1,4,7):
b=Array(2,5,8):
c=Array(9,10,11)
Forj=1To3:
d(1,j)=a(j):
d(2,j)=b(j):
d(3,j)=c(j):
Nextj
PrintString(20,"-")
Fori=3To1Step–1
Forj=3To1Step-1
PrintFormat(d(i,j),"@@@@@");
Nextj
Print
NextI
EndSub
结果:
③PrivateSubForm_Click()
Dimx%(3,5),i%,j%
Fori=1To3
Forj=1To5
x(i,j)=x(i-1,j-1)+i+j
Nextj
Nexti
Printx(3,5),UBound(x,2)
EndSub
结果:
OptionBase1
PrivateSubCommand1_Click()
Dimy,i!
sumAsInteger
y=Split("7,8,9,10",",")
Fori=1To2Step0.5
sum=sum+y(i)
Nexti
Printsum,y(0)
EndSub
结果:
2.编程题
必做部分
⑴找出有10个元素的一维数组a的最大值和最小值的位置,并把它们对调。
将原数组和处理后的数组输出。
(数组a的元素通过Inputbox函数获得)
(2)利用Rnd函数产生3*3的矩阵并输出,将该二维矩阵与其转置矩阵加和。
输出新的求和矩阵。
(3)将一个有20个元素的一维数组按照小到大的顺序排序,将排序前的数组和排序后的结果输出。
(4)利用二维数组在窗体上输出一个6*6矩阵,该矩阵主对角线上和上三角上的元素为1,其余元素均为0(要求:
数组下界从1开始)。
要求程序运行后,单击“输出”按钮在窗体上输出如图所示的矩阵,并求出两条对角线元素之和,然后将其显示在文本框text1中。
选做部分
⑴在一个有50个元素的随机产生的一维数组中查找关键字等于key的元素的位置和个数。
(Key可自己赋值)
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
过
程
、
程
序
、结
果
实
验
分
析
教
师
评
阅
成绩:
教师签名:
年月日
安徽建筑工业学院现代教育技术中心实验报告
实验七 函数和过程
实验地点:
第 机房 实验时间:
年 月 日
实验目的
1.掌握自定义函数和子过程的定义方法和调用方法。
2.掌握值虚参数和地址虚参数的虚实参数传递方式,注意数组名和数组元素作过程参数的区别。
3.掌握变量的作用域、函数和过程的作用域。
正确区分程序级,模块级、过程级变量。
4.熟悉递归函数的定义方法和求解方法。
5.熟练使用函数、过程来简化程序设计
实验内容
1.读程序,写结果。
①OptionBase1
PrivateSubCommand1_Click()
Dima(4)AsInteger,iAsInteger
Cls
a
(1)=3:
a
(2)=5:
a(3)=-7:
a(4)=1
paa()
Fori=1To4
PrintFormat(a(i),"@@@");
Nexti
EndSub
Subpa(b()AsInteger)
Dimi%,j%,t%
Fori=1ToUBound(b)-1
Forj=1ToUBound(b)-i
Ifb(j)>b(j+1)Then_
b(j)=b(j)+b(j+1):
b(j+1)=b(j)-b(j+1):
b(j)=b(j)-b(j+1)
Nextj
Nexti
EndSub
结果:
②PrivateSubForm_Click()
DimiAsInteger,yAsInteger
i=0
DoWhilei<=4
y=fa(i+1)
i=i+1
Loop
Printy
EndSub
Functionfa(xAsInteger)AsInteger
DimtermAsInteger,iAsInteger
term=1
Fori=1Tox
term=term*i
Nexti
fa=term
EndFunction
结果:
Subtryout(xAsInteger,yAsInteger)
x=x+100
y=y*6
Print“x=”;x,”y=”;y
EndSub
SubForm_Click()
DimaAsInteger,bAsInteger
a=10:
b=20
tryouta,b
Print“a=”;a,”b=”;b
EndSub
运行程序,单击窗体Form1,在窗体上显示:
结果:
编写一个计算矩形面积的Sub过程,然后调用该过程计算矩形面积。
PrivateSubForm_