课程名称: 实验报告1 成绩评定: 实验项目名称: 指导教师实验项目编号: 实验项目类型: 实验地点: 学生姓名: 学号: 学院: 系专业: 实验时间年月日午~月日午一、实验目的1.熟悉VB编程环境,能够建立、编译和运行VB程序。
2.掌握窗体、标签、文本框、命令按钮、图形框的作用、常用属性、事件和方法。
3.理解并掌握赋值语句、掌握表达式的书写规则。
4.掌握使用Inputbox函数和MsgBox消息函数进行输入输出。
5.熟悉VB的数据类型和类型转换。
二、实验内容(一)字幕滚动1.设计如下图所示的界面实现字幕从上到下进行滚动,“欢迎使用VB”是一个字幕标签,两个命令按钮分别实现自动滚动和手动滚动。
a)在窗体水平居中的地方放置一个标签。
b)当字幕向下移出窗体时,重新从窗体顶端开始继续往下移动。
c)单击“手动”按钮一次字幕将向下移动一下,单击“自动”按钮字幕将连续移动,具体移动的速度或幅度、窗体和按钮上的图片由自己设定。
d)以EX1-1分别保存窗体和工程。
2.实验要求a)对于标签应对其什么属性设置什么值才能够使窗体的背景不被遮挡?Backstyle----1b)使标签在窗体中水平居中需要设置什么属性,如何设置?设置的依据是什么?label1.Left ---form1.width/2-label1.width/2c)要想在命令按钮上显示图片,需要设置哪些属性,如何设置?Style -----1d)写出标签从上往下移动的代码,注意,当标签移出窗体后要从窗体上顶端开始继续往下。
Label1.Move Label1.Left, Label1.Top + 50If Label1.Top > Form1.Height Then Label1.Top = 0e)要使Timer控件启用,必须设置哪两个属性,属性值设置为多少?Timer1.Interval=100Timer1.enabled=truef)单击“手动”按钮时,如何使Timer控件停用?需要在什么地方编写代码?请写出代码?Timer1.Interval=0 或 Timer1.enabled=false(二)打开教材实验材料中工程文件EXA05.vbp,完成下面的任务。
1.观察窗体上分别有哪些类的控件,根据观察结果制作下表,表格行数视情况而定。
以EX1-2保存窗体和工程。
控件类控件名称2.启动程序,右图为启动之后的初始界面。
回答下面的问题:① List1中为什么会被添加了两项内容?启动后,窗体从无到有,大小发生改变—form_resize焦点放置在文本框内,触发 text1_gotfocus②单击按钮Command1,List1中又被添加了1项什么内容?单击了命令按钮Command1③拖拽窗体的右下角改变窗体的大小,List1中又被添加了什么内容?窗体Form1的大小改变3.关闭程序,写出你对该程序功能的理解。
通过在各个控件的一些事件里编写代码,当操作或系统触发事件,可将所有的操作记录下来。
(三)BMI计算。
1.编写一个计算人的身体质量指数BMI的程序,计算公式为BMI等于体重(千克)除以身高(米)的平方,计算结果按四舍五入保留2位小数。
运行时的界面如下图所示。
a)设计如图所示界面,两个文本框用于输入体重和身高。
b)点击“计算”按钮或者在文本框中输入回车时,计算BMI的值。
c)当计算完成时将当前时间的BMI值打印在图形框,如果输入错误使用MsgBox弹出对话框提示输入错误。
d)窗体大小设置为固定大小,窗体的标题显示系统当前的时间,使用计时器每隔1秒钟更新Form的Caption。
以EX1-3保存窗体和工程。
2.实验要求a)该程序的计算用到了哪些变量,作用分别是什么?需要在什么地方定义这些变量,请写出这些变量的定义,并注明变量的作用。
窗体通用程序段或”计算”按钮的click事件内声明 ,两个变量用于保存文本框内输入的数值。
一个变量用于保存bmib)进行BMI计算的表达式是什么,使用自己定义的变量来表示。
a = Val(Text1.Text)b = Val(Text2.Text)bmi = a / ((b / 100) ^ 2)c)BMI计算的结果保留2位小数打印在PictureBox图形框中,请写出具体的Print语句。
Picture1.Print Now & "的BMI是" & Round(bmi, 2)d)请写出Timer1_Timer事件的代码,该代码用于控制窗体的标题,使标题显示当前时间。
Form1.Caption = Time课程名称: 实验报告2 成绩评定:实验项目名称: 指导教师实验项目编号: 实验项目类型: 实验地点: 学生姓名: 学号: 学院: 系专业: 实验时间年月日午~月日午一、实验目的1.掌握条件分支中逻辑表达式的书写,掌握If语句的使用方法,包括单分支、双分支和多分支结构。
掌握分支条件语句的嵌套形式,学会运用Select Case语句。
2.掌握For…Next语句的使用方法,能准确、灵活地确定初值、终值及步长。
掌握循环的嵌套。
3.掌握Do…Loop语句的使用方法,理解几种不同形式Do…Loop语句的区别,能够正确描述控制循环的条件。
4.分析理解如何避免死循环。
二、实验内容(一)设计如下图所示界面,实现两个变量的交换。
1.编写一个程序,用于演示两个变量内容的交换,界面设计如下图。
运行通过后用文件名EX2-1分别保存窗体和工程。
a)点击“第一步”按钮将时“数据1”的信息存放在temp变量中。
b)点击“第二步”按钮将时“数据2”的信息移至“数据1”。
c)点击“第三步”按钮时将“Temp”中的信息移至“数据2”。
d)点击“交换”按钮时直接将两个数据交换。
提示:图中的横线为line控件。
2.实验要求a)写出实现变量交换的代码,即“交换”按钮中的代码。
temp = Text1.TextText1.Text = Text2.TextText2.Text = tempb)如何保证按钮“第一步”,“第二步”,“第三步”的事件中都能够使用临时变量的值?填写以下事件的代码将该临时变量定义为窗体级变量Private Sub Command2_Click()’“第一步”按钮temp = Text1.TextText3.Text = tempEnd SubPrivate Sub Command3_Click()’“第二步”按钮Text1.Text = Text2.TextEnd SubPrivate Sub Command4_Click()’“第三步”按钮Text2.Text = tempEnd Sub(二)生成字符1.设计如下图所示界面,并编码实现:(1)窗体加载时,反复通过33至126之间的随机数生成一个ASCII字符,将其连接到文本框Text1中,直到生成的字符为“Z”时为止。
(2)单击“生成Text2中字符”命令按钮时,反复通过33至126之间的随机数生成一个ASCII字符,将其连接到文本框Text2中,直到生成的字符已在Text2中时为止。
(3)单击统计命令按钮时,将文本框Text1和Text2中的大写字母的总数、小写字母的总数、数字的总数和其它字符的总数信息显示在Picture1中。
(4)运行通过后用文件名EX2-2分别保存窗体和工程。
2.实验要求a)设置哪些属性使得文本框能够显示垂直滚动条?Scrollbars---2-verticalb)窗体加载时生成字符的代码需要写在哪个事件中?请写出具体的代码。
Form_load()Text1.Text = ""RandomizeDo Until s = "Z"s = Chr(Int(Rnd * 94) + 33)Text1.Text = Text1.Text & sLoopc)写出生成Text2中字符的代码。
Text2.Text = ""Dos = Chr(Int(Rnd * 94) + 33)Text2.Text = Text2.Text & sLoop Until InStr(Left(Text2.Text, Len(Text2.Text) - 1), s) > 0d)写出统计字符的代码?描述代码中的难点。
Dim Up%, Lw%, Nu%, Oth%s = Text1.Text & Text2.TextFor i = 1 To Len(s)Select Case Asc(Mid(s, i, 1))Case 48 To 57Nu = Nu + 1 ' "数字字符"Case 65 To 90Up = Up + 1 '"大写字母" Case Asc("a") To Asc("z") Lw = Lw + 1 ' "小写字母" Case ElseOth = Oth + 1 '"标点字符" End Select Next i Picture1.Cls Picture1.PrintPicture1.Print "数字字符个数"; Nu Picture1.Print "大写字母个数"; Up Picture1.Print "小写字母个数"; Lw Picture1.Print "标点字符个数"; Oth难点在于各类字符的识别。
e) 你编写代码的过程中有没有出现死机等问题,原因是什么?是怎么解决的?(三) 设计如下图所示界面,并编码实现:1. 利用迭代公式求一个数的立方根,界面如下图。
求a 的立方根的迭代公式为:)**3/(3/2*1n n n n x x a x x +=+迭代到|n 1n x -x +|<0.00001时为止,并用求立方根的算术表达式进行比较。
运行通过后用文件名EXF06分别保存窗体和工程。
a) 对求得的根保留2位小数显示,以EX2-3保存窗体和工程。
2.实验要求a)求解过程中用到了哪些临时变量?定义为哪种数据类型比较合适?为什么?单精度。
足够精度。
数值不大,且精度要求不是很高。
b)求立方根的表达式是什么?If a >= 0 ThenText3 = Format(a ^ (1 / 3), "0.00")ElseText3 = Format(-((-a) ^ (1 / 3)), "0.00")End Ifc)写出用迭代法求立方根的循环语句,并对语句进行简单解释。