vb经典题目及答案
1、在考生文件夹下有工程文件wy7.vbp 及窗体文件wy7.frm ,该程序是不完整的,请在有 ?号的地方填入正确的程序代码,然后删除 ?及所有注释符号(即 '号),但不能修改其它部分。修改后的程序文件都保存,存盘时不得修改文件夹和文件名。
本题描述如下:
在窗体上有一个名为Text1的文本框,有三个命令按钮,名称分别是C1、C2和C3,标题分别是" 读入" 、" 加密" 和" 存盘" 。要求程序运行后,点击" 读入" 按钮,将文本文件in7.txt (该文件在考生文件夹下)中的文本信息读入文本框Text1中;点击" 加密" 按钮将Text1中的英文字母加密转换,并将转换后的结果显示到Text1中。转换方式为转换成该字母对应字母表中后两个位置的字母。 例如,转换前的字母是"a" ,则转换后的是"c" ,转换前是"E" ,转换后是"G" ;点击" 存盘" 按钮, 则将转换后的文本框中的文本保存到out7.txt 文件中(该文件保存到考生文件夹下)。
Private Sub C1_Click()
Dim strinfo As String
Open "in7.txt" For Input As 1
Input #1, strinfo
Close #1
Text1.Text = strinfo
End Sub
Private Sub C2_Click()
Dim strchange As String
Dim i As Integer
For i = 1 To Len(Text1.Text)
strchange = strchange + Chr(Asc(Mid(Text1.Text, i, 1)) + 2)
Next
Text1.Text = strchange
End Sub
Private Sub C3_Click()
Open "out7.txt" For Output As 1
Print #1, Text1.Text
Close #1
End Sub
2、(1)在考生文件夹下有工程文件wy5.vbp 及窗体文件wy5.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即' 号),但不能修改其它部分。存盘时不得改变文件名和文件夹。
本题描述如下:
在窗口中有一个RichText 文本框控件(名称为rtx1)和一个文本框控件(名称为Text1),两个命令按钮,
名称分别为Command1和Command2,标题分别为" 加入WY01.TXT" 、" 统计字符个数" 。要求程序运行后,单击command1将考生文件夹下的wy01.txt 的内容显示到rtx1中;单击" 统计字符个数" 按钮统计Text1中有多少个字符,将结果显示在Text1中。
Option Explicit
Private Sub Command1_Click()
rtx1.LoadFile App.Path + "\wy01.txt"
End Sub
Private Sub Command2_Click()
If rtx1.Text "" Then
Text1.Text = Len(rtx1.Text)
End If
End Sub
\
3、在考生文件夹下有工程文件wy7.vbp 及窗体文件wy7.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号),但不能修改其它部分。存盘时不得改变文件名和文件夹,相应的dat 文件也保存到考生文件夹下,否则没有成绩。
本题描述如下:
在名称为Form1的窗体上有五个Label 控件和两个命令按钮, 数据文件prog8a.dat 存放一些字符。
1)按" 开始" 按钮后, 能从考生文件夹下的prog8a.dat 中读出数据并分别统计出其中数字、大写字母、小写字母和其它类型字符的个数,将结果写入考生文件夹下的prog8b.dat 文件中(以标准格式在一行中输出);
2)执行完毕," 开始" 按钮变成" 完成" ,且无效(变灰)
Private Sub COMSTART_Click()
Dim Ch As String, Number As Integer, Cp As Integer, Lp As Integer, Others As Integer myfile1 = App.Path & "\" & "prog8a.dat"
myfile2 = App.Path & "\" & "prog8b.dat"
Open myfile1 For Input As #1
Open myfile2 For Output As #2
While Not EOF(1)
Input #1, Ch$
If Asc(Ch$) >= 48 And Asc(Ch$)
Number = Number + 1
ElseIf Asc(Ch$) >= 65 And Asc(Ch$)
Cp = Cp + 1
ElseIf Asc(Ch$) >= 97 And Asc(Ch$)
Lp = Lp + 1
Else
Others = Others + 1
End If
Wend
Print #2, Number, Cp, Lp, Others
Close
COMSTART.Caption = "完成"
COMSTART.Enabled = False
End Sub
4、在考生文件夹下有工程文件wy7.vbp 及窗体文件wy7.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号),但不能修改其它部分。存盘时不得改变文件名和文件夹,相应的dat 文件也保存到考生文件夹下,否则没有成绩。
本题描述如下:
在名称为Form1的窗体上有五个Label 控件和两个命令按钮, 数据文件grade.dat 存放一些成绩。
1)按" 开始" 按钮后,从考生文件夹下的grade.dat 中读出数据并求出它们的平均数,将结果写入考生文件夹下的average.dat 文件中;
2)执行完毕," 开始" 按钮变成" 完成" ,且无效(变灰)
5、(1)在考生文件夹下有工程文件wy5.vbp 及窗体文件wy5.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号),但不能修改其它部分。存盘时不得改变文件名和文件夹。
本题描述如下:
在名称为Form1的窗体上有一个Label 控件,4个Text 控件及7个命令按钮,功能如下:
1)开始启动工程时,界面上除" 开始录入" 及" 退出" 按钮之外, 其它按钮均不可用(灰色显示)。
2)单击" 开始录入" 按钮之后,利用INPUTBOX 让用户连续且必须录入 10个数。若录入为非数字符号,则给出警告" 输入数据无效,请重新输入数值数据,请输入第n 个数" 。
3)录入完毕后," 开始录入" 变灰,其它变为可用状态。
4)按相应的按钮可分别求出所录入数据的" 升序" 、" 降序" 排列及" 最大数" 和" 最小数" 并在右侧对应的文本框中显示。(注意用A(10)存放最大数,A(1)存放最小数)
5)单击" 清除" 按钮将所有文本框清空。
Private Sub COMSTART_Click()
Dim g As Single, N As Integer, S As Single
myfile1 = App.Path & "\" & "grade.DAT"
myfile2 = App.Path & "\" & "average.dat"
Open myfile1 For Input As #1
Open myfile2 For Output As #2
Do While Not EOF(1)
Input #1, g
N = N + 1
S = S + g
Loop
Close #1
S = S / N
Write #2, S
COMSTART.Caption = "完成"
COMSTART.Enabled = False
End Sub
***********************************************************************
(2)在考生文件夹下有工程文件wy6.vbp 及窗体文件wy6.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号),但不能修改其它部分。存盘时不得改变文件名和文件夹。 本题描述如下:
在名称为Form1,标题为" 求和程序" 的窗体上有三个Label 控件,两个
Text 控件和三个命令按钮。该程序的主要功能是求从1到Text1中用户输入的任意自然数n 的累加和:
1)刚启动工程时," 显示结果" 和" 清除" 按钮均为灰色
2)可以在输入框内输入任意自然数(n 值太大时,运算时间将很长,建议不
超过9位) 。在输入数的同时" 显示结果" 变为可用。当输入为非数值时,累加结果为0
3)单击" 显示结果" 可以在Text2中显示累加和,且该框内的文字不可修改;同时" 显示结果" 变灰," 清除" 变为可用
4)单击" 清除" ,输入框和显示框均显示"0"
5)单击" 关闭" 按钮结束程序的运行
Option Explicit
Private Sub Command1_Click()
Dim i As Double
Dim sum As Double
Dim n As Double
sum = 0
n = Val(Text1.Text)
For i = 1 To n
sum = sum + i
Next i
Text2.Text = sum
Command1.Enabled = False
Command2.Enabled = True
Private Sub Command2_Click()
Text1.Text = 0
Text2.Text = 0
Command1.Enabled = True
Command2.Enabled = False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
Command1.Enabled = False
Command2.Enabled = False
End Sub
Private Sub Text1_Change()
Command1.Enabled = True
End Sub
6、(1)在考生文件夹下有工程文件wy5.vbp 及窗体文件wy5.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即' 号),但不能修改其它部分。存盘时不得改变文件名和文件夹。
本题描述如下:
在窗体上有一个标签数组,名为Label1,该数组有4个控件元素,标题分别是" 程序运行" 、" 文本编辑" 、" 双向箭头" 和" 移动窗体" 。在程序运行后,将鼠标移动到各控件元素上, 则鼠标的形状将变成各控件元素的标题所代表的鼠标形状,离开控件元素,则又变成正常情况下的箭头形状。
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.MousePointer = 0
End Sub
Private Sub Label1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
Select Case Index
Case 0
Form1.MousePointer = 11
Case 1
Form1.MousePointer = 3
Case 2
Form1.MousePointer = 7
Case 3
Form1.MousePointer = 5
End Select
End Sub
7、(1)在考生文件夹下有工程文件wy5.vbp 及窗体文件wy5.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即' 号),但不能修改其它部分。存盘时不得改变文件名和文件夹。
本题描述如下:
在窗体中有两个命令按钮,名称分别是C1和C2, 标题分别是" 修改窗体图标" 和" 修改窗体标题" 。要求程序运行后,点击C1命令按钮,则将窗体标题栏中的图标换为图标文件1.ico (该文件在考生文件夹下);点击C2命令按钮,则将窗体标题修改为" 窗体" 。
Private Sub C1_Click()
Form1.Icon = LoadPicture("1.ico")
End Sub
Private Sub C2_Click()
Form1.Caption = "窗体"
End Sub
8(2)在考生文件夹下有工程文件wy6.vbp 及窗体文件wy6.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号) ,但不能修改其它部分。存盘时不得改变文件名和文件夹。 本题描述如下:
在窗口中有一个名称为COMMAND1, 标题为" 读取字型" 的命令按钮,一个名称为COMBO1的下拉组合框和一个提示标签Label1。要求程序运行后,单击" 读取字型" 按钮读取系统的字型,在COMBOX1中显示。Private Sub Command1_Click()
Dim I As Long
For I = 0 To Screen.FontCount - 1
Combo1.AddItem Screen.Fonts(I)
Next
End Sub
9(2)在考生文件夹下有工程文件wy6.vbp 及窗体文件wy6.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号)但不能修改其它部分。存盘时不得改变文件名和文件夹。 本题描述如下:
该程序的功能是:根据给定的图形的三边的边长来判断图形的类型。若为三角形则同时计算出为何种三角形,及三角形的周长和面积。
要求完成" 判断并计算" 按钮的如下功能:
1)判断输入的条件是否为三角形,若是三角形则在Text1中显示" 是三角形" ;在Text2中显示是何种三角形。
2)单击" 清除再来" 按钮可以将所有显示框清空,且按钮本身变为不可选取状态。当单击" 判断并计算" 之后重新恢复为可选状态。
附:
1)三角形存在的条件为任一边不为0且任两边之和大于第三边。
2)若一边具有a^2+b^2=c^2, 则为直角三角形;若所有边具有a^2+b^2>c^2,则为锐角三角形;若一边具有a^2+b^2
Label1.Enabled = False
For i = 1 To 10
a(i) = InputBox("请输入第 " & i & " 个数, 请务必输入数值数据!", "输入")
Do While IsNumeric(a(i)) = False
a(i) = InputBox("输入数据无效,请重新输入数值数据!!!" & "请输入第 " & i & " 个数", "输入")
Loop
Next i
For i = 1 To 9
For j = i + 1 To 10
If Val(a(j))
m = a(j)
a(j) = a(i)
a(i) = m
End If
Next j
Next i
Command6.Enabled = False
Command1.Enabled = True
Command2.Enabled = True
Command3.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command7.Enabled = False
End Sub
Private Sub Command7_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Label1.Enabled = True
Command6.Enabled = True
Command4.Enabled = False
Command3.Enabled = False
Command2.Enabled = False
Command1.Enabled = False
Command7.Enabled = False
End Sub
Private Sub Form_Load()
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
Command4.Enabled = False
Command7.Enabled = False
End Sub
10、在考生文件夹下有工程文件wy7.vbp 及窗体文件wy7.frm ,该程序是不完整的,请在有?号的地方填入正确内容,然后删除?及所有注释符(即 '号),但不能修改其它部分。存盘时不得改变文件名和文件夹。 本题描述如下:
在窗体上有一个名为L1的列表框,列表框中有若干的列表项(见下图),通过属性窗口设置列表框的MultiSelect 属性为1。还有两个命令按钮,名称分别是C1和C2,标题分别是" 全选" 和" 存盘" 。要求在程序运行时,点击"C1" 按钮则将L1中的全部列表项选中,然后点击"C2" 按钮,将L1中的全部列表项写入文本文件out7.txt 中,并将out7.txt 保存在考生文件夹下。
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
r = 20
c = 0
st = 0.063
HScroll1.Min = 1 '设置最小值
HScroll1.Max = 100 '设置最大值
End Sub
Private Sub HScroll1_Change()
Timer1.Interval = 200 - HScroll1.Value '根据滚动条的数值设置时间间隔, 速度越快, 间隔越小 End Sub
Private Sub Picture1_Paint()
Picture1.FillColor = QBColor(12)
Picture1.ForeColor = QBColor(12)
Picture1.Circle (0, 0), 2
x = Cos(c) * r
y = Sin(c) * r
Picture1.FillColor = QBColor(14)
Picture1.ForeColor = QBColor(14)
Picture1.Circle (x, y), 0.5
c = c + st
If c >= 2 * 3.14159 Then
c = c Mod (2 * 3.14159)
End If
End Sub
Private Sub Timer1_Timer()
Picture1.Refresh '重画图片框
End Sub
Dim i As Integer
For i = 0 To L1.ListCount - 1
L1.Selected(i) = True
Next
End Sub
Private Sub C2_Click()
Dim i As Integer
Open "out7.txt" For Output As 1
For i = 0 To L1.ListCount - 1
L1.ListIndex = i
Print #1, L1.Text,
L1.Selected(i) = False
Next
Close #1
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
r = 20
c = 0
st = 0.063
HScroll1.Min = 1 '设置最小值
HScroll1.Max = 100 '设置最大值
End Sub
Private Sub HScroll1_Change()
Timer1.Interval = 200 - HScroll1.Value '根据滚动条的数值设置时间间隔, 速度越快, 间隔越小 End Sub
Private Sub Picture1_Paint()
Picture1.FillColor = QBColor(12)
Picture1.ForeColor = QBColor(12)
Picture1.Circle (0, 0), 2
x = Cos(c) * r
y = Sin(c) * r
Picture1.FillColor = QBColor(14)
Picture1.ForeColor = QBColor(14)
Picture1.Circle (x, y), 0.5
c = c + st
If c >= 2 * 3.14159 Then
c = c Mod (2 * 3.14159)
End If
End Sub
Private Sub Timer1_Timer()
Picture1.Refresh '重画图片框
End Sub
Option Explicit
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub
Private Sub HScroll1_Change()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub
Private Sub HScroll2_Change()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub
Private Sub HScroll3_Change()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value) End Sub