第3章 课前体验 Private Sub Form Click I To 10 【例3-1】 Private Sub Form Click msgIs="请输入您的名字: msg2s="输入后按回车键 msg3s="或单击“确定”按钮 names= Input Box(msgs," Input Box函数示例","张三") Print names nd Sub 【例3-2】 Private Sub Form Click rMsg Box( msg lS, 34, msgs) P End Sub 【例3-3】编写程序,用 MsgBox函数判断是否继续执行 msgs="请确认此数据是否正确 ites="数据检查对话框 x= Msg Box(msgS, 19, Titles) Print sx Elself x=7 Then Print"请重新输入 【例3-5】 Private Sub Form Click Fonts ize=16 Pint”姓名";Tab(8);"年龄";Tab(16),"职务
1 第 3 章 课前体验 Private Sub Form_Click() For i = 1 To 10 For j = 1 To i Print "* "; Next j Print Next i End 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 r End 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 If End Sub 【例 3-5】 Private Sub Form_Click() Print: Print FontName = "隶书" FontSize = 16 Print " 姓名"; Tab(8); "年龄"; Tab(16); "职务";
Print Tab(24),"单位",Tab(32);"籍贯" Print"吴大明";Tab(8),25;lab(16);"职员";Tb(24,"人事科";Tab(32),"北京 Print"吴大明";lab(8),25;Tab(16);"职员";Tab(24;"人事科";Iab(32),"北京 End Sub 【例3-6】 Private Sub Form Click Ⅹ= Input Box("请输入成绩"”,"学生成绩录入","°0°) Print End sub 【例3-7】 Private Sub Form Click Dim x As Single, y As Single Input Box(“请输入x的值”) If x>0 Then y=l Elself x0Then y=0 Else y=I End Sub 【例3-8】 Private Sub Form Click msg="请输入一个字母或0~9之间的数字 输入一个字母或数字 If Not IsNumeric(UserInput) Then 判断是否是数字 If en(UserInput)=I Then 不是数字时,判断输入的字符串长度是否为1 Select Case Asc(UserInput) 判断输入字母的ASCI码值 Ca 在60-90之间为大写字母 msg="你输入的是一个大写字母" msg=msg Chr(Asc(UserInput)& Case 97 小写字母 msg="你输入的是一个小写字母 msg=msg Chr(Asc(Userlnput)& Case else g="你没有输入字母或数字 End Select If Select Case Val(UserInput) 将输入的数值型字符转换为数值 Case 1,3,5,7,9 如果是奇数 msg= UserInput&”是一个奇数 aseO,2,4,6,8 如果是偶数 msg= UserInput&"是一个偶数。 Case elso 出界 msg="你输入的数字不在0~9范围内” End Select
2 Print Tab(24); "单位"; Tab(32); "籍贯" Print Print "吴大明"; Tab(8); 25; Tab(16); "职员"; Tab(24); "人事科"; Tab(32); "北京" Print "吴大明"; Tab(8); 25; Tab(16); "职员"; Tab(24); "人事科"; Tab(32); "北京" End Sub 【例 3-6】 Private Sub Form_Click() X = InputBox("请输入成绩", "学生成绩录入", "00") Print x End Sub 【例 3-7】 Private Sub Form_Click() Dim x As Single, y As Single x=InputBox(“请输入 x 的值”) If x>0 Then y=1 ElseIf x=0 Then y=0 Else y=-1 Print “x=”; x ,”y=” ; y End Sub 【例 3-8】 Private Sub Form_Click() Dim msg, UserInput msg = "请输入一个字母或 0~9 之间的数字." 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 If Else Select Case Val(UserInput) '将输入的数值型字符转换为数值 Case 1, 3, 5, 7, 9 '如果是奇数 msg = UserInput & " 是一个奇数。" Case 0, 2, 4, 6, 8 '如果是偶数 msg = UserInput & " 是一个偶数。" Case Else '出界 msg = "你输入的数字不在 0~9 范围内" End Select
End sub 【例3-8】 Private Sub Form Click msg=”请输入一个字母或0~9之间的数字 UserInput= Input Box(msg) 输入一个字母或数字 If Not IsNumeric(UserInput) Then 判断是否是数字 If Len(UserInput)=1 Then 不是数字时,判断输入的字符串长度是否为1 Select Case Asc(UserInput) 判断输入字母的ASCI码值 Case 在60-90之间为大写字母 msg="你输入的是一个大写字母 Case 97 To 122 小写字母 msg="你输入的是一个小写字母" msg= msg Chr(Asc(UserInput)& Case Else msg="你没有输入字母或数字 End Select End If Select Case Val(UserInput) 将输入的数值型字符转换为数值 Case 1,3,5,7,9 如果是奇数 msg= UserInput&”是一个奇数 Case0,2,4,6,8 如果是偶数 msg= UserInput&"是一个偶数。 出界 msg="你输入的数字不在0~9范围内 MsgBox msg End sub 【例3-10】 Sub Form Click Dimn as Integer n=Input Box("Enter N: 输入N的值 For i=I To N 循环N次,计算出N! Print:"I="k 数据输出 End Sub 【例3-12】
3 End If MsgBox msg End Sub 【例 3-8】 Private Sub Form_Click() Dim msg, UserInput msg = "请输入一个字母或 0~9 之间的数字." 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 If Else Select Case Val(UserInput) '将输入的数值型字符转换为数值 Case 1, 3, 5, 7, 9 '如果是奇数 msg = UserInput & " 是一个奇数。" Case 0, 2, 4, 6, 8 '如果是偶数 msg = UserInput & " 是一个偶数。" Case Else '出界 msg = "你输入的数字不在 0~9 范围内" End Select End If MsgBox msg End Sub 【例 3-10】 Sub Form_Click() Dim N As Integer n = InputBox("Enter N:") ‘输入 N 的值 k = 1 For i = 1 To N ‘循环 N 次,计算出 N! k = k * I Next i Print N;”!=”;k ‘数据输出 End Sub 【例 3-12】
Dim S N S=0:N=0 Do While s"?" har= Input BoxS("请输入一个字符") Pint"输入的字符数是:"; Count End Sub 【例3-14】 Private Sub Form Click For i= 1 To 9 Next i For k= 1 To j Print Tab(k*6): j*k; Next 第4章 课前体验 (1)假定用来输入数学成绩的文本框名称为Text1,该文本框的 Lost focus事件过程如 下 Private Sub TextI LostFocuso If Val(Textl.Text)100 Then Text1. Text (2)其他文本框的 Lost Focus事件类似
4 Dim S, N S = 0: N = 0 Do While S "?" Count = Count + 1 char = InputBox$("请输入一个字符") Wend Print "输入的字符数是:"; Count End Sub 【例 3-14】 Private Sub Form_Click() Print " *"; For i = 1 To 9 Print Tab(i * 6); i; Next i Print For j = 1 To 9 Print j; For k = 1 To j Print Tab(k * 6); j * k; " "; Next k Print Next j End Sub 第 4 章 课前体验 (1)假定用来输入数学成绩的文本框名称为 Text1,该文本框的 LostFocus 事件过程如 下: Private Sub Text1_LostFocus() If Val(Text1.Text) 100 Then Text1.Text = "" Text1.SetFocus End If End Sub (2)其他文本框的 LostFocus 事件类似
(3)假定按钮名称为 Command 1,该按钮的 Click事件过程如下 Private Sub Commandl Click If Check1 Value I Then Sum= Sum+ Val(TextI Text) If Check2 Value I Then Sum= Sum+ Val(Text2 Text) If Check3. value =I Then Sum= Sum Val(Text3Te If Check 4. Value= I Then Sum= Sum+ val(Text4Text If Checks. value=I Then Sum= Sum+ Val(Texts. Text Text6 Text Sum End sub 【例4-1】 Private Sub Command1 Click 在其单击事件中编程 For i= 1 To 6 外循环,控制输出几行 内循环,控制输出几列 Print 4 Print End sub 【例42】 Private Sub TextI Changeo Text2 Text=LCase(TextIText Text. Text =CAse(TextI Text) End Sub 【例4-3】 Private Sub CheckI Click Textl. FontUnderline not text FontUnderline End Sub Private Sub Check2 Click Textl. Fontltalic Not text. fontltalic End Sub Private Sub Option Click TextI Font="黑体 End sub Private Sub Option2 Click Text Font="宋 nd sub 【例44】 Private Sub Commandl Click f Option Then Textl FontName="宋体
5 (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 = Sum End Sub 【例 4-1】 Private Sub Command1_Click() ‘在其单击事件中编程 For i = 1 To 6 ‘外循环,控制输出几行 For j = 1 To i ‘内循环,控制输出几列 Print " * "; Next j Print ‘换行 Next i End 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.FontUnderline End Sub Private Sub Check2_Click() Text1.FontItalic = Not Text1.FontItalic End Sub Private Sub Option1_Click() Text1.Font = "黑体" End Sub Private Sub Option2_Click() Text1.Font = "宋体" End Sub 【例 4-4】 Private Sub Command1_Click() If Option1 Then Text1.FontName = "宋体" Else
Text. FontName="黑体 End If Text1. FontSize =8 ext FontS ize=10 End If End Sub Private Sub Command2 Click End Sub 【例45】 Private Sub Form Load 在窗体的Load事件中输入列表框的各个项目 IstBooks AddItem"计算机应用基础 IstBooks additem"操作系统 IstBooks AddItem"数据结构 Books. additem"网络技术基础 End sub Private Sub cmdAdd click 单击添加命令按钮时将文本框中输入的内容添加到列表框中 IstBooks AddItem txtltem Private Sub cmdDelete Click 删除列表框中选中的项目 IstBooks Removeltem IstBooks ListIndex End sub Private Sub cmdModify Click 所选项目显示在文本框中,等待修改 txtltem. Text IstBooks . Text cmdAdd Enabled False cmd Delete. Enabled False cmdModify. Enabled=False cmdModify OK Enabled =True End sub Private Sub cmdModify OK Click 所选项目显示在文本框中修改完成后,按下修改确定按钮,更新列表框内容 bOoks List(lstBooks. ListIndex)=txtltem cmdModify oK Enabled=True 6
6 Text1.FontName = "黑体" End If If Option3 Then Text1.FontSize = 8 Else Text1.FontSize = 10 End If End Sub Private Sub Command2_Click() End End Sub 【例 4-5】 Private Sub Form_Load() ‘在窗体的 Load 事件中输入列表框的各个项目 lstBooks.AddItem "计算机应用基础" lstBooks.AddItem "操作系统" lstBooks.AddItem "数据结构" lstBooks.AddItem "网络技术基础" End Sub Private Sub cmdAdd_Click() ‘单击添加命令按钮时将文本框中输入的内容添加到列表框中 lstBooks.AddItem txtItem txtItem = "" End Sub Private Sub cmdDelete_Click() ‘删除列表框中选中的项目 lstBooks.RemoveItem lstBooks.ListIndex End Sub Private Sub cmdModify_Click() ‘所选项目显示在文本框中,等待修改 txtItem.Text = lstBooks.Text cmdAdd.Enabled = False cmdDelete.Enabled = False cmdModify.Enabled = False cmdModify_OK.Enabled = True End Sub Private Sub cmdModify_OK_Click() ‘所选项目显示在文本框中修改完成后,按下修改确定按钮,更新列表框内容 lstBooks.List(lstBooks.ListIndex) = txtItem cmdModify_OK.Enabled = True
cmdAdd Enabled True cmdModify. Enabled = True End sub 【例46】 Private Sub Form Click Picture3. PicturesPicturel Picture Picture2. PicturesPicture3 Picture Pciture3. PicturesLoadPictu 把第3个图片框设置为空 【例4-7】 Text. Text HScroll value 【例4-8】 Private Timer Timer Label. Caption=Times End Sub 实训 Private Sub Commandl Click Debug. Print"姓名"; TextI.Text Debug. Print"出生年月";Text2Text Debug. Print"籍贯:"Text3,lext If Option. Value Then Debug. Print"性别;"男" If Option2. Value then debug print"性别:";"女 Debug. Print"民族"; Combo. Text If Check1 value= I Then Debug. Print"健康" Else debug print"不健康 Debug. Print"职称:"; Combo3.lext Debug. Print"工资:";Tex+4.Text Debug. Print"外语熟练程度"; HScroll. Value Debug. Print"简历;"; Text.Text End sub 第5章 课前体验 Private Sub Command6 Click Const n =10 定义常量n的值为 Max =0:K=0 最高分及所在位置赋初值 For i =I To n b(i)= InputBox("请输入第"&i&”个同学的成绩",求最高分)‘输入成绩 If b(i)>Max Then Max=b(i) 将第i个成绩与最高分Max相比,如果比最高分高,则保存起来
7 cmdAdd.Enabled = True cmdDelete.Enabled = True cmdModify.Enabled = True txtItem = "" End Sub 【例 4-6】 Private Sub Form_Click() Picture3.Picture=Picture1.Picture Picture1.Picture=Picture2.Picture Picture2.Picture=Picture3.Picture Pciture3.Picture=LoadPicture() ‘把第 3 个图片框设置为空 End sub 【例 4-7】 Private Sub HScroll1_Change() Text1.Text = HScroll1.Value End Sub 【例 4-8】 Private Timer1_Timer() Labe1.Caption=Time$ End Sub 实训 Private Sub Command1_Click() Debug.Print "姓名:"; Text1.Text Debug.Print "出生年月:"; Text2.Text Debug.Print "籍贯:"; Text3.Text If Option1.Value Then Debug.Print "性别:"; "男" If Option2.Value Then Debug.Print "性别:"; "女" Debug.Print "民族:"; Combo1.Text If Check1.Value = 1 Then Debug.Print "健康" Else Debug.Print "不健康" Debug.Print "职称:"; Combo3.Text Debug.Print "工资:"; Text4.Text Debug.Print "外语熟练程度"; HScroll1.Value Debug.Print "简历:"; Text5.Text End Sub 第 5 章 课前体验 Private Sub Command6_Click() Const n = 10 ‘定义常量 n 的值为 10 Max = 0: K = 0 ‘最高分及所在位置赋初值 For i = 1 To n b(i) = InputBox("请输入第"& i &"个同学的成绩",求最高分) ‘输入成绩 If b(i) > Max Then Max = b(i) K = I ‘将第 i 个成绩与最高分 Max 相比,如果比最高分高,则保存起来
Print"最高分是第"&K&"个同学,其成绩是:"&Max Private Sub Commandl Click a(1)=1:a(2)=3:a(3)=5 End sub 【例5-2】 For =l To 10 b()= Input Box("请输入第"&i&"个数") Next i 【例5-3】 For F=l To 2 Next j Next i 【例5-4】 Dim S(3, 2)As Intege 二维数组的输出回区 程序如下: 123 For i=0 To 3 345 Print Tab(5) 输出位置定位 567 789 给各元素赋值 Print S(i,J; 图5-4使用二维数组打印出的图形 Print 换行 【例5-5】 Private Sub Form Click Dim s(5)As Integer 定义数组S Const n= 5 For i =1 To n s(i)=val( Input Box("请输入第”& TRims(Str$(i))&“"个数",数据排序) 输入n个数,转换成数值后保存在数组中。 For i=1 To 进行n-1趟比较 Max = i 对第i遍比较时,初始假定第i个元素最小
8 End If Next i Print"最高分是第"& K &"个同学,其成绩是:"& Max End Sub 【例 5-1】 Option Base 1 Private Sub Command1_Click() Dim a(3) As Integer a(1) = 1: a(2) = 3: a(3) = 5 Print a(1) Print a(2) Print a(3) End Sub 【例 5-2】 For i=1 To 10 b(i) = InputBox("请输入第" & i & "个数") Next i 【例 5-3】 For i=1 To 2 For j=1 To 2 b(i,j) = i+j Next j Next 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 ‘给各元素赋值 Print S(i, j); Next j Print ‘换行 Next i 【例 5-5】 Private Sub Form_Click() Dim s(5) As Integer '定义数组 S Const n = 5 For i = 1 To n s(i) = Val(InputBox("请输入第" & LTrim$(Str$(i)) & "个数", 数据排序)) ‘输入 n 个数,转换成数值后保存在数组中。 Next i For i = 1 To n-1 ‘进行 n-1 趟比较 Max = I ‘对第 i 遍比较时,初始假定第 i 个元素最小。 图 5-4 使用二维数组打印出的图形
For j=i+ I To n 在数组i~n个元素中选最小元素 f s(j)< s(Max) Then Max j t= s(i) s(Max) i~n个元素中选出的最小元素与第i个元素交换 For i =1 To 5 Print s(i) End Sub Private Sub Form Click ReDim b(2) Fori=0 to 2 ReDim Preserve b(3) For 1=0 To 3 Print b(0) 【例5-7】 Dim a( 8, 8)As Integer 定义一个二维数组 Private Sub Form Click 下面的二层循环语句给数组赋值 If i= 1 Or j=I Then 数组中每一行第一个,最后一个数均为1 a(i,j)=a(i-1,j-1)+a(i-1,j 数组中其余数据等于它上一行的相邻两列之和 下面的二层循环语句将数组中的值打印出来 Print Tab(20-2*i) 定位打印位置 Ifa,j)<10Then将数组中的值转换成长度为3的字符串,可使打印数据整齐 J)+
9 For j = i + 1 To n ‘在数组 i~n 个元素中选最小元素 If s(j) < s(Max) Then Max = j Next j t = s(i) s(i) = s(Max) s(Max) = t ‘i~n 个元素中选出的最小元素与第 i 个元素交换 Next i For i = 1 To 5 Print s(i) Next i End Sub 【例 5-6】 Dim b() As Integer Private Sub Form_Click() ReDim b(2) For i = 0 To 2 b(i) = i Next i ReDim Preserve b(3) b(3) = 7 For i = 0 To 3 Print b(i); Next i End 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)) + "
Elself a(i,j) arr (row, col)Then CO End If 下列程序段输出矩阵及最大值及所在位置 Print"您输入的矩阵是 Prin
10 ElseIf a(i, j) arr(row, col) Then row = i: col = j End If Next j Next i ‘下列程序段输出矩阵及最大值及所在位置 Print "您输入的矩阵是:" Print