posts - 70,comments - 80,trackbacks - 0

1 、编写 显示文件夹中的文本文件内容 程序:要求窗体左侧列出程序所在目录中所有的文本文件,选择窗体左侧列表中的文件,右侧将显示该文件的内容。

答:o_js1.JPG
源代码:
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 )单击 继续 按钮,程序继续显示字符, 继续 按钮变为 运行 按钮。

答:o_js2.JPG
源程序:
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 内。

答:o_js3.JPG
源程序:
 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 )单击“查找”按钮,在生成的矩阵中,找出本行中值最大、在本列中值最小的元素(可能不存在)。若存在这样的元素,则在右部的列表框中输出它的值,以及对应的行号和列号;若不存在,则输出“不存在”的信息。

答:o_js4.JPG
源程序:
 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 ”,清除后能继续运行。

答:o_js5.JPG
源程序:
 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 )程序界面如下图所示。

答:o_js6.JPG
源程序:
 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 ,找出蛇行矩阵的规律。单击“生成”按钮,在窗体上部的文本框中显示生成的矩阵。

答:o_js7.JPG
源程序: 

   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 )程序界面如下图所示。

答:o_js8.JPG
源程序:
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 课堂

FeedBack:
# re: Visual Basic 6.0编程竞赛题库二 参考答案
2007-12-07 20:38 | 传世私服
9622  回复  更多评论
  
# re: Visual Basic 6.0编程竞赛题库二 参考答案
2007-12-07 20:39 | 征途私服
7928  回复  更多评论
  
# re: Visual Basic 6.0编程竞赛题库二 参考答案
2007-12-27 19:21 | 雨舒
竞赛题好难啊,我看都看不懂。  回复  更多评论
  

只有注册用户登录后才能发表评论。