VB后半学期练习题
1、 编制通用函数过程,计算1+2+??+N 的值。在窗体的Click事件中调用该函数。 Private Function sum(n As Integer) As long Dim i As Integer For i = 1 To n sum = sum + i Next i End Function
Private Sub Form_Click() Print sum(100) '任意选取一个数对函数过程进行调试就可 End Sub
2、 编制通用函数过程,计算N!的值。在窗体的Click事件中调用该函数。 Private Function fact(n As Integer) As Double Dim i As Integer
fact = 1 '必须赋初值 For i = 1 To n fact = fact * i Next i End Function
Private Sub Form_Click() Print fact(5) End Sub
3、 编制通用函数过程,用于判断1个整数是否为素数,若是则显示true,若不是则显示false。在窗体
的Click事件中调用该函数。
Private Function prime(n As Integer) As Boolean ' Boolean逻辑型 Dim i As Integer If n < 2 Then prime = False Else
For i = 2 To Int(Sqr(n))
If n Mod i = 0 Then Exit For Next i
If i > Int(Sqr(n)) Then prime = True Else
prime = False End If End If End Function
Private Sub Form_Click() Print prime(4),prime(7) End Sub
4、 编制一个判断奇偶数的Function函数过程。在窗体的Click事件中调用该函数,输入一个整数,判断其奇偶性。比如:输入10则显示“10是偶数”,输入3则显示“3是奇数” Private Function Odd(n As Integer) As string
If n Mod 2 = 0 Then
Odd =n & “是偶数” Else
Odd = n & “是奇数”
End if End Function
Private Sub Form_Click() Print Odd(4),Odd(5) End Sub
5、 新建一个工程,完成“密码检验”程序的设计。具体要求如下:
(1)参照运行时界面完成界面设计。(2)文本框Text1,用于输入密码。文本框中输入的字符显示为*,
并且最多可以接受7个字符。(3)窗体的下半部有一个标签控件Label2,用来显示密码输入后的提示信息。(4)当在文本框中输入密码“1234567”,并按回车后,标签Label2显示为“欢迎光临!”;
1
VB后半学期练习题
如果输入的密码与“1234567”不吻合,标签Label2显示为“密码不符,请再输入一遍!”,同时清空文本框的内容,允许再输入一遍;如果第二次输入的密码仍然与“1234567”不吻合,标签Label2显示为“非法用户,请退出程序!”,文本框就不能使用了。
Private Sub Form_Load()
Label1.Caption = \输入密码后按回车\chr(13) & chr(10) & \(提示:密码1234567)\ Text1.PasswordChar = \ Text1.MaxLength = 7 End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) Static n As Integer 'n用来记录输入次数 If KeyAscii = 13 Then '表示单击回车后 If Text1.Text = \ Then '判断密码是否正确 Label2.Caption = \欢迎光临!\ Label1.Visible = False Text1.Visible = False
Else
n = n + 1 '计算输入次数
If n<2 Then
Label2.Caption = \密码不符,请再输入一遍!\ Text1.Text = \ Else
Label2.Caption = \非法用户,请退出程序!\ Text1.Enabled = False '文本框不可用 End If End If End If End Sub
6、 新建一个工程,完成“编辑”程序的设计。具体要求如下:(1)窗体的标题为“编辑”。(2)窗体中有以
下控件:一个文本框、四个命令按钮。(3)完成以下功能:文本框实现文本编辑功能,单击按钮实
现相应功能。
Private Sub Command1_Click()
Clipboard.Clear Clipboard.SetText Text1.SelText End Sub
Private Sub Command2_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SelText = \ End Sub
Private Sub Command3_Click()
2
'清除剪贴板中的内容' '将选中文本送入剪贴板
'清空文本框内被选中的文本'
VB后半学期练习题
Text1.SelText = Clipboard.GetText End Sub
Private Sub Command4_Click()
Text1.SelText = \ End Sub
Private Sub Form_Load() Text1.Text = \End Sub
'将剪贴板上的文本复制到指定文本框的光标处'
'清空文本框内被选中的文本'
7、
新建一个工程,完成“替换”程序的设计。具体要求如下: (1) 窗体的标题为“替换”。
(2) 窗体中有以下控件:一个文本框可以多行编辑,两个文本框,两个标签框,一个命令按钮。
(3) 完成以下功能:输入查找内容,把编辑框中所有与查找内容一样的部分替换成另外一个内容。单击
“替换”按钮执行。
Private Sub Command1_Click()
Dim len1 As Integer, len2 As Integer, len3 As Integer len1 = Len(Text1) '计算文本框1的长度放入变量len1中 len2 = Len(Text2) '计算文本框2的长度放入变量len2中 len3 = Len(Text3) '计算文本框3的长度放入变量len3中 Do While i <= len1 - len2
If Text2 = Mid(Text1, i + 1, len2) Then '判断文本是否与查找的对象一致 Text1.SetFocus Text1.SelStart = i
Text1.SelLength = len2 Text1.SelText = Text3 i = i + len3 '替换后光标的位置 len1 = len1 - len2 + len3 Else
i = i + 1 End If Loop End Sub
8、 新建一个工程,完成“字体修饰” 程序的设计。具体要求如下:
(1) 按照下图所示在窗体上放置按钮和控件。窗体的标题为“字体修饰”。
(2) 框架Frame1中有一个复选框数组,可以选择粗体,斜体对标签中的文字进行修饰。 (3) 框架Frame2中有一个单选钮框数组,可以选择宋体或楷体对标签中的文字进行修饰。
(4) 标签Label1的文字内容为“Visual Basic程序设计“,宋体,常规,三号;文字对齐方式为居
中。
3
VB后半学期练习题
Private Sub Check1_Click(Index As Integer) Select Case Index Case 0
If Check1(0).Value = 1 Then Label1.FontBold = True Else
Label1.FontBold = False End If Case 1
If Check1(1).Value = 1 Then Label1.FontItalic = True Else
Label1.FontItalic = False End If End Select End Sub
Private Sub Option1_Click(Index As Integer) Select Case Index Case 0
Label1.FontName = \宋体\ Case 1
Label1.FontName = \楷体_gb2312\ End Select End Sub
9、 新建一个工程,完成“点餐”程序的设计。具体要求如下: (1) 窗体的标题为“点餐”。
(2) 窗体中有以下控件:一个框架控件作为容器,内有三个复选框数组、对应三个文本框数组、
三个标签框、一个命令按钮。
(3) 要求文本框只能接受数字键,并且只有选取了相应的套餐后才可以进行输入;如果没有选取
大套餐,那么文本框不能编辑,并清空。
(4) 完成以下功能:选择所需套餐种类及份数,单击确定按钮后计算所需的钱,并用消息框显示。
Private Sub Form_Load() Form1.Caption = \点餐\
Command1.Caption = \确定\Frame1.Caption = \菜单\
Check1(0).Caption = \儿童套餐馆18元\ Check1(1).Caption = \标准套餐23元\ Check1(2).Caption = \商务餐28元\ For i = 0 To 2
Label1(i).Caption = \份数\ Check1(i).Value = 0 Text1(i).Enabled = False Next End Sub
Private Sub Check1_Click(Index As Integer) If Check1(Index).Value = 1 Then '若当前复选框被选中,文本框被启用,同时获得焦点 Text1(Index).Enabled = True Text1(Index).SetFocus Else
Text1(Index).Text=\
Text1(Index).Enabled=False
4
VB后半学期练习题
End If End Sub
Private Sub Command1_Click() Dim a%, b%, c%, sum% a = Val(Text1(0).Text) b = Val(Text1(1).Text) c = Val(Text1(2).Text)
sum = a * 18 + b * 23 + c * 28
MsgBox \一共\元\总价\End Sub
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then '输入非数字时弹出对话框,同时文本框重新获得焦点 KeyAscii = 0
MsgBox \请输入数字\ Text1(Index).SetFocus End If End Sub 10、 某公司对员工的工资进行调整:若原有工资大于等于1000元,增加工资35%;若小于1000元
大于等于800元,则增加工资25%;若小于800元,则增加工资15%。请根据用户输入的原有工资,
计算出增加后的工资。
Private Sub Command1_Click()
Text1.SetFocus Text1.Text = \Text2.Text = \Option1.Value = False Option2.Value = False Option3.Value = False End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Option1_Click()
If Val(Text1.Text) >= 1000 Then Text2.Text = Val(Text1.Text) * 1.35 End If End Sub
Private Sub Option2_Click() If Val(Text1.Text) >= 800 And Val(Text1.Text) < 1000 Then Text2.Text = Val(Text1.Text) * 1.25 End If
5