人人范文网 范文大全

vb

发布时间:2020-03-03 16:07:58 来源:范文大全 收藏本文 下载本文 手机版

输入的数字与事先设置的数字相同,则提示“输入正确” 否则显示“错了” , 。  代码编写: 代码

Private Sub Command1_Click() x = Val(InputBox("输入一个 1~10 之间的整数")) If x = Text1 Then MsgBox "输入正确" Else MsgBox "错了" End If End Sub 遇到的主要问题及分析:

【提高题 1】修改上面程序,当输入的值比设置的数字小,显示“错了,你猜得小了。 ; ” 21 输入的值比设置的大,则显示“错了,你输入的太大了。 请直接在上题修改) ” ( 【提示】本实验属于多分支结构。

Private Sub Command1_Click() x = Val(InputBox("输入一个 1~10 之间的整数")) If x = Text1 Then MsgBox "输入正确" ElseIf x

Private Sub Command1_Click() Dim a!, b!, c! a = Val(InputBox("输入第 1 条边长")) b = Val(InputBox("输入第 2 条边长")) c = Val(InputBox("输入第 3 条边长")) If a + b > c And b + c > a And a + c > b Then Print "此三边可构成三角形" Else Print "此三边不可构成三角形" End If End Sub 遇到的主要问题及分析:

【选作题】课堂示例“字符串替换” 使用多个函数完成时,如果源字符串中没有要查找 , 的子串,程序就会出错。修改程序当没有要查找的子串时,弹出“没有找到的”提示框,并 将源串放到结果文本框中。

22 【提示】InStr(C1,C2) 在 C1 中查找 C2 是否存在,若找不到,结果为 0。  代码编写: 代码

Private Sub Command1_Click() i = InStr(Text1, Text2) If i = 0 Then MsgBox "没有找到" Label5 = Text1 Else k = i + Len(Text2) Ls = Left(Text1, iSqr(d)) / (2 * a) ElseIf d = 0 Then x1 = -b / (2 * a) x2 = x1 Else MsgBox "无实根" End If Pri nt "x1="; x1, "x2="; x2 End Sub

2、输入一个字符,判断该字符是字母、数字还是其他字符,并作相应的显示。 【要求】分别使用两种语句 If ……ElseIf……和 Select Case 来完成。 24 代码 If ……ElseIf 语句实现

Private Sub Command2_Click() a = InputBox("输入一个字符") If a >= "a" And a = "A" And a = "0" And a

思考: 编写一个对文本框中输入的字符进行转换的 程序。 窗体如上右图所示。 将小写字母转换成大写字母, 大写字母转换成小写字母,空格不转换,其余字符转换 成”*”。要求每输入一个字符马上 进行判断和转换,结果

显示在 Text2 中。  代码编写: 代码

Private Sub Text1_Change() a = Right(Text1, 1) Select Case a Case "a" To "z" Text2 = Text2 + UCase(a) Case "A" To "Z" Text2 = Text2 + LCase(a) Case " " Text2 = Text2 + " " Case Else 25 遇到的主要问题及分析:

Text2 = Text2 + "*" End Select End Sub

3、输入一个数字(1-7) ,用英文显示对应的星期一至星期日。 【提示】用 Select Case 语句来实现  代码编写: 代码 Private Sub Command1_Click() a = Val(InputBox("输入星期几")) Select Case a Case 1 MsgBox "Monday" Case 2 MsgBox "Tuesday" Case 3 MsgBox "Wednesday" Case 4 MsgBox "Thursday" Case 5 MsgBox "Friday" Case 6 MsgBox "Saturday" Case 7 MsgBox "Sunday" Case Else MsgBox "输入错误" End Select End Sub 遇到的主要问题及分析:

4、编程实现简单计算器功能。要求程 序运行后,分别输入两个操作数以及运算 符(+、-、*、/)后,单击“计算”按钮, 则自动计算出表达式的结果,并显示在运 算结果对应的文本框中。 【提示】除数为 0 时要做适当处理。  代码编写:

26 代码

Private Sub Command1_Click() Select Case Text2 Case "+" Text4 = Text1 + Text3 Case "-" Text4 = Text1i + 1, 1); Next i End Sub 遇到的主要问题及分析:

2、完善程序,输入一个数,判断该数是否为完数,并把其因 子输出,如图所示。 (一个数如果恰好等于它的因子之和,这个数 就被称为“完数” 一个数的因子是指除了该数本身以外能够被其整 。 除的数。 )例如 6 是一个完数,因为 6=1+2+3。

Private Sub Command1_Click() m = Val(Text1.Text) For i = 1 To m1 【4】 If m Mod i = 0 Then Picture1.Print "+"; i; Next i Else Picture1.Print m & "不是完数" End If End Sub 【5】 Picture1.Print 【3】 【4】 【5】

3、编写程序,实现求解把 50 元钱分成一元、二元和五元的纸币且纸币张数共为 20 张的分法有多少种? 代码

Private Sub Form_Click() Print "5 元" "2 元" "1 元" n=0 For x = 0 To 10 For y = 0 To 25 z = 20y If 5 * x + 2 * y + z = 50 And z >= 0 Then Print x, y, z: n = n + 1 Next y Next x Print "分法有" & n & "种" End Sub 遇到的主要问题及分析:

4、参考下图的算法,编写程序,输入两个正整数,求这两个数的最小公倍数。 代码

遇到的主要问题及分析: 课本 p87 页 37 【提高题 1】输出斐波那契级数

1、

1、

2、

3、

5、

8、13……,当某项的数值大于或等 于 30000 时结束。此级数项的规律是:前两项的值各为 1,从第 3 项起,每一项是前 2 项 的和。 (要求一行输出 6 项) 。 代码

Private Sub Form_Click() a=1 b=1 Print a; b; i=2 Do While c

【提高题 2】P269 实验 D

二、5 编写程序,求 Sn=a+aa+aaa+…(n 个 a)的值,其中 n 是表示 a 的个数, 是 a 【1, 之间的随机正整数。 9】 例如: a=2,n=5 时, 当 sn=2+22+222+2222+22222 【提示】为得到不断重复的数 t,可在循环体利用通项: t = t * 10 + a 代码 Private Sub Form_Click() a = Int(Rnd * 9) + 1 n = Int(Rnd * 6) + 5 s=0 t=0 For i = 1 To n t = t * 10 + a s=s+t 遇到的主要问题及分析: „[1,9] „[5,10] 38 Print t; Next i Print s End Sub 【选作题 1】完善程序,使之能在窗体上显示有规律的 图形。

Private Sub Form_Click() Dim i% For i = 1 To Print Next i End Sub 【提示】使用 Tab 函数定打印位置,可使用的函数还有:String, Right,CStr 1)循环体内显示用 String 函数来实现,找出循环控制变量与 Sting 函数内个数的关系,即 String(j, Cstr(i) 。 2) 为了使最后一行的 0 显示, 若按照上面的通式, 则最后一行显示的是 1, 则要对公式进行修改, String 即 (j, Right (cstr(i)) )。 【1】

0 【2】 Tab(201, Trim(Right(Str(i), 1))) 【选作题 2】 用两重循环在窗体上显示如右图结果。

【提示】两种方法解该题: 方法一:利用数值实现,就是将各列列号通过运算连接起来。 方法二:利用 Mid 函数取字符串子串来实现,即从字符串中不断取所需的 子字符串而得。 还要注意行号与负号的关系。

代码

Private Sub Form_Click() s = "123456" For i = 1 To 6 For j = 1 To i If i Mod 2 = 1 Then Picture1.Print " " & Left(s, j) & " Else Picture1.Print "-" & Left(s, j) & " End If Next j Picture1.Print Next i End Sub 遇到的主要问题及分析: "; "; 39 实验心得体会 成绩:

教师签名: 实验日期 年 月 日 实验八 实验目的: 常用控件

1.掌握单选按钮、复选框的重要属性、事件和方法。 2.掌握框架的使用。 3.掌握列表框、组合框的重要属性、事件和方法。

实验内容

1、窗体上有两个复选框,名称分别为 Chk1 和 Chk2,标题分别

为“能被 5 整除”和“能被 6 整除” 一个命令按钮 Command1,以及一 , 个文本框 Text1。编写适当的事件过程,使得程序运行时对复选框 进行选择,单击命令按钮,可根据下表的规定,计算 100~200 之间符合要求的整数之和, 把结果显示在 Text1 中。

选择 Chk1 Chk2 Chk1 和 Chk2 都不选择 要求 只能被 5 整除 只能被 6 整除 既能被 5 整除,也能被 6 整除 只能被 1 整除

 代码编写: 代码 遇到的主要问题及分析: 40 Dim s1, s2 Private Sub Check1_Click() s1 = 0 For i = 100 To 200 If i Mod 5 = 0 Then s1 = s1 + i Next i End Sub Private Sub Check2_Click() s2 = 0 For i = 100 To 200 If i Mod 6 = 0 Then s2 = s2 + i Next i End Sub „定义全局变量 „每次选择前先清 0 „每次选择前先清 0 Private Sub Command1_Click() Text1 = 0 „每次赋值前先清 0 If Check1.Value = 1 And Check2.Value = 1 Then Text1 = s1 + s2 ElseIf Check1.Value = 1 Then Text1 = s1 ElseIf Check2.Value = 1 Then Text1 = s2 Else For i = 100 To 200 Text1 = Text1 + i Next i End If End Sub

2、窗体上包含有两个名称分别为 Op1 和 Op2 的单选按钮,

标题分别为“100-200 的素数和” 和“200-400 的素数和” 还有 。 一个文本框和一个命令按钮,标题为“求和” 程序运行后,选中 。 某个单选按钮,并单击“求和”按钮,则计算指明范围内的素数之和,并显示在文本框中。  代码编写: 代码

Private Sub Command1_Click() If Option1 Then For m = 100 To 200 Tag = True 41 遇到的主要问题及分析:

For i = 2 To m1 If m Mod i = 0 Then Tag = False Next i If Tag Then s = s + m Next m End If Text1 = s End Sub

3、P237,实验 E-6,窗体的标题栏显示“选课界面”,窗体

上有 两个列表框,左边是 List1,右边是 List2,其中 List2 中的列表 项按字母顺序升序显示。 窗体下方有一个文本框, 名为 Text1。 请你: 1) 写出程序中需要的属性设置。 2)程序运行后,在列表框 List1 中添加“Visual Basic 程序” “数据结构” “操作系 、、统 ” “硬 件技术 基础 ” “计 算机 网络” “ 多媒 体技 术 ”和 “ C++程 序设计 ” 七个选 项。 、、、(使用 Form_Load()事件) 。

3)要求单击 List1 中的某一项时,该项显示在 Text1 中。 4)双击 List1 中的某一项时,该项从 List1 中删除,添加至 List2。当 List2 中 的内容已满 5 门时,不允许再添加并提示“超过 5 门课程,不能再选了!(要注意条件的放 。 ” 置位置问题)  需要的属性设置

表 9.1 实验 1 属性设置 对象名称 属性 属性值 42 List2 Sorted True  代码编写: 代码 Private Sub Form_Load() List1.AddItem "Visual Basic 程序" List1.AddItem "数据结构" List1.AddItem "操作系统" List1.AddItem "硬件技术基础" List1.AddItem "计算机网络" List1.AddItem "多媒体技术" List1.AddItem "C++程序设计" 遇到的主要问题及分析:

End Sub „单击列表框 List1 Private Sub List1_Click() Text1 = List1.Text End Sub „双击列表框 List2 Private Sub List1_DblClick() If List2.ListCount = 5 Then MsgBox "超过 5 门课程,不能再选" Else List2.AddItem List1.Text List1.RemoveItem List1.ListIndex End If End Sub

4、窗体上有一个名为 List1 的列表框(允许做多项 选择) ,一个名称为 Text1 的文本框,三个命令按钮,标 题分别为“求全部项目和” “求选定项目之和” “删除选定项 , , 目” 。

【要求】

1)程序运行后,将把 1~100 之间能够被 7 整除的数添加到列表框中。 2)单击“求全部项目和”按钮,则对 List1 中的数进行累加求和,并在文本框中显示 计算结果。

43 3) 单击“求选定项目之和”按钮,则对 List1 中的选中的项目进行累加求和,并在文 本框中显示计算结果。 4) 单击“删除选定项目”按钮,则删除 List1 中的选中的项目。 代码

Private Sub Form_Load() „显示 7 的倍数 For i=1 To 100 If i Mod 7 =0 Then 【1】 End If Next i End Sub List1.AddItem i 遇到的主要问题及分析: 如果列表框要多选, multiselect 属性设置为 1 „列表框所有项目之和 Private Sub Command1_Click() Sum% = 0 For i = 0 To Sum = Sum + Next i 【4】 text1=sum End Sub „列表框选定项目之和 Private Sub Command2_Click() Sum% = 0 For i = 0 To 【6】 List1.ListCount1 Text3.SelLength = Len(Text1.Text) Text3.seltext = Text2.Text Then '不需要多次替换则退出 If option1=true Exit Do End If k = a + m End If Loop End Sub until a=0 '为继续查找确定起始点 '找不到退出

【选作题】设计一个运行界面如下图所示的程序。在“主菜”组合框中选择一种食品(不可 输入) ,单击“添加主菜”按钮即可将该项内容添加到右边的列表框;在“饮料”组合框中选择 或输入一种饮料,单击“添加饮料”按钮即可将该项内容添加到右边的列表框。在右边的列 表框中选择某项并单击“不要这个

46 【要求】右边所点的菜单中不允许出现重复的菜。 【提示】添加的时候要先判断是否菜单中是否已经有了。  代码编写: 代码

Private Sub Command1_Click() f = True For i = 0 To List1.ListCount – 1 „菜单中不允许出现重复的菜 If List1.List(i) = Combo1.Text Then f = False Next i If f = True Then List1.AddItem Combo1.Text Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Command2_Click() List1.AddItem Combo2.Text „饮料可以重复 Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Command3_Click() List1.RemoveItem List1.ListInd ex Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Command4_Click() List1.Clear Text1 = "你点了" & List1.ListCount & "种食物" End Sub Private Sub Form_Load() Combo1.AddItem "。。。。" Combo2.AddItem "。。。。" End Sub 遇到的主要问题及分析: Style=2 组合框, 不是列表框 47

实验心得体会 成绩: 教师签名: 48 实验日期 年 月 日 实验九 实验目的: 常用控件(续)

1、掌握图片框、图像框、计时器的属性和方法和事件及使用。

2、掌握滚动条的重要属性、事件和方法。

3、了解图片框和图像框的区别。掌握形状控件的重要属性以及使用。 实验内容

1、窗体上有一组合框 Combo1,一文本框 Text1,三个 命令按钮,要求: 1)程序一开始运行时,Combo1 中有若干选项,命令 按钮"确定"不可用 2) 选中 Combo 中某个项目, 单击"修改", 则将该项目复制到 Text1 中 (可在 Text1 中修改) ,同时"确定"按钮可用 3) 单击"确定"将修改过的 Text1 替换组合框中原有的内容, 同时"确定"按钮不可用.4)单击"添加",将 Text1 中的内容添加到组合框中

【提示】修改组合框中选中的内容要通过代码来重新设置 Combo1.List(Combo1.ListIndex)值 的,而不能直接设置 Text 属性值。  代码编写: 代码 遇到的主要问题及分析: 49

2、在窗体的 Label 中每隔 2 秒显示“你好中国” 即每隔 2 秒显示一次标签) ( 。 【提示】 1)设置时钟控件的 Interval 值使程序每隔 2 秒,调用一次计时器的 Timer 事件。 2)将标签的状态设置成:显示……隐藏……显示……隐藏……  代码编写: 代码 遇到的主要问题及分析:

3、窗体上有一图片框,名为 P1。单击图片框,则在图片框上显示“单击图片框” 单击 。 窗体,则在窗体上显示“单击窗体” 要求不能用变量,每个事件只允许写一句代码。 。  代码编写: 单击图片框 单击图片框

4、如右图所示,将滚动条的范围设置为 0~1000,在文 本框中输入一个数后按下“移动”按钮。 如果文本框中是正数则 滚动条向右移动相应刻度,但若超过最大刻度则 MsgBox 提 示“输入值太大” 如果文本框中是负数则滚动条向左移, ; 超过最小刻度则不再动, MsgBox 并 提示。 【提示】假定滚动条当前位置的 Value 值为 200,在文本框输入 300,单击“移动”按 钮,则滚动条的值应变为 500;再输入-800,再单击“移动”按钮,则滚动条的值应变为 0,并用 MsgBox 提示“已移动到最左边”.50

 代码编写: 代码 遇到的主要问题及分析:

5 、窗 体 上 添 加 一 Shape 形 状 控 件 , 名 为 “ Shape1 ”, 两 个 名 称 分 别 为 Command1,Command2 的命令按钮, 标题分别为“圆”和“红色边框”

编写代码, 。 程序运行时, 单击“圆”按钮则 Shape 控件显示一个圆。单击“红色边框”按钮,则将 Shape 控件的边框颜 色设为红色。 【提示】分别设置 Shape 控件的 Shape 属性和 BorderColor 属性  代码编写: 单击“圆”按钮 单击“红色边框”按钮

6、如右图所示,编写程序,使窗体中的两个汽车图形 能够相向运动直至相撞。此时屏幕弹出一个消息窗口显示 “某年某月某日发生交通意外” 显示日期为当前系统日期。 。 【提示】根据两车的位置来判断是否相撞。  代码编写: 代码

遇到的主要问题及分析: 51 【选作题 1】窗体有一个矩形和一个圆,还有一水平滚动条和一垂直滚动条。程序运行时,移动某个 滚动条的滑块,可使圆作相应方向的移动。滚动条 刻度值的范围是圆可以在矩形中移动的范围。 (如 右图所示) 。 【提示】水平滚动条和垂直滚动条的 Min 和 Max 属性值与矩形的位置及大小有关,最好 通过代码在 Form_Load 事件中设置。  代码编写: 代码

遇到的主要问题及分析:

【选作题 1】模拟 Windows 屏幕保护程序(如下图所示)。 可按下面提示分步实现(也可以以你的聪明才 智,一步到位) :   文字从右往左运动,完全移出屏幕时同从屏幕最右边 重新出现并继续左移。 文字能像弹球一样,碰到窗体边缘时能反弹。 每次碰到窗体边缘反弹时字体的颜色和大小随机变化。

【提示】移动控件的位置有两种方法(其中 w 和 h 分别表示水平方向或垂直方向移动的距 离):

Label1.Left=Label1.Left + h Label1.Top=Label1.Top + v Label1.Move Label1.Left + h Label1.Move Label1.Left, Label1.Top + v 52 重要提示:如果水平方向移动的距离为 h,则当控件碰到窗体的边缘时,控件应该向 相反的方向移动,即 h=-h,垂直方向也一样。  代码编写: 代码

遇到的主要问题及分析: 实验心得体会 成绩: 教师签名: 53 实验日期 年 月 日 实验十 实验目的: 数组

1、掌握数组的声明、数组元素的引用。

2、掌握静态数组和动态数组的使用差别。

3、掌握数组的基本操作。应用数组解决与数组有关的常用算法。

实验内容:

1、随机产生 10 个 200 到 300 的整数,求最大值及其下标、最小值及其下标、平均值, 并显示数组的所有元素值(按每行输出 5 个元素)以及最大值及其下标、最小值及其其下 标和平均值。  代码编写: 代码

Private Sub Form_Click() Dim a(1 To 10) As Integer t=0 For i = 1 To 10 a(i) = Int(Rnd * 101 + 200) Print a(i); If i Mod 5 = 0 Then Print t = t + a(i) Next i Print "平均值为:"; t / 10 Max = a(1): imax = 1 Min = a(1): imin = 1 For i = 2 To 10 If a(i) > Max Then Max = a(i): imax = i If a(i)

For i = 1 To 5 x = a(i) a(i) = a(i + 5) a(i + 5) = x Next i For i = 1 To 10 Print a(i); If i Mod 5 = 0 Then Print Next i 遇到的主要问题及分析:

2)如果要求这 10 个数字不重复呢?。 (提示:要产生不重复的整数,则需要每产生一个整数,就 在数组中查找新产生的数据是否已经存在数组中了,若有,则重新产生;若没有,则将产生的整数放入 数组中,下标加 1) 遇到的主要问题及分析: 代码 Private Sub Form_Click() Dim a(1 To 10) As Integer a(1) = Int(Rnd * 101 + 200) Print a(1); For i = 2 To 10 t = Int(Rnd * 101 + 200) For k = 1 To i1 If t

代码

Private Sub Form_Click() Dim a(1 To 10) As Integer a(1) = Int(Rnd * (9065 + 1) + 65) For k = 1 To i65 + 1) + 65) k=0 End If Next k a(i) = t Print Chr(a(i)), If i Mod 5 = 0 Then Print Next i End Sub 遇到的主要问题及分析: 不重复的方法同 2),随机 数范围[65,90]

2、分类统计输入一串字符,统计各字母出现的次数,不区分字母大小写。

【提示】 (1)统计 26 个字母出现的个数,必须声明一个具有 26 个元素的数组,每个元素的下标表示相应 的字母,元素的值表示对应字母出现的次数。 (2)从输入的字符串中逐一取出字符,转换成大写字符(使得大小写不区分) ,进行判断。

 代码编写: 代码

遇到的主要问题及分析: 课本 121 页例 5.14 56 【进一步思考】 输入 20 个百分制成绩, 统计并输出各分数段人数, 0~

59、60~6

9、70~7

9、即 80~8

9、90~100。

代码

Private Sub Command1_Click() Dim cj( 1 To 20) As Integer, a(5 To 9) As Integer For i = 1 To 20 cj(i) = Val(InputBox("请输入成绩")) Select Case cj(i) \ 10 Case 0, 1, 2, 3, 4, 5 a(5) = a(5) + 1 Case 6 a(6) = a(6) + 1 Case 7 a(7) = a(7) + 1 Case 8 a(8) = a(8) + 1 Case 9, 10 a(9) = a(9) + 1 End Select Next i For i = 5 To 9 Print a(i), Next i End Sub 遇到的主要问题及分析:

3、编写程序,输出斐波那契级数

1、

1、

2、

3、

5、8……的前 30 项,要求每行输出 5 个。 (用数组来实现)

【提示】 斐波那契数列的特点是:第

一、第二都是 1,从第三项开始,前面相邻两项之和,构成了后一项。 即 : a(n)=a(n-1)+a(n-2)。

代码 Private Sub Command1_Click() Dim a(30) As Long a(1) = 1 a(2) = 1 For i = 3 To 30 a(i) = a(i1) Next i For i = 1 To 30 Print a(i); If i Mod 5 = 0 Then Print 遇到的主要问题及分析: 整型数会溢出 57 Next i End Sub 【进一步思考】输出斐波那契级数

1、

1、

2、

3、

5、

8、13……,当某项的数值大于或等于 30000 时结束。

代码

Private Sub Command1_Click() a=1 b=1 Print a; b; t=2 Do Until c >= 30000 c=a+b Print c; t=t+1 If t Mod 5 = 0 Then Print a=b b=c Loop End Sub 遇到的主要问题及分析:

【选做题 1】 将二维数组 A 中的 100 个元素分别赋给一维数组 B 的每个元素并打印出 来,要求把 A(1,1)到 A(1,10)依次赋给 B( 1)到 B(10),把 A( 2,1)到 A( 2, 10)依次赋给 B( 11)到 B( 20),……,把 A(10,1)到 A( 10, 10)依次赋给 B(91) 到 B(100)。  代码编写: 代码

Private Sub Command1_Click() Dim a(1 To 10, 1 To 10) As Integer Dim b(1 To 100) As Integer For i = 1 To 10 For j = 1 To 10 b((i1, j1, j) End If Next j Next i For i = 0 To 6 For j = 0 To i Picture1.Print Tab(j * 5); a(i, j); Next j Picture1.Print Next i End Sub 【提高题 1】编写一学生成绩统计程序,用户先输

入学生的人数及科目数, 再输入各位学生的各科课程的考 试成绩, 要求该程序可以计算各个学生的平均成绩及每门 课程的平均成绩。程序保存时

程序运行结果如图所示。

【提示】本题使用动态的二维数组能够较好完成任务,数组 的行号表示学生,列号表示科目,分别对数组的行或列进行求和 即可进行学生科目成绩的统计

代码

Private Sub Command1_Click() Dim a() As Integer x = Val(Text1.Text) '人数 y = Val(Text2.Text) '科目数 ReDim a(x, y) 遇到的主要问题及分析: 59 For i = 1 To x For j = 1 To y a(i, j) = InputBox("第" & i & "位同学的第" & j & "门成绩") Next j Next i For i = 1 To x s=0 For j = 1 To y s = s + a(i, j) Next j Picture1.Print "第"; i; "位同学的平均成绩是"; s / y Next i For i = 1 To y s=0 For j = 1 To x s = s + a(j, i) Next j Picture1.Print "第"; i; "门课的平均成绩是"; s / x Next i End Sub 【提高题 2】矩阵转置。编写程序将 2*3 的矩阵转置,即转换成 3*2 的矩阵。 【提示】使用两个二维数组来完成。  代码编写: 代码

Private Sub Command1_Click() Dim a(2, 3) As Integer, b(3, 2) As Integer For i = 1 To 2 For j = 1 To 3 a(i, j) = InputBox("") Print a(i, j); Next j Print Next i For i = 1 To 2 For j = 1 To 3 b(j, i) = a(i, j) Next j Next i For i = 1 To 3 For j = 1 To 2 Print b(i, j); Next j 60 遇到的主要问题及分析: Print Next i End Sub 实验心得体会 成绩: 教师签名: 61 实验日期 年 月 日 实验十一 实验目的: 数组(续)

1、掌握静态数组和动态数组的使用差别。

2、应用数组解决与数组有关的常用算法。

3、掌握控件数组的使用。

实验内容

1、分别用选择排序法和冒泡排序法实现有 N 个元素数组的排序。N 由键盘输入,数 组元素的值在 1~200 之间,随机产生。  代码编写: 遇到的主要问题及分析: 代码 Dim x( ) as Integer n=val(inputbox(””)) Redim x(n-1) For i=0 to n-1 x(i)=int(rnd*200+1) Next i 选择排序法

参看书 106 页 冒泡排序法 参看书 107 页 62

2、利用 Array 函数给数组 a 赋值(数组元素的个数及每个元素的值自己设定) ,从键 盘上输入一个数据,在数组中进行查找,如果数组中有,则删除数组中的这个元素,如果 没有则提示“没有这个数” 。 代码

遇到的主要问题及分析:

【思考】如果将数组元素读入列表框再做插入或删除其中一个元素,应该怎样编程?

3、输入一系列字符串,按递减次序排列。程序的运行界面如图 11.1 所示。 图形框

图 11.1 实验 3 窗体界面

【提示】 (1)要声明窗体级变量 n(表示放若干个字符串的计数器)及一个字符串数组。 (2)每输入一个字符串,按 Enter 键后将 Text 的内容放到数组中,可用事件: Private Sub Text1_KeyPre(KeyAscii As Integer) If KeyAscii = 13 Then … End If End Sub (3) 单击“排序”按钮,进行排序并显示在图形框中。

 代码编写: 代码

创建数组 遇到的主要问题及分析: 63 排序

【选做题】做一个类似图 11.2 的界面的拨号器。 图 11.2 实验 4 窗体界面 图 11.3 实验 5 窗体界面  代码编写: 代码 遇到的主要问题及分析: 64 【提高题】做一个类似图 11.3 界面的简单计算器,并实现对应的功能。  代码编写: 代码 遇到的主要问题及分析: 实验心得体会 成绩: 教师签名: 65 实验日期 年 月 日 实验十二 实验目的: 顺序文件

1、掌握顺序文件、随机文件和二进制文件的特点和使用。

2、掌握顺序文件的打开、关闭和读写操作。

3、学会顺序文件在应用程序的使用

实验内容:

1、初始窗体上有四个命令按钮两个文本框(如图 11.1 所示) 。要求: 1)建立文件名为“t1.txt”的顺序文件,内容来自文本框 Text1。要求:每按一次回车 键则将文本框 Text1 的内容写入文件,并清除文本框 Text1 的内容,直到文本框 Text1 内输入“END”字符串(不区分大小写),关闭文件。 2) “复制文件” 单击 按钮, “t1.txt” 则把 的顺序文件的内容全部复制到新文件 “t2.txt” 中,并给出相应提示。 (只能使用一个变量,不能使用控件。(如图 12.1) ) 3)单击“合并文件”按钮,则将“t2.txt”内容合并“t1.txt”末尾,给出相应提示。 4)单击“显示”按钮,则把“t1.txt”的内容读出来显示在 Text2 中。

图 12.1 实验 1 窗体各个运行状态界面 66  代码编写: 代码 建立文件

遇到的主要问题及分析: 复制文件 合并文件 显示文件内容

2、完善程序,实现:

1) 按下“读入并计数”按钮,将磁盘中的文件 in.txt 的内容读入显示在文本框中, 并分别统计其中字母、数字和其他符号的数量,将结果显示在 Picture1 中。

67 图 12.2 实验 2 窗体各个运行状态界面及 out 文件内容格式

2) 按下“写入文件”按钮,则将统计结果写入文件 out.txt 中,并给出提示“已写 入文件” 。 Dim sz%, %, sq% Private Sub Command1_Click() Dim c$ Open c = 【1】 '准备读入 '每次读入一个字符 '将读入的字符显示在 Text1 中 '字母 '数字 '读出的是回车或换行符则不计数 '其他符号 【2】 '打开 in.txt 文件 '读入并计数

Do While Not EOF(1) Text1.Text = Text1.Text & c Select Case c Case Case 【3】 【4】 sz = sz + 1 = + 1 Case Chr(10), Chr(13) Case Else sq = sq + 1 End Select Loop 【5】 【6】 Picture1.Print "其他";sq; "个" Close #1 End Sub Private Sub Command2_Click() '将结果显示在 Picture1 中

'结果写入文件 '将结果写入 out.txt 中

Open App.Path + "\out.txt" For Output As #1 【7】 【8】 Print #1,"其他";sq; "个" MsgBox "已写入文件" 【9】 End Sub

3、建立如下图所示包括五个命令按钮、图片框、列表框及标签的程序界面。编程实现 下 列功能: 68 List 列表框 Label 标签 Picture 图片框

1)单击“新建”按钮,弹出 Inputbox 用于输入数组的元素个数 N;随机产生任意 N 个[10,100]的随机整数存入数组 A;并把数组 A 的各元素值显示在图片框中(每行 5 个元素) ;同时写入磁盘文件 MyList.dat(与工程文件和窗体文件位于同一文件夹) 。 2)单击“读取” 按钮,将文件 MyList.dat 的数据读出,存入数组 B,同时添加 到列表框中。 3) 单击“计算” 按钮,计算并在标签上输出数组 B 的最大值、最小值和平均值。 4)单击“添加” 按钮,将最大值、最小值和平均值。追加到“MyList.dat”的 末尾并弹出“已写入文件! ”的提示。 5)单击“退出”按钮,则退出应用程序。  代码编写: 代码

新建

遇到的主要问题及分析: 读取文件 69 计算 添加 退出

【选做题】建立一个多用户的密码登录程序,如下图所示。要求:

1)输入用户名及密码,单击“登录”按钮,则判断该用户名是否存在,如果存在,则进一 步判断密码是否正确。分别给出相应提示信息。 2)输入用户名及密码,单击“注册”按钮,则先判断该用户名是否已有人注册了,如无, 则把用户名和密码添加到文件中;如有人注册,则提示"该用户名已存在,请重新输入!" 3)单击“退出”按钮,则退出应用程序

原始窗体

用户名及密码均正确时提示 用户名正确,密码错误 用户名错误 70  代码编写: 代码 登录 遇到的主要问题及分析: 注册

实验心得体会 成绩: 教师签名: 71 实验日期 年 月 日 实验十三 实验目的:

1、理解自定义函数过程的定义和调用方法;

2、掌握自定义子过程的定义和调用方法;

3、掌握子过程与函数过程的使用差别;

过程 实验内容

1、编写一函数过程 Prime(n),对于已知正整数 n,判断该数是否为素数,函数的返回值 类型为布尔型。 代码

Private Sub Command1_Click() Dim n% Dim z As Boolean n = Val(Text1.Text) z = prime(n) If z Then Print "是素数" Else Print "不是素数" End If End Sub Function prime(n%) As Boolean prime = True For i = 2 To n1 If (n Mod i) = 0 Then prime = False Next i End Function 2) 窗体上包含有两个名称分别为 Op1 和 Op2 的单选按 钮,标题分别为“100-200 的素数和” 和“200-400 的素数 和” 。还有一个文本框和两个命令按钮,标题分别为“求和”和 “写入” 。程序运行后,选中某个单选按钮,并单击“求和”按 钮,则计算指明范围内的素数之和,并显示在文本框中。单击“写入” ,则把结果存入 Out.txt 中。 (要求素数判断必须函数来实现) 。 代码

Dim s As Integer Dim m% s = 0 If Option1 Then For m = 100 To 200 Tag = prime(m) If Tag Then s = s + m Next m End If If Option2 Then For m = 200 To 400 Tag = prime(m) If Tag Then s = s + m Next m End If Text1 = s „全局变量 „主过程,求素数和 Private Sub Command1_Click() 遇到的主要问题及分析: 73 End Sub „主过程,结果写入文件

Private Sub Command2_Click() Write #1, s Close #1 End Sub Open "d:\Out.txt" For Append As #1 Function prime(n%) As Boolean prime = True For i = 2 To n1) End If End Function „函数过程 Fac(n) 遇到的主要问题及分析:

1) 利用 Fac(n)函数, 编写程序分别输入两个正整数 X 和 Y, 计算并输出 x!+(x+1)! +(x+2)! + …… +(x+y)!之和。 代码

Private Sub Command1_Click() Dim x%, y%, i% x = Val(Text1.Text) y = Val(Text2.Text) „主过程,计算求和

遇到的主要问题及分析: 74 For i = x To y z = fac(i) s = s + z Next i Print s End Sub Function fac(n%) As Integer If n = 1 Then fac = 1 Else fac = n * fac(nm)) Print z End Sub Function fac(n%) As Integer If n = 1 Then fac = 1 Else fac = n * fac(n1) s1 = ls + Mid(s1, k) i = InStr(s1, s2) Loop 实验心得体会 成绩: 教师签名: 77 实验日期 年 月 日 实验十四 实验目的: 过程(续)

1、掌握自定义子过程以及函数过程的定义和调用方法;

2、掌握形参和实参对应关系;值传递和地址传递的传递方式以及区别。

3、掌握多窗体调用。

实验内容

1、编写一函数过程 FunMax( a( ) ),求一维数组 a 中的最大值。主调程序随机产 生 10 个-100 到 100 之间的整数,调用 FunMax 函数过程,显示数组的最大值。 代码

Function „FunMax( a( ) ) 遇到的主要问题及分析:

End Function Private Sub Command1_Click() „主程序,显示数组的最大值 End Sub 78

2、编写一子过程 ProcMin,求一维数组 a 中的最小值,子过程的形参自己确定。主 调程序随机产生 10 个 100 到 200 之间的整数,调用 ProcMin 子过程,显示数组的最小 值。 代码

Sub „子过程 ProcMin 遇到的主要问题及分析:

End Sub Private Sub Command1_Click() „主程序,显示数组的最小值 End Sub

3、运行下面程序段,体会过程调用过程中传值和传址的区别。

Private Sub test(ByVal p%, ByVal m%, n()) p = p + 1: m = m + 1 n(1) = 999 Print "Sub:"; p; m; n(1) End Sub Private Sub Command1_Click() Dim c() a% = 1: b% = 2 c = Array(1, 2, 3) Call test(a, b + 3, c) Print "Main:"; a; b; c(1) End Sub 运行的结果:

运行的结果: 分析原因:

 运行程序,分析结果。

 将 Private Sub test(ByVal p%, ByVal m%, n()) 分析原因: 79 改为 Private Sub test(p%, m%, n())再运行并分析

根据运行结果回答下面问题: 1) 为什么两种调用方式,a 的输出的结果会发生变化,而 b 却不变?

2) 可以将 Private Sub test(ByVal p%, ByVal m%, n())改为 Private Sub test(ByVal p%, ByVal m%, ByVal n())吗?为什么?

【选作题】从键盘上输入一个整数,则在窗体上显示此整数所有不同的因子及因子个 数。(求因子及因子个数要求用过程完成) 遇到的主要问题及分析: 代码

Sub „子过程 End Sub Private Sub Command1_Click() „主程序 End Sub 【提高题】编写一个包含多个窗体及多个模块的工程: 窗体 1:主窗体,放置按扭,准备调用其他窗体; 窗体 2:输入一个数,显示它是否幸运数;

幸运数:指前两位数字之和等于后两位数字之和的数。 80 窗体 3:输入两个数,显示它们之间的所有幸运数; 窗体 4:输入一个数,显示比它小的最大幸运数;

【提示】  编写判断一个四位数是否幸运数的函数过程 Luck(返回值是逻辑型),放在主窗体中。注意,函数过程是 必须是全局级的 (即在函数定义时加 Public 或者缺省, 但一定不能加 Private) 否则其他窗体不能调用, , 调用时要在函数名前加窗体名,如:Form1.Luck(Text1.text)  先添加几个窗体并分别设置相应的控件及属性,并正确设置启动窗体。程序代码中利用多窗体的语句和方法 将需要的窗体载入内存,不需要的窗体可隐藏或从内存中删去。

代码

Function „判断幸运数函数 Luck 遇到的主要问题及分析:

End Function 窗体 1 Private Sub Command1_Click() End Sub 窗体 2 Private Sub Command1_Click() „判断输入的数是否为幸运数 „显示 Form2 End Sub 81 窗体 3 Private Sub Command1_Click() „两数之间的幸运数 End Sub „比某数小的最大幸运数

窗体 4 Private Sub Command1_Click() End Sub 实验心得体会 成绩: 教师签名: 82 实验日期 年 月 日 实验十五 实验目的: 菜单及通用对话框

1、掌握下拉菜单的规划、设计和使用方法。

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

3、掌握各种对话框的使用方法。

实验内容

1、设计菜单(如右图所示),在窗体上放置一个文本框,设置其 Multiline 属性为 True。设计包含有 3 个主菜单项的菜单系统,分别为“文件”“格式”和“查找” 、。其中 “文件”包括 “打开”“保存” 、、“清除”和“退出”四个子菜单。 “清除”与“退出” 之间有一条分隔线。 “格式”包括“字体”和“颜色”两个子菜单。 “查找”包括“查找下 一个”和“替换”两个子菜单。为菜单编写如下 有关代码: 1)新建:新建一个空的文本文档 2)打开:弹出打开对话框,打开文件显示在 文本框中 3)保存:弹出保存对话框,将文件保存到指 定路径中。 4)退出:关闭应用程序 5)字体:弹出字体对话框,设置文本框的字体属性 6)颜色:弹出颜色对话框,设置文本框的字体颜色 7) 查找: 显示如图输入对话框, 输入要查找的内容后, 可在文本框内查找指定的内容。

要求:1) “格式”菜单的显示与否与文本框中有无内容相关联,当文本框中的内容 为空时,隐藏“格式”菜单;当文本框输入内容的时候,显示“

格式”菜单。 3) 可通过鼠标右键弹出“格式”菜单。 83 代码

Sub „新建空的文档 遇到的主要问题及分析: End Sub Sub „打开

End Sub Sub „保存 End Sub Sub „清除 End Sub Sub „退出 End Sub Sub „字体

End Sub Sub „颜色 End Sub 84 Sub „查找下一个 End Sub Sub „替换 End Sub Sub „显示隐藏格式菜单 End Sub Sub „右键弹出格式菜单 End Sub 实验心得体会 成绩: 教师签名: 85 实验日期 年 月 日 实验十六 实验目的: 随机文件(选作)

1、掌握自定义类型的定义及其变量的声明以及变量元素的引用。

2、掌握随机文件的打开、关闭和读写操作。

3、学会随机文件在应用程序的使用。

实验内容

1、窗体上 Form1 上有三个命令按钮,两个图片框,和一个标签(如图 16.1) 。 Picture1 Picture2 图 16.1 实验 1 运行界面 要求: 1)自定义一个 StudType 类型,包括姓名、性别、电话号码和学校四个成员,结构如下: 姓名 (Name) :字符串(长度为 10) 性别(Sex) :字符串(长度为 2) 电话号码(Tel) :字符串(长度为 11) 学校(School) :字符串(长度为 20) 遇到的主要问题及分析: 代码

Type „自定义 StudType 类型 End Type 86 2)程序运行后,单击“文件写入” ,则以随机存取方式打开当前目录下的文件”Stud.txt”,把 记录个数显示在标签 Label1 中;并根据提示向文件添加记录,每写入一个记录后,都要询问是否再 输入新记录,回答”N”或”n”时,则停止输入;重新更新标签中的记录个数。 遇到的主要问题及分析: 代码

Sub „向文件添加记录 End Sub 3)单击“文件读取” ,则以随机存取方式打开当前目录下的文件”Stud.txt”,读取文件中的全 部记录,并在图片框 Picture1 显示出来,并把记录个数显示在标签 Label1 中。 遇到的主要问题及分析: 代码

Sub „读取文件中的全部记录 End Sub 4)单击“指定记录读取” ,则弹出一个输入框,提示输入所要显示的记录号,以随机存取方式打 开当前目录下的文件”Stud.txt”, 读取指定记录号的记录, 并在并在图片框 Picture2 显示出来。 程序运行结果如下图所示。

87 代码

Sub „读取文件中的某条指定记录 遇到的主要问题及分析: End Sub 实验心得体会 成绩: 教师签名: 88 附录:VB 统考编程题(精选)

【特别提醒】 统考中的编程题目通常在某个指定的文件夹下面已经

有现成的但不完整的窗体或部分程序,考生在已有的基础上补充完 成,不需要自己重新做窗体和编程。正确的作法是打开指定文件夹 中的工程文件(.vbp) ,之后按题目要求完成并保存。

一、简单操作题(15 分/题)

1、在名称为 Form1 的

窗体中建立一个名为 HS1 的水平滚动条,其最大值为 200,最小值为 0,使用 属性窗口设置控件属性。程序运行后,每次修改滚动条的位置时都执行语句 Print HS1.value。

图附 1 简单操作 1 运行界面

2、请在窗体上添加三个文本框,名称分别为 Text

1、Text2 和 Text3,要求程序运行的时候,焦点 光标在 Text1 上,按下键盘上的 Tab 键后,焦点跳到 Text3 上。(本题不需要编写代码,只需设置 对应的属性即可)。

3、窗体上有一个框架名称为 Frm1,标题为“框架” ,高度为 2000,宽度为 3000.再在框架中画一个文本 框,名称为 T1 , 距离框架左边的距离为 500,上边的距离为 300。文本框的初始内容设置“文本框” , 同时将窗体的标题设置为“框架及文本框” 。

4、1)设置图像框的初始大小 Height 为 1500,width 为 2000; 2)窗体的最大化,最小化按钮不可见;(提示设置窗体的 MaxButton 和 MinButton 属性) 3)单击缩小按钮,图像框的大小缩小 300,即 Height 和 width 分别减少 300; 4)单击放大按钮,图像框的大小增加 500,即 Height 和 width 分别增加 500; 5)按回车键相当于按“放大”按钮;(提示设置按钮的 Default 属性) 6)按“Esc”键相当于按“缩小”按钮;(提示设置按钮的 Cancel 属性) 注意:控件的初始属性必须通过属性窗口来设置,否则不给分。 (本题将几个简单操作题合并) 图附 2 简单操作 4 运行界面

5、Form1 上画一文本框 Text1,通过属性窗口设置属性实现以下功能: 1)窗体标题为“设置文本框属性” 2)文本框可显示多行,显示垂直滚动条,用 3 号黑体显示“程序设计”

89

6、窗体上有两个名称分别为 cmd1 和 cmd2 的按钮, 运行程序时只能看到 cmd1, 单击 cmd1, cmd2 则 出现,cmd1 隐藏,单击 cmd2,则 cmd1 出现,cmd2 隐藏。

7、建立如下菜单: 第一级 文件 打开 新建 关闭 编辑 第二级 名称 File Open New Close Edit 有效性 有效 有效 有效 无效 有效

8、窗体上有一个文本框和标题为“复制”的命令按钮 C1,编程实现:运行时窗体标题为“修改文本框 内容”(可在 Form_Activate ()事件中修改);单击按钮,按钮上的标题复制到文本框,并使按钮 不可用;单击窗体空白处,按钮可用。(20 分)

图附 3 简单操作 8 运行界面

9、单击命令按钮 Cmd1, 用代码设置滚动条 Vsb1 的属性: max 为窗体高度, min 为 0, LargeChange 为 50,SmallChange 为 10。当拖动滚动条的滑块时,窗体上显示滚动框的位置值。

10、窗体上有一个文本框和一个水平方向的滚动条, 编程设置: 将滚动条的 min、max 、Largechang、SmallChang 的初始值分别设置为 0,2200,25,5;当移动滚动条时,可扩大或缩小文本框

的高度, 并保持高与宽的比例为 1:3。

11、窗体上有一个文本框和一个垂直方向的滚动条, 在窗体上设置: Text1.Text 为 “家” FontName , 为黑体,滚动条的 min、max 、Largechang、SmallChang 的初始值分别设置为 10,100,5,2; 当移动滚动条时,Text 的字体随之改变。

12、窗体中有一个标签和一个计时器,设置计时器的间隔为 3 秒。每 3 秒标签显示→隐藏→显示。

13、窗体上有垂直和水平滚动条,设置其最大值 100,最小值 0,增量为 10,鼠标单击滚动条时将两 个滚动条的值分别显示在两个标签中,显示的格式类似 X=36,Y=80。

基本应用题(20 分/题)

1、在名称为 Form1 的窗体中将窗体标题设置为“售货机”,在窗体中已有一个名称为 Pic1 的图片框, 请画两个标签 Label1 和 Label

2、两个框 Text1 和 Text

2、一个名称为 Command1 的命令按钮(如 图所示),使用属性窗口设置控件属性。程序运行后,输入货物的数量及单价,单击“总价=”按钮求 出总价(总价=数量*单价)并输出在 Pic1 中(不必进行数据的有效性验证)。

图附 4 基本运用 1 运行界面 图附 5 基本运用 2 运行界面 90

2、窗体中有两个标题分别为“体育”和“音乐”的复选框和两个标题为“选修”和“不选修”的单选 按钮,一个名称为 Label1 的标签。编写适当的事件过程,使得程序运行时对复选框和单选按钮进行选 择,单击窗体,可根据下表的规定在标签中显示相应信息。 选择 Check1 和 Option1 Check1 和 Option2 Check2 和 Option1 Check2 和 Option2 Check

1、Check2 和 Option1 Check

1、Check2 和 Option2 在标签中显示的信息 只选修体育 不选修体育 只选修音乐 不选修音乐 选修音乐和体育 不选修音乐和体育

3、窗体上有一个文本框 Text

1、一个标签 Label1 和两个名称分别 C1 和 C2 命令按钮,标题分别为 “显示”和“恢复”,编写程序,程序运行时,在文本框中输入“学习VB 知识”,再单击“显示”按 钮,则标签和文本框消失,并在窗体上显示文本框的内容。单击“恢复”按钮则标签和文本框恢复如初。

4、窗体上有两个标题分别为“添加”和“清除”的命令按钮,以及两个列表框。编写程序,在右边的 列表框中选择一个列表项,单击“添加”按钮,则把该选项移动左边的列表框中。在左边的列表框中选 择一个列表项,则把该项移回列表框中。

5、窗体上一个名称为 C1,标题为:“输入”的命令按钮和一个文本框。程序运行后,单击命令按钮则 弹出一个对话窗口提示“是否输入”,提示窗口上只有两个命令按钮:“是”和“否”,文本框中显示 选择的命令按钮返回值。

6、窗体上有一个名称为C1,标题为“确定”

VB说课稿

VB时钟

VB题库

VB学习材料

VB关键字

VB心得

VB论文

VB学习心得

vb错误处理

VB心得

vb
《vb.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 vb操作教程 vb
点击下载本文文档