1
、编写
“
显示文件夹中的文本文件内容
”
程序:要求窗体左侧列出程序所在目录中所有的文本文件,选择窗体左侧列表中的文件,右侧将显示该文件的内容。
答:
源代码:
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
Dim fn As String
ChDrive App.Path
ChDir App.Path
fn = Dir(App.Path & "\*.txt")
Do
If fn <> "" Then
List1.AddItem (fn)
fn = Dir
Else
Exit Sub
End If
Loop Until fn = ""
End Sub
Private Sub List1_Click()
Dim f As String, s As String
f = List1.Text
Open f For Input As #1
Do While Not EOF(1)
s = s & Input(1, #1)
Loop
Text1 = s
Close #1
End Sub
2
、编写
“
字符动态显示
”
程序:(
1
)单击
“
运行
”
按钮,程序开始动态显示字符。单击
“
停止
”
按钮,停止显示,且
“
运行
”
按钮变为
“
继续
”
按钮。(
2
)单击
“
继续
”
按钮,程序继续显示字符,
“
继续
”
按钮变为
“
运行
”
按钮。
答:
源程序:
Dim flag As Boolean
Dim i As Integer
Private Sub Command1_Click()
Timer1.Enabled = True
Label1.Visible = True
If flag = True Then Command1.Caption = "运行"
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
Command1.Caption = "继续"
flag = True
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
flag = False
i = 480
End Sub
Private Sub Timer1_Timer()
i = i + 10
If i > 4000 Then i = 480
Label1.Move i, 720
End Sub
3
、编写
“
奇偶数排列
”
程序:(
1
)按
“
生成
”
按钮,生成
10
个不相同的两位正整数,在文本框
1
内显示。(
2
)按“排列”按钮,将上一步生成的数列排列,奇数在序列左边,偶数在序列右边,排列时,奇、偶数依次从序列两端向序列中间排放。结果显示在文本框
2
内。
答:
源程序:
Dim a(1 To 10) As Integer
Private Sub Command1_Click()
Randomize
Text1 = " "
Dim i As Integer, j As Integer, tem As Integer
a(1) = Int(Rnd * 90) + 10
Text1 = Text1.Text & a(1) & " "
For i = 2 To 10
tem = Int(Rnd * 90) + 10
For j = 1 To i
If tem = a(j) Then i = i - 1: Exit For
Next j
If j > i Then a(i) = tem: Text1 = Text1.Text & a(i) & " "
Next i
End Sub
Private Sub Command2_Click()
Text2 = " "
Dim b(1 To 10) As Integer, i As Integer, j As Integer, k As Integer
j = 1: k = 10
For i = 1 To 10
If a(i) Mod 2 = 0 Then
b(k) = a(i)
k = k - 1
Else
b(j) = a(i)
j = j + 1
End If
Next i
For i = 1 To 10
Text2 = Text2.Text & b(i) & " "
Next i
End Sub
Private Sub Command3_Click()
End
End Sub
4
、编写程序:(
1
)单击“生成”按钮,生成一个各元素由两位正整数组成的
5*5
矩阵。在窗体左部的文本框中显示生成的矩阵。(
2
)单击“查找”按钮,在生成的矩阵中,找出本行中值最大、在本列中值最小的元素(可能不存在)。若存在这样的元素,则在右部的列表框中输出它的值,以及对应的行号和列号;若不存在,则输出“不存在”的信息。
答:
源程序:
Option Base 1
Dim a(5, 5) As Integer
Private Sub Command1_Click()
Dim i, j As Integer
Randomize
Text1 = ""
For i = 1 To 5
For j = 1 To 5
a(i, j) = Int(Rnd * 90) + 10
Text1 = Text1.Text & Str(a(i, j)) & " "
Next j
Text1 = Text1 & vbCrLf & vbCrLf
Next i
End Sub
Private Sub Command2_Click()
Dim i, j, k As Integer
Dim maxline As Integer
Dim flag As Integer
flag = 0
List1.Clear
For i = 1 To 5
maxline = 1
For j = 2 To 5
If a(i, j) > a(i, maxline) Then maxline = j
Next j
For k = 1 To 5
If a(k, maxline) < a(i, maxline) And k <> i Then Exit For
Next k
If k = 6 Then
flag = flag + 1
List1.AddItem "元素" & a(i, maxline) & " 行:" & i & " 列:" & maxline
End If
Next i
If flag = 0 Then List1.AddItem (""): List1.AddItem "不存在符合条件的数!"
End Sub
Private Sub Command3_Click()
End
End Sub
5
、编写“分数化简”程序:(
1
)在等号左边的文本框内输入分子和分母,按“计算”按钮,在等号右边的文本框内显示化简结果,同时“计算”按钮不可用。(
2
)按“清除”按钮,清除文本框内显示的内容,“计算”按钮变可用。(
3
)程序对分母为
0
错误给出出错信息“分母不可为
0
”,清除后能继续运行。
答:
源程序:
Private Sub Command1_Click()
Dim x, y, z As Integer
If Trim(Text1.Text) = "" Then
MsgBox "请输入数值!"
Text1.SetFocus
Exit Sub
End If
If Val(Trim(Text2.Text)) = 0 Then
MsgBox "分母不能为0!"
Command1.Enabled = False
Exit Sub
End If
x = Int(Trim(Text1.Text))
y = Int(Trim(Text2.Text))
z = x \ y: k = maxnumber(x, y)
Text3.Text = Str(z)
If x Mod y = 0 Then
Text4.Text = ""
Text5.Text = ""
Else
Text4.Text = Str((x - y * z) / k)
Text5.Text = Str(y / k)
End If
Command1.Enabled = False
End Sub
Private Function maxnumber(ByVal x As Integer, ByVal y As Integer)
Dim t As Integer
If x < y Then t = x: x = y: y = t
While (y <> 0)
t = x Mod y
x = y
y = t
Wend
maxnumber = x
End Function
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text1.SetFocus
Command1.Enabled = True
End Sub
Private Sub Command3_Click()
End
End Sub
6
、编写“歌手比赛评分模拟”程序:(
1
)比赛有
6
位评委,给每位歌手打分(分值范围:
0
——
10
分),
6
位评委打分后,去掉一个最高分和一个最低分,其余得分的平均值就是歌手的最后得分。(
2
)程序界面如下图所示。
答:
源程序:
Private Sub Command1_Click()
Dim i As Integer
For i = 0 To 5
Text1(i).Text = ""
Next i
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1(0).SetFocus
End Sub
Private Sub Command2_Click()
Dim a(5) As Single
Dim s As Single, i As Integer
Dim max As Single, min As Single
s = 0: max = 0: min = 10
For i = 0 To 5
If Val(Text1(i).Text) <= 10 And Val(Text1(i).Text) >= 0 Then
a(i) = Val(Text1(i).Text)
If max < a(i) Then max = a(i)
If min > a(i) Then min = a(i)
s = s + a(i)
Else
MsgBox "你所输入的分数不规范!"
Text1(i).Text = ""
Text1(i).SetFocus
Exit Sub
End If
Next i
Text2 = max
Text3 = min
Text4 = (s - max - min) \ 4
End Sub
Private Sub Command3_Click()
End
End Sub
7
、编写“
5*5
蛇行矩阵”程序:察看图
2
,找出蛇行矩阵的规律。单击“生成”按钮,在窗体上部的文本框中显示生成的矩阵。
答:
源程序:
Option Base 1
Private Sub Command1_Click()
Dim i, j, k, s, t As Integer
Dim a(5, 5) As Integer
i = 1: k = 0: s = 2: j = 1
While (s < 11)
For t = 1 To j
k = k + 1
a(i, s - i) = k
If s Mod 2 = 0 Then
i = i + 1
Else
i = i - 1
End If
Next t
If s >= 6 Then
j = j - 1
i = i + 2
Else
j = j + 1
End If
If i < 1 Then i = 1
If i > 5 Then i = 5
s = s + 1
Wend
For i = 1 To 5
For k = 1 To 5
If Len(CStr(a(i, k))) = 1 Then
Text1 = Text1.Text & " " & Str(a(i, k)) & " "
Else
Text1 = Text1.Text & Str(a(i, k)) & " "
End If
Next k
Text1 = Text1 & vbCrLf & vbCrLf
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
8
、编写“动态演示正弦曲线”程序。(
1
)单击“正弦曲线”按钮,程序开始动态绘制正弦曲线。单击“停止”按钮,停止绘制。(
2
)程序界面如下图所示。
答:
源程序:
Dim i As Single
Const PI = 3.141592
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Form_Load()
i = 0
End Sub
Private Sub Timer1_Timer()
i = i + 0.001
If i > 4 * PI Then
i = 0
Else
Picture1.PSet (1680 + 300 * i, 1320 - 1000 * Sin(i)), vbBlue
End If
End Sub
posted on 2006-09-28 13:34
木子李 阅读(329)
评论(3) 编辑 收藏 引用 网摘 所属分类:
Visual Basic 课堂