Visual Basic 实验报告.docx
《Visual Basic 实验报告.docx》由会员分享,可在线阅读,更多相关《Visual Basic 实验报告.docx(43页珍藏版)》请在冰豆网上搜索。
![Visual Basic 实验报告.docx](https://file1.bdocx.com/fileroot1/2023-7/5/97aaf123-ef95-4627-a7fb-0db4dd2a7497/97aaf123-ef95-4627-a7fb-0db4dd2a74971.gif)
VisualBasic实验报告
V
B
实
验
报
告
班级:
xxxxxxxxxxxxxxxx
学号:
xxxxxxxxxxx
姓名:
xxxxxx
实验1初步认识VB集成开发环境
一.实验目的
1.了解VB6.0中文版的安装方法。
掌握VB的启动方法和退出方法。
2.初步了解和使用VB6.0的集成开发环境。
3.运行第一个VB程序。
二.实验内容
1.VB6.0的启动。
2.退出VB6.0。
3.了解VisualBasic集成开发环境(IDE)的元素组成。
4.建立并运行第一个应用程序。
题设计一个应用程序,输入正方形的边长,计算并输出正方形的面积
要创建的应用程序用户界面
窗体上含有两个标签、两个文本框和两个命令按钮,两个标签分别用于显示文字“边长”和“面积”,两个文本框用于输入数据和显示计算结果
程序功能要求:
运行时,在“边长”文本框中输入某一个数,当单击“计算”按钮时,则在“面积”文本框中显示该数的平方数。
单击“结束”按钮,则结束程序的运行。
1.创建窗体
在默认窗体Form1上添加控件,以构建用户界面
2.在窗体上添加界面的控件
设置控件的方法
在Form1窗体上添加以下控件:
标签Label1:
用于显示文字“边长”
标签Label2:
用于显示文字“面积”
文本框Text1:
用于边长数
文本框Text2:
用于显示计算结果(平方数)
命令按钮Command1:
用于计算输入数的平方,并把结果显示在文本框Text2中
命令按钮Command2:
用于结束应用程序的运行。
3.设置对象属性
在“属性窗口”中进行
设置以下对象的属性:
(1)设置窗体Form1的Caption(标题名)属性为“计算正方形的面积”
(2)设置标签Label1的Caption属性为“边长”
(3)设置标签Label2的Caption属性为“面积”
(4)设置文本框Text1的Text(文本内容)属性为空
(5)设置文本框Text2的Text属性为空
(6)设置按钮Command1的Caption属性为“计算”
(7)设置按钮Command2的Caption属性为“结束”
其他属性采用默认值
4.编写程序代码,建立事件过程
保存窗体文件和工程文件
6.运行程序
单击工具栏上的“启动”按钮,即可采用解释方式来运行程序。
运行后,在“边长”文本框中输入某一个数(如23),单击“计算”按钮时,系统会启动事件过程Command1_Click,则取数和运算,最后把计算结果显示在“面积”文本框(Text2)中。
单击“结束”按钮,可以启动事件过程Command2_Click,则执行End语句来结束程序的运行
《VB程序设计案例教程》实验指导书
实验2窗体和基本控件
一、实验目的
1.掌握设置启动窗体的方法及窗体的加载、卸载方法。
2.掌握命令按钮、文本框和标签控件、时钟控件、图片框、图象框常用属性的设置方法。
3.编写顺序输入结构程序代码。
二、实验要求
按照实验题目的要求,编写程序并上机调试
三、实验设备
计算机、Windows98、VisualBasic6
四、实验原理、方法
上机操作使用VisualBasic6输入并调试程序
五.实验内容
1、编写简单的密码验证程序,假设密码为santa1225,如果密码正确,则显示正确按钮,否则显示错误,退出信息;
2、制作日历;
2、数值的逆转输出;
4、拓展:
制作工作备忘录。
六.实验步骤
1、编写简单的密码验证程序,假设密码为santa1225,如果密码正确,则显示正确按钮,否则显示错误,退出信息;
1)界面设计
2)编写代码
PrivateSubForm_activate()
DimsAsString
s=InputBox("请输入密码:
","密码验证")
Ifs="santal225"Then
MsgBox"密码正确,单击确定继续",vbOKOnly+vbInformation+vbDefaultButton1,"信息"
Print
PrintTab(10);"欢迎使用本系统"
EndIf
Ifs<>"santal225"Then
MsgBox"密码输入错误,退出",vbOKOnly+vbCritical+vbDefaultButton1,"结束"
End
EndIf
EndSub
3、制作日历,如图所示
PrivateSubForm_Load()
Lblyear.Caption=Year(Date)
Lblmonth.Caption=MonthName(Month(Date))
Lblweek.Caption=WeekdayName(Weekday(Date))
EndSub
PrivateSubTimer1_Timer()
DimssAsInteger
Randomize
ss=Int(16*Rnd)
frmcalendar.BackColor=QBColor(ss)
EndSub
拓展
'PrivateSubTimer2_Timer()
'DimsssAsInteger
'Randomize
'sss=Int(16*Rnd)
'Lblyear.BackColor=QBColor(sss)
'EndSub
3、编程实现将任意的一个三位正整数逆转输出。
(例如输入123,输出321)
PrivateSubForm_Click()
DimxAsInteger,aAsInteger,bAsInteger,cAsInteger'声明x、a、b、c为整型变量
x=InputBox("请输入要逆转的数据(3位数):
")
c=x\100'计算百位数
x=xMod100'计算十位和个位数
b=x\10'计算十位数
a=xMod10'计算个位数
x=a*100+b*10+c'逆转后赋值变量x
MsgBox("逆转后数据为:
"+str(x))'输出计算结果
EndSub
4拓展:
设计工作备忘录。
界面设置如下图
程序代码
Dimb1AsString,b2AsString,b3AsString,b4AsString,b5AsString
PrivateSubForm_Load()
Lblweekday.Caption=WeekdayName(Weekday(Now))
Lbldate.Caption=Date
DimkeyAsString
Constpassword="memo123"
key=InputBox("请输入密码:
","备忘录")
Ifkey=passwordThen
txtmon.Enabled=True
txttue.Enabled=True
txtwed.Enabled=True
txtthu.Enabled=True
txtfri.Enabled=True
Imgb1.Enabled=True
Imgb2.Enabled=True
Imgb3.Enabled=True
Imgb4.Enabled=True
Imgb5.Enabled=True
EndIf
EndSub
PrivateSubImgb1_Click()
b1=txtmon.Text
answer=MsgBox("星期一备忘录已保存",0+64+0,"备忘录")
EndSub
PrivateSubImgb2_Click()
b2=txttue.Text
answer=MsgBox("星期二备忘录已保存",0+64+0,"备忘录")
EndSub
PrivateSubImgb3_Click()
b3=txtwed.Text
answer=MsgBox("星期三备忘录已保存",0+64+0,"备忘录")
EndSub
PrivateSubImgb4_Click()
b4=txtthu.Text
answer=MsgBox("星期四备忘录已保存",0+64+0,"备忘录")
EndSub
PrivateSubImgb5_Click()
b5=txtfri.Text
answer=MsgBox("星期五备忘录已保存",0+64+0,"备忘录")
EndSub
PrivateSubTimer1_Timer()
lbltime.Caption=Time()
Imgpicture.MoveImgpicture.Left-1000
IfImgpicture.Left<=0Then
Imgpicture.Left=5880
EndIf
EndSub
PrivateSubtxtfri_Click()
txtfri.Text=b5
answer=MsgBox("单击左边按钮保存修改",0+64+64,"备忘录")
EndSub
PrivateSubtxtmon_Click()
txtmon.Text=b1
answer=MsgBox("单击左边按钮保存修改",0+64+64,"备忘录")
EndSub
PrivateSubtxtthu_Click()
txtthu.Text=b4
answer=MsgBox("单击左边按钮保存修改",0+64+64,"备忘录")
EndSub
PrivateSubTxttue_Click()
txttue.Text=b2
answer=MsgBox("单击左边按钮保存修改",0+64+64,"备忘录")
EndSub
PrivateSubtxtwed_Click()
txtwed.Text=b3
answer=MsgBox("单击左边按钮保存修改",0+64+64,"备忘录")
EndSub
七、实验报告及记录格式
实验报告中必须有完整的程序清单,程序中必须有适当的注释,程序的运行结果。
按山东科技大学《实验报告》格式填写实验报告
八、实验注意事项
1.输入程序时应严格注意大小写。
2.注意记录编译调试过程中的出错信息和改正结果。
3.爱护机器,遵守规章制度。
九、思考题
如果让日历中的时间显示颜色变化,如何编程?
《VB程序设计案例教程》实验指导书
实验3、4程序设计基础
一、实验目的
掌握使用VisualBasic6编程语法
二、实验要求
按照实验题目的要求,编写程序并上机调试
三、实验设备
计算机、Windows98、VisualBasic6
四、实验原理、方法
上机操作使用VisualBasic6输入并调试程序
五、实验内容
题1:
求一元二次方程ax2+bx+c=0的解
2.学生奖励:
满足下列三个条件之一者获奖。
1)所考5门课的总分超过450分;2)每门课的成绩都在88分以上;3)前3门(主课)的成绩都在95分以上,其他两门(非主课)的成绩都在80分以上。
输入某学生5门课的成绩s1、s2、s3、s4、s5,判断他是否能够获奖。
3.有一根长度为321米的钢材料,要将它截取成长度分别为17米和27米的a、b两种短料,每种至少1段,问分隔成a,b各多少段后,剩余的残料r最小?
4.:
试编程实现当连续单击窗体Forml时,窗体背景颜色在红、绿、蓝三种颜色之间循环改变。
题5:
设计网络课程
六、实验步骤
题1:
求一元二次方程ax2+bx+c=0的解
(1)分析:
方程的解有以下几种可能:
若a=0,不是二次方程
若b2-4ac=0,有两个相等实根
若b2-4ac>0,有两个不等实根
若b2-4ac<0,有两个共轭复根
(2)程序框图程序框图
程序框图也称程序流程图,它能直观地表示程序的处理步骤,是一种描述算法的
(3)建立应用程序的用户界面和设置对象属性
(4)编写程序代码
PrivateSubCommand1_Click()
DimaAsSingle,bAsSingle,cAsSingle
DimDAsSingle,X1AsSingle,X2AsSingle
DimRAsSingle,PAsSingle
a=Val(Text1.Text)'取数据a
b=Val(Text2.Text)'取数据b
c=Val(Text3.Text)'取数据c
Ifa=0Then'当a=0
Text4.Text="不是二次方程"
Text5.Text="不是二次方程"
Else'a<>0
D=b*b-4*a*c
R=-b/(2*a)
IfD=0Then'D=0
Text4.Text=R
Text5.Text=R
ElseIfD>0Then'D>0
X1=(-b+Sqr(D))/(2*a)
X2=(-b-Sqr(D))/(2*a)
Text4.Text=X1
Text5.Text=X2
Else'D<0
P=Sqr(-D)/(2*a)
Text4.Text=R&"+"&P&"i"
Text5.Text=R&"-"&P&"i"
EndIf
EndIf
EndSub
题2.
PrivateSubCommand1_Click()
Dims1AsSingle,s2AsSingle,s3AsSingle,s4AsSingle,s5AsSingle
DimpAsString
s1=Val(InputBox("请输入第1门课的成绩:
","输入框",0))
s2=Val(InputBox("请输入第2门课的成绩:
","输入框",0))
s3=Val(InputBox("请输入第3门课的成绩:
","输入框",0))
s4=Val(InputBox("请输入第4门课的成绩:
","输入框",0))
s5=Val(InputBox("请输入第5门课的成绩:
","输入框",0))
t1=(s1+s2+s3+s4+s5>=450)
t2=(s1>=88Ands2>=88Ands3>=88Ands4>=88Ands5>=88)
t3=(s1>=95Ands2>=95Ands3>=95Ands4>=80Ands5>=80)
Ift1Ort2Ort3Thenp="可以获奖!
"Else_
p="不能获奖!
"
q=Str(s1)&","&Str(s2)&","&Str(s3)&","&Str(s4)&","&Str(s5)&Chr(13)&p
Label1.Caption="该生五门课的成绩分别是:
"&Chr(13)&q
EndSub
题3.
1)分析:
该题利用“试凑法”通过二重循环求残料r的最小值正数,残料不可能是负数。
程序如下:
2)编程:
PrivateSubCommand1_Click()
Dima%,b%,r!
ia%,ib%
r=321‘最小值初值取钢材料的长度
Forb=1To321\27‘b最多的段数
Fora=1To321\17-b‘a最多的段数
t=321-b*27-a*17‘当前的残料
Ift>0Andtr=t‘求最短的残料
ia=a‘最短残料时a的段数
ib=b‘最短残料时b的段数
EndIf
Nexta
Nextb
Printia,ib,r
EndSub
3)运行
题4
(1)算法分析:
程序设计的关键是要在窗体的Click事件过程中,根据当前窗体的背景色来决定变成何种背景颜色。
在设计阶段,将窗体Forml的初始背景色可设置为红色
(2)编写程序代码如下:
PrivateSubForm1_Click()
Dimnowcolor,nextcolorAsLong
nowcolor=Forml.BackColor‘读取当前窗体的背景色(backcolor)的值
Ifnowcolor=vbRedThen‘根据当前颜色调整新的背景色
nextcolor=vbGreen
ElseIfnowcolor=vbBlueThen
nextcolor=vbRed
Else
MsgBox”窗体背景色错误!
”
ExitSub
EndIf
Forml.BackColor=nextcolor‘变更背景色
题5:
设计网络课程
1)界面设置
2)编写程序代码
DimselAsString,smeAsString,shiAsString
PrivateSubchkel_Click()
Ifchkel.Value=1Then
sel=chkel.Caption
Else
sel=""
EndIf
lblmodule.Caption=Trim(sel+Space
(2)+sme+Space
(2)+shi)'trim()去掉字符串两端的空格
EndSub
PrivateSubchkhi_Click()
Ifchkhi.Value=1Then
shi=chkhi.Caption
Else
shi=""
EndIf
lblmodule.Caption=Trim(sel+Space
(2)+sme+Space
(2)+shi)'trim()去掉字符串两端的空格
EndSub
PrivateSubchkme_Click()
Ifchkme.Value=1Then
sme=chkme.Caption
Else
sme=""
EndIf
lblmodule.Caption=Trim(sel+Space
(2)+sme+Space
(2)+shi)'trim()去掉字符串两端的空格
EndSub
PrivateSuboptcsh_Click()
lblprompt.Caption=Space(4)&optcsh.Caption&"——"'space(4)函数产生4个空格。
EndSub
PrivateSuboptvb_Click()
lblprompt.Caption=Space(4)&optvb.Caption&"——"'space(4)函数产生4个空格。
EndSub
PrivateSuboptvc_Click()
lblprompt.Caption=Space(4)&optvc.Caption&"——"'space(4)函数产生4个空格。
EndSub
七、实验报告及记录格式
实验报告中必须有完整的程序清单,程序中必须有适当的注释,程序的运行结果。
按山东科技大学《实验报告》格式填写实验报告
八、实验注意事项
1.输入程序时应严格注意大小写。
2.注意记录编译调试过程中的出错信息和改正结果。
3.爱护机器,遵守规章制度。
九、思考题
输入三个数a、b、c,求出其中最大数
《VB程序设计案例教程》实验指导书
实验5数组
一、实验目的
1.掌握使用VisualBasic6循环结构。
2.数组的应用
二、实验要求
按照实验题目的要求,编写程序并上机调试
三、实验设备
计算机、Windows98、VisualBasic6
四、实验原理、方法
上机操作使用VisualBasic6输入并调试程序
五、实验内容
1.编程实现矩阵的转置(以3×3的矩阵为例)
A=
转置后:
B=
2.通过键盘输入某班级30名学生的数学成绩(0~100之间的整数),每个数据按前后次序对应学生的学号,求每位同学的成绩、总成绩、平均成绩、最高成绩、最低成绩。
六、实验步骤
题1编程实现矩阵的转置(以3×3的矩阵为例)
A=
转置后:
B=
1)算法分析:
矩阵转置A和B中的元素不变,改变的是元素的输出位置,即B(i,j)=A(j,i)
2)事件过程编写如下:
PrivateSubForm_Click()
DimA(3,3)AsInteger,B(3,3)AsInteger
DimiAsInteger,jAsInteger
Print"转置前;"
Fori=1To3
Forj=1To3
A(i,j)=Int(Rnd*10)
PrintA(i,j);
Nextj
Print
Nexti
Print"转置后:
"
Fori=1To3
Forj=1To3
B(i,j)=A(j,i)
PrintB(i,j);
Nextj
Print
Nexti
EndSub
3)程序运行结果如图所示
题2通过键盘输入某班级30名学生的数学成绩(0~100之间的整数),每个数据按前后次序对应学生的学号。
试编写一个程序统计该课程的总分、平均分、最高分、最低分及每位同学的成绩。
1)算法分析:
(1)定义一个数组,用于存放数学成绩;
(2)最高分、最低分、总分、平均分的计算方法同前。
2)事件过程编写:
PrivateSubForm_Click()
Dimscore(30)AsInteger
DimnAsInteger,smaxAsInteger,sminAsInteger
DimsumAsInteger,aveAsSingle
DimstrAsString
Forn=1To30
str="请输入第"&n&"个学生的成绩"
score(n)=