VB实例源码.doc_第1页
VB实例源码.doc_第2页
VB实例源码.doc_第3页
VB实例源码.doc_第4页
VB实例源码.doc_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课前体验Private Sub Form_Click()For i = 1 To 10For j = 1 To iPrint * ;Next jPrintNext iEnd Sub【例3-1】Private Sub Form_Click()c1$ = Chr$(13) + Chr$(10)msg1$ = 请输入您的名字: msg2$ = 输入后按回车键msg3$ = 或单击“确定”按钮msg$ = msg1$ + c1$ + msg2$ + c1$ + msg3$name$ = InputBox(msg$, InputBox 函数示例, 张三)Print name$End Sub【例3-2】Private Sub Form_Click() Msg1$=”Are you Continue to?” msg2$=”Operation Dialog Box” r=MsgBox(msg1$,34,msg2$) Print rEnd Sub【例3-3】编写程序,用MsgBox函数判断是否继续执行。Private Sub Form_Click() msg$ = 请确认此数据是否正确 Title$ = 数据检查对话框 x = MsgBox(msg$, 19, Title$) If x = 6 Then Print x * x ElseIf x = 7 Then Print 请重新输入 End IfEnd Sub【例3-5】Private Sub Form_Click() Print: Print FontName = 隶书 FontSize = 16 Print 姓名; Tab(8); 年龄; Tab(16); 职务; Print Tab(24); 单位; Tab(32); 籍贯 Print Print 吴大明; Tab(8); 25; Tab(16); 职员; Tab(24); 人事科; Tab(32); 北京End Sub【例3-6】Private Sub Form_Click()X = InputBox(请输入成绩, 学生成绩录入, 00)Print xEnd Sub【例3-7】Private Sub Form_Click()Dim x As Single, y As Singlex=InputBox(“请输入x的值”)If x0 Then y=1 ElseIf x=0 Then y=0 Else y=-1Print “x=”; x ,”y=” ; yEnd Sub【例3-8】Private Sub Form_Click()Dim msg, UserInputmsg = 请输入一个字母或09之间的数字.UserInput = InputBox(msg) 输入一个字母或数字If Not IsNumeric(UserInput) Then 判断是否是数字 If Len(UserInput) = 1 Then 不是数字时,判断输入的字符串长度是否为1 Select Case Asc(UserInput) 判断输入字母的ASCII码值 Case 60 To 90 在60-90之间为大写字母 msg = 你输入的是一个大写字母 msg = msg & Chr(Asc(UserInput) & 。 Case 97 To 122 小写字母 msg = 你输入的是一个小写字母 msg = msg & Chr(Asc(UserInput) & 。 Case Else msg = 你没有输入字母或数字. End Select End IfElse Select Case Val(UserInput) 将输入的数值型字符转换为数值 Case 1, 3, 5, 7, 9 如果是奇数 msg = UserInput & 是一个奇数。 Case 0, 2, 4, 6, 8 如果是偶数 msg = UserInput & 是一个偶数。 Case Else 出界 msg = 你输入的数字不在09范围内 End Select End If MsgBox msgEnd Sub【例3-8】Private Sub Form_Click()Dim msg, UserInputmsg = 请输入一个字母或09之间的数字.UserInput = InputBox(msg) 输入一个字母或数字If Not IsNumeric(UserInput) Then 判断是否是数字 If Len(UserInput) = 1 Then 不是数字时,判断输入的字符串长度是否为1 Select Case Asc(UserInput) 判断输入字母的ASCII码值 Case 60 To 90 在60-90之间为大写字母 msg = 你输入的是一个大写字母 msg = msg & Chr(Asc(UserInput) & 。 Case 97 To 122 小写字母 msg = 你输入的是一个小写字母 msg = msg & Chr(Asc(UserInput) & 。 Case Else msg = 你没有输入字母或数字. End Select End IfElse Select Case Val(UserInput) 将输入的数值型字符转换为数值 Case 1, 3, 5, 7, 9 如果是奇数 msg = UserInput & 是一个奇数。 Case 0, 2, 4, 6, 8 如果是偶数 msg = UserInput & 是一个偶数。 Case Else 出界 msg = 你输入的数字不在09范围内 End Select End If MsgBox msgEnd Sub【例3-10】Sub Form_Click()Dim N As Integern = InputBox(Enter N:) 输入N的值k = 1For i = 1 To N 循环N次,计算出N!k = k * I Next iPrint N;”!=”;k 数据输出End Sub【例3-12】Dim S, NS = 0: N = 0Do While S = 100N = N + 1S = S + NLoopPrint S, N【例3-13】Private Sub Form_Click()Dim char As StringCount = 0char = InputBox(请输入一个字符)While char ? Count = Count + 1 char = InputBox$(请输入一个字符)WendPrint 输入的字符数是:; CountEnd Sub【例3-14】Private Sub Form_Click()Print *;For i = 1 To 9 Print Tab(i * 6); i;Next iPrintFor j = 1 To 9 Print j; For k = 1 To j Print Tab(k * 6); j * k; ; Next k PrintNext jEnd Sub第4章课前体验(1)假定用来输入数学成绩的文本框名称为Text1,该文本框的LostFocus事件过程如下:Private Sub Text1_LostFocus() If Val(Text1.Text) 100 Then Text1.Text = Text1.SetFocus End IfEnd Sub(2)其他文本框的LostFocus事件类似。(3)假定按钮名称为Command1,该按钮的Click事件过程如下:Private Sub Command1_Click()If Check1.Value = 1 Then Sum = Sum + Val(Text1.Text)If Check2.Value = 1 Then Sum = Sum + Val(Text2.Text)If Check3.Value = 1 Then Sum = Sum + Val(Text3.Text)If Check4.Value = 1 Then Sum = Sum + Val(Text4.Text)If Check5.Value = 1 Then Sum = Sum + Val(Text5.Text)Text6.Text = SumEnd Sub【例4-1】Private Sub Command1_Click() 在其单击事件中编程For i = 1 To 6 外循环,控制输出几行For j = 1 To i 内循环,控制输出几列Print * ;Next jPrint 换行Next iEnd Sub【例4-2】Private Sub Text1_Change()Text2.Text = LCase(Text1.Text)Text3.Text = UCase(Text1.Text)End Sub【例4-3】Private Sub Check1_Click() Text1.FontUnderline = Not Text1.FontUnderlineEnd SubPrivate Sub Check2_Click() Text1.FontItalic = Not Text1.FontItalicEnd SubPrivate Sub Option1_Click() Text1.Font = 黑体End SubPrivate Sub Option2_Click() Text1.Font = 宋体End Sub【例4-4】Private Sub Command1_Click() If Option1 Then Text1.FontName = 宋体 Else Text1.FontName = 黑体 End If If Option3 Then Text1.FontSize = 8 Else Text1.FontSize = 10 End IfEnd SubPrivate Sub Command2_Click() EndEnd Sub【例4-5】Private Sub Form_Load()在窗体的Load事件中输入列表框的各个项目 lstBooks.AddItem 计算机应用基础 lstBooks.AddItem 操作系统 lstBooks.AddItem 数据结构 lstBooks.AddItem 网络技术基础End SubPrivate Sub cmdAdd_Click()单击添加命令按钮时将文本框中输入的内容添加到列表框中 lstBooks.AddItem txtItem txtItem = End SubPrivate Sub cmdDelete_Click()删除列表框中选中的项目 lstBooks.RemoveItem lstBooks.ListIndexEnd SubPrivate Sub cmdModify_Click()所选项目显示在文本框中,等待修改 txtItem.Text = lstBooks.Text cmdAdd.Enabled = False cmdDelete.Enabled = False cmdModify.Enabled = False cmdModify_OK.Enabled = TrueEnd SubPrivate Sub cmdModify_OK_Click()所选项目显示在文本框中修改完成后,按下修改确定按钮,更新列表框内容 lstBooks.List(lstBooks.ListIndex) = txtItem cmdModify_OK.Enabled = True cmdAdd.Enabled = True cmdDelete.Enabled = True cmdModify.Enabled = True txtItem = End Sub【例4-6】Private Sub Form_Click()Picture3.Picture=Picture1.PicturePicture1.Picture=Picture2.PicturePicture2.Picture=Picture3.PicturePciture3.Picture=LoadPicture()把第3个图片框设置为空End sub【例4-7】Private Sub HScroll1_Change() Text1.Text = HScroll1.ValueEnd Sub【例4-8】Private Timer1_Timer()Labe1.Caption=Time$End Sub实训Private Sub Command1_Click()Debug.Print 姓名:; Text1.TextDebug.Print 出生年月:; Text2.TextDebug.Print 籍贯:; Text3.TextIf Option1.Value Then Debug.Print 性别:; 男If Option2.Value Then Debug.Print 性别:; 女Debug.Print 民族:; Combo1.TextIf Check1.Value = 1 Then Debug.Print 健康 Else Debug.Print 不健康Debug.Print 职称:; Combo3.TextDebug.Print 工资:; Text4.TextDebug.Print 外语熟练程度; HScroll1.ValueDebug.Print 简历:; Text5.TextEnd Sub第5章课前体验Private Sub Command6_Click()Const n = 10 定义常量n的值为10Max = 0: K = 0 最高分及所在位置赋初值For i = 1 To n b(i) = InputBox(请输入第& i &个同学的成绩,求最高分) 输入成绩 If b(i) Max Then Max = b(i)K = I 将第i个成绩与最高分Max相比,如果比最高分高,则保存起来 End IfNext iPrint最高分是第& K &个同学,其成绩是:& MaxEnd Sub【例5-1】Option Base 1Private Sub Command1_Click()Dim a(3) As Integera(1) = 1: a(2) = 3: a(3) = 5Print a(1)Print a(2)Print a(3)End Sub【例5-2】For i=1 To 10b(i) = InputBox(请输入第 & i & 个数)Next i【例5-3】For i=1 To 2For j=1 To 2b(i,j) = i+jNext jNext i【例5-4】Dim S(3,2) As Integer程序如下:For i = 0 To 3 Print Tab(5); 输出位置定位 For j = 0 To 2 S(i, j) = i * 2 + j 给各元素赋值图5-4 使用二维数组打印出的图形 Print S(i, j); Next j Print 换行Next i【例5-5】Private Sub Form_Click()Dim s(5) As Integer 定义数组SConst n = 5For i = 1 To n s(i) = Val(InputBox(请输入第 & LTrim$(Str$(i) & 个数, 数据排序)输入n个数,转换成数值后保存在数组中。Next iFor i = 1 To n-1 进行n-1趟比较 Max = I 对第i遍比较时,初始假定第i个元素最小。 For j = i + 1 To n 在数组in个元素中选最小元素 If s(j) s(Max) Then Max = j Next j t = s(i) s(i) = s(Max) s(Max) = t in个元素中选出的最小元素与第i个元素交换Next iFor i = 1 To 5 Print s(i)Next iEnd Sub【例5-6】Dim b() As IntegerPrivate Sub Form_Click() ReDim b(2) For i = 0 To 2 b(i) = i Next i ReDim Preserve b(3) b(3) = 7For i = 0 To 3 Print b(i);Next iEnd Sub【例5-7】Dim a(8, 8) As Integer 定义一个二维数组Private Sub Form_Click() 下面的二层循环语句给数组赋值For i = 1 To 8 For j = 1 To i If i = 1 Or j = 1 Then a(i, j) = 1 数组中每一行第一个,最后一个数均为1 Else a(i, j) = a(i - 1, j - 1) + a(i - 1, j) 数组中其余数据等于它上一行的相邻两列之和 End If Next j Next i 下面的二层循环语句将数组中的值打印出来For i = 1 To 8 Print Tab(20 - 2 * i); 定位打印位置 For j = 1 To i If a(i, j) 10 Then 将数组中的值转换成长度为3的字符串,可使打印数据整齐 s = + Str(a(i, j) + ElseIf a(i, j) arr(row, col) Then row = i: col = j End IfNext jNext i 下列程序段输出矩阵及最大值及所在位置Print 您输入的矩阵是:PrintFor i = 1 To n Print Tab(8); 打印位置定位 For j = 1 To m Print arr(i, j); Next j Print 换行 Next iPrint Print 矩阵中最大值为:;arr(row, col); 其位置在第 & row & 行 & col & 列End Sub第6章课前体验(2)编写窗体装载事件过程:Private Sub Form_Load() For I = 0 To 100 List1.AddItem i Next iEnd Sub(3)使用“添加过程”对话框创建出判断成绩等级的过程Public Sub DengJi(a As Integer) Select Case a Case 0 To 59 Label1.Caption = 不及格 Case 60 To 69 Label1.Caption = 及格 Case 70 To 79 Label1.Caption = 中等 Case 80 To 89 Label1.Caption = 良好 Case 90 To 100 Label1.Caption = 优秀 End SelectEnd Sub4)编写列表框单击Click事件过程:Private Sub List1_Click() Dim n As Integer N = Val(List1.Text) Call DengJi(n) 调用判断成绩等级的过程End Sub(5)编写命令按钮单击Click事件过程:Private Sub Command1_Click() EndEnd Sub【例6-1】Private Sub oushu(x As Integer,msg As Boolean) If x Mod 2 = 0 Then Msg = True Else Msg = False End IfEnd Sub【例6-2】Public Function Rect(a As Double,b As Double)As Double Rect = a * bEnd Function【例6-3】(2)在窗体代码窗口中编写pingjun过程:Sub pingjun(a As Integer,b As Integer,c As Integer) C = (a+b)/2End Sub(3)编写命令按钮1的单击事件过程:Private Sub Command1_Click() Dim x As Integer,y As Integer,z As Integer X = Val(Text1.Text) Y = Val(Text2.Text) Call pingjun(x,y,z) 或pingjun x, y, z Text3.Text = Str(z)End Sub【例6-4】(2)把判断奇偶性的函数过程jo的程序代码输入到窗体代码窗口中。Function jo(x As Integer)As String If x Mod 2 = 0 Then Jo = 偶数 Else Jo = 奇数 End IfEnd Function(3)编写命令按钮1的单击事件过程:Private Sub Command1_Click() Dim n As Integer,w As String n=Val(Text1.Text) w = jo(n) Label1.Caption=Text1.Text &是& w &!End Sub【例6-5】(2)编写参数按地址传递次的过程Swap1:Sub Swap1(x As String,y As String) Dim t As String T = x:x = y:y = tEnd Sub (3)编写命令按钮单击事件过程如下:Private Sub Command1_Click() Dim a As String,b As String A = Text1.Text B = Text2.Text Form1.Caption = 按地址传递 Swap1 a,b Text1.Text = a Text2.Text = bEnd Sub【例6-7】(2)求任意一维数组中各元素之积的函数如下:Function tt(a() As Integer)As Long 函数的形参是数组 Dim t#, i% T = 1 For I = LBound(a) To UBound(a) 求数组的下界和上界 T = t * a(i) Next i Tt = tEnd Function(3)求任意一维数组中各元素之和的函数如下:Function ss(b() As Integer)As Long 函数的形参是数组 Dim t#, i% S = 0 For I = LBound(b) To UBound(b) 求数组的下界和上界 S = s+b(i) Next i Ss = sEnd Function(4)编写命令按钮单击事件过程,如下:Private Sub Command1_Click() Dim a(1 To 5)As Integer Dim b(2 To 10)As Integer Dim i As Integer,t1 As Long,s1 As Long For I = 1 To 5 给数组赋值 a(i) = i + 3 Next i t1 = tt(a() 调用函数 Print第一个数组各元素之积t1=; t1 For I = 2 To 10 b(i) = i * 2 Next i s1 = ss(b() Print第二个数组各元素之和s1=; s1End Sub【例6-8】(1)先定义一个具有可选参数的函数过程sum,用来进行3个数的加法运算。Private Function sum(x As Integer,Optional y As Integer,_ Optional z As Integer=3)As Integer Sum = x + y + zEnd Function(2)编写窗体的单击事件过程,如下:Private Sub Form_Click() Printsum(1) = 1 + 0 + 3 = ;sum(1) 省略两个参数 Printsum(1,2) = 1 + 2 + 3 = ;sum(1,2) 省略第3个参数 Printsum(1,8) = 1 + 0 + 8 = ;sum(1,8) 省略第2个参数 Printsum(1,4,8) = 1 + 4 + 8 =;sum(1,4,8) 不省略参数End Sub【例6-9】(1)先定义一个具有可变参数的函数过程MySum,如下:Function MySum(ParamArray VA() As Integer 声明为可变参数 Dim i As Integer Dim Sum As Integer Sum = 0 For i=LBound(VA) To UBound(VA) 得到数组的大小,并进行循环 Sum = Sum+VA(i) Next MySum = SumEnd Function(2)编写窗体的单击事件过程,如下:Private Sub Form_Click() Dim s As Integer Print Print Tab(2); 使用3个实参:; S = MySum(2,4,6) 可以使用任意多个实参来调用 Print MySum(2,4,6)=; s Print Print Tab(2); 使用5个实参:; S = MySum(1,2,3,4,5) Print MySum(1,2,3,4,5)=;sEnd Sub【例6-10】(1)定义具有窗体参数的过程,如下:Private Sub BiaoTi(fm As Form) fm为窗体对象参数 Text1.Text = 窗体的标题是& fm.CaptionEnd Sub调用过程BiaoTi会改变窗体对象fm中的文本框Text1的文本。(2)定义具有控件对象参数的过程,如下:Private Sub KuanDu(tb As TextBox) tb为文本框型的控件对象参数 tb.Text = 文本框的宽度是& tb.WidthEnd Sub调用过程KuanDu会改变文本框对象tb的文本。(3)编写按钮的单击事件过程,用来调用具有对象参数的过程。Private Sub Command1_Click() Call BiaoTi(Form1) End SubPrivate Sub Command2_Click() Call KuanDu(Text1)End Sub【例6-11】Function fac(n As Integer) As Long If n = 1 Then Fac = 1 Else Fac = n * fac(n - 1) End IfEnd Function【例6-12】Private Sub Command1_Click() Dim a As Integer,b As Integer 过程级变量 A = 100:b = 8 Print Print调用s1前,事件过程中的变量:;a=;a;b=;b Call s1 调用通用过程sub1 Print Print 调用s1后,事件过程中的变量:;a=;a;b=;bEnd SubSub s1() 通用过程 Dim a As Integer,b As Integer 过程级变量 A = 55:b = 66 Print Print通用过程s1中的变量:;a=;a;b=;bEnd Sub【例6-13】Dim a As Integer,b As Integer 声明模块级变量Private Sub Command1_Click() A = 100:b = 8 对模块级变量赋值 Print Print调用s1前,模块级变量:;a=;a;b=;b Call s1 调用通用过程sub1 Print Print调用s1后,模块级变量:;a=;a;b=;bEnd SubSub s1() 通用过程 A = 55:b = 66 对模块级变量赋值 Print Print通用过程s1对模块级变量赋值:;a=;a;b=;bEnd Sub【例6-14】(4)在窗体Form1的代码窗口的顶部,声明模块级变量a和b,分别用来储存程序运行后单击左右两个命令按钮的次数。代码如下:Private a As IntegerPrivate b As Integer(5)编写左边的命令按钮的Command1_Clic事件过程。代码如下:Private Sub Command1_Click() Dim s As String I = I + 1 A = a + 1 S = 单击按钮& i &次,左按钮& a &次 MsgBox s,vbOKOnly,提示End Sub(6)编写右边的命令按钮的Command2_Clic事件过程。代码如下:Private Sub Command2_Click() Dim s As String I = I + 1 B = b + 1 S = 单击按钮& i &次,右按钮& b &次 MsgBox s,vbOKOnly,提示End Sub【例6-15】Sub change() Dim d As Integer 声明动态变量d Static s As Integer 声明静态变量s D = d + 1 S = s + 1 Print 动态变量d = ;d,静态变量s = ;sEnd SubPrivate Sub Command1_Click() Dim i As Integer For i = 1 To 3 change 或 Call change Next iEnd Sub实训(3)在Form1的窗体模块的代码窗口的最顶部(通用声明段)声明模块级变量title,用来存储字符串。代码如下:Private title As String 表明是使用通用过程还是函数(4)定义Sub通用过程MySub,来进行乘法运算。其中的形参x、y按值传递,形参z按地址传递。代码如下:Private Sub MySub(ByVal x As Integer,ByVal y As Integer,z As Integer) Z = x * yEnd Sub定义函数过程MyFun,来进行加法运算。其中的形参m和n是按值传递的。代码如下:Private Function MyFun(ByVal m As Integer,ByVal n As Integer) As Integer MyFun=m+nEnd Function(5)添加窗体的事件过程Form_Load,来做些初始化的工作,将文本框置空。代码如下:Private Sub Form_Load() Text1.Text = Text2.Text = Text3.Text = End Sub分别添加两个单选按钮的Click事件过程,来设置框架Frame1和标签Label的Caption属性。代码如下:Private Sub Option1_Click() Frame1.Caption = 乘法积运算 Label1.Caption = End SubPrivate Sub Option2_Click() Frame1.Caption = 加法运算 Label1.Caption = +End Sub添加命令按钮的事件过程Command1_Click。其中,关键字static声明的静态变量i和j用来储存运算的次数,关键字Dim声明的过程级局部变量a、b、c用来储存三个文本框里的数值。代码如下:Private Sub Command1_Click() Static i As Integer,j As Integer Dim a As Integer,b As Integer,c As Integer A = Val(Text1.Text) B = Val(Text2.Text) If Option1.Value=True Then Title = 用过程运算 Call MySub(a,b,c) i=i+1 Form1.Caption = 第& i &次& title Else Title = 用函数运算 c=MyFun(a, b) j = j+1 Form1.Caption = 第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论