杭州师范大学《计算机技术基础》(VB程序设计)
设计题(请按照题目要求进行答题,完成之后打包上传)
第01套:
第1题:编程,输入x,求下列分段函数的值,计算结果输出到Text控件中。
正确答案:
Private Sub Command1_Click()
Dim x As Single
x = InputBox("输入x", "计算分段函数")
If x <= 3 Then
Text1 = Str(1 + x)
Else
Text1 = Str(x + 3) ^ 0.25
End If
End Sub
第2题:
如下图,编程,点击按钮可以移动列表框中所选中表项的位置。说明:通过load事件添加列表项,运行时,先选择列表框中的选项,才可以使用“上移”或“下移”按钮。当选项是第一项时不能再上移,当选项是最后一项时不能再下移。
正确答案:
Private Sub Command1_Click() '上移
Dim i As Integer
i = List1.ListIndex
List1.AddItem List1.Text, i - 1 '先将选中的内容添加到上一项前
List1.RemoveItem i + 1 '将原来选中的那项删除
List1.ListIndex = i - 1 '将光标重新指向已经上移后的选项
End Sub
Private Sub Command2_Click() '下移
Dim i As Integer
i = List1.ListIndex
List1.AddItem List1.Text, i + 2 '先将选中的内容添加到下一项后
List1.RemoveItem i '将原来选中的那项删除
List1.ListIndex = i + 1 '将光标重新指向已经下移后的选项
End Sub
Private Sub List1_Click()
Command1.Enabled = True: Command2.Enabled = True
If List1.ListIndex = 0 Then
Command1.Enabled = False '第一项不能上移
End If
If List1.ListIndex = List1.ListCount - 1 Then
Command2.Enabled = False '最后一项不能下移
Else
End If
End Sub
第3题:编写程序,将磁盘文件d:\student.dat中若干个学生的姓名、出生年月、外语成绩和计算机成绩显示在列表框中,并且能实现以下功能:直接输入在文本框中的文本可以追加;单击列表框某项,则该项可删除;首次运行时文件可以为空,退出系统前应保存文件。界面设计如图所示。
正确答案:
Private Sub Form_Load()
Dim ss As String
Open "e:\student.dat" For Append As #1
Close #1
Open "d:\student.dat" For Input As #1
While Not EOF(1)
Line Input #1, ss: List1.AddItem ss
Wend
Close #1
End Sub
Private Sub Command1_Click()
If Trim(Text1.Text) <> "" Then List1.AddItem Text1.Text
Text1.Text = ""
End Sub
Private Sub Command2_Click()
List1.AddItem Text1.Text, List1.ListIndex
List1.RemoveItem List1.ListIndex
Text1.Text = ""
End Sub
Private Sub Command3_Click()
Dim i As Integer
Open "d:\student.dat" For Output As #1
For i = 0 To List1.ListCount - 1: Print #1, List1.List(i): Next i
Close #1
End Sub
Private Sub Command4_Click()
Call Command3_Click: End
End Sub
第02套:
第1题:编程,用随机函数产生2个10~100的整数,输出最大值。
正确答案:
Private Sub Command1_Click()
Dim x%, y%,max%
Randomize
x = Int(Rnd * 91 + 10)
y = Int(Rnd * 91 + 10)
Max = x
If y > Max Then y = Max
Print Max
End Sub
第2题:如下图,编写事件过程Command1_Click和Text3_Keypress(Keyascii As Integer)事件,运行时单击“出题”按钮,自动在Text1
和Text2中显示两个2位随机正整数;用户在Text3中输入运算结果,按回车后计算机对运算结果进行评判,并将评判结果在Label2中显示(对了或错了)。要求文本框Text3只接受数字和回车键。(回车键的Ascii码为13,数字键的Ascii码为48到57)
正确答案:
Dim x As Integer, y As Integer
Private Sub Command1_Click()
x = Int(Rnd * 90) + 10: y = Int(Rnd * 90) + 10
Text1.Text = CStr(x): Text2.Text = CStr(y)
Text3.Text = ""
Text3.SetFocus
Label2.Visible = False: Command1.Enabled = False
End Sub
Private Sub Form_Load()
Text1.Text = "": Text2.Text = "": Text3.Text = ""
Label2.Visible = False
Randomize
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 13 Then
KeyAscii = 0
End If
If KeyAscii = 13 Then
Label2.Visible = True
If Val(Text3.Text) = x + y Then
Label2.ForeColor = vbBlue: Label2.Caption = "对了"
Else
Label2.ForeColor = vbRed :Label2.Caption = "错了"
End If
Command1.Enabled = True
End If
End Sub
第3题:在窗体上添加一个文本框和一个命令按钮。当用户在文本框中输入密码并单击命令按钮后,判断输入的密码是否为“123”,如果不是,则弹出对话框提示“密码不正确!单击“确定”,
请再试一次”,并将文本框内容清空,焦点定位在文本框上,3次密码不正确即结束程序运行;如果输入的密码是“123”,则打开文本文件e:\aaa.txt,向文本框中写入:第I次登录日期时间(如:第9次登录2008-6-30
10:11:00)。要求程序运行前先建一个文件e:\aaa.txt,初始内容为:第1次登录2008-6-1 10:41:31,之后每次按顺序在文件末尾写入第2次当前日期当前时间、第3次登录当前日期当前时间……。
正确答案:
Dim k as integer
Private Sub Command1_click()
Dim n As Integer, st as string
If Text1.Text = "123" Then
Open "e:\aaa.txt" For Input As #1
Line Input #1, st
st = Mid(st, 2, 1)
n = 1 + Val(st)
Close #1
Open "e:\aaa.txt" For Append As #1
Print #1, "第"; Trim(n); "次登录"; Now()
Close #1
Else
k = k + 1
If k < 4 Then
MsgBox "密码不正确!单击“确定”, 请再试一次"
Text1.Text = ""
Text1.SetFocus
Else
End
End If
End If
End Sub
第03套:
第1题:编程,求算式1+1/2!+1/3!+1/4!+……前10项的和。
正确答案:
Private Sub Command1_Click()
Dim i%, s!,a!
a = 1: s = 0
For i = 1 To 10
a = a / i
s = s + a
Next i
Print "1+1/2!+1/3!+……="; s
End Sub
第2题:设计一个用于输入学生信息的应用程序。界面如图所示(民族有汉族、苗族、壮族
等;政治面貌有:群众、团员、党员)。要求:
(1)输入完毕后单击确定按钮,能在另一窗口显示输入的信息
(2)单击取消按钮,将取消所输入的信息。
正确答案:
Public info As String
Dim s As String
Private Sub Command1_Click()
info = "学号为" + Text1.Text + ",姓名为" + Text2.Text + ", 性别为" + s +
",民族为" + Combo1.Text + " ,政治面貌为" + Combo2.Text+”.”
Form2.Show
End Sub
Private Sub Command2_Click()
Call Form_Load
End Sub
Private Sub Form_Load()
Text1.Text = "" :Text2.Text = ""
Option1.Value = True :Option2.Value = False
Combo1.Text = "汉族" :Combo2.Text = "群众"
End Sub
Private Sub Option1_Click()
s = "男"
End Sub
Private Sub Option2_Click()
s = "女"
End Sub
第3题:编程实现两个文本文件的合并,要求用驱动器、目录、文件列表框选择文件1,单击按钮1后,调用通用对话框选择文件2;单击按钮2后,将文件2的内容添加到文件1原来内容之后,然后删除文件2。
正确答案:
Dim fn As String
Private Sub Command1_Click()
CommonDialog1.Filter = "(*.txt)|*.txt"
CommonDialog1.ShowOpen
End Sub
Private Sub Command2_Click()
Dim s As String
Open fn For Append As #1
Open CommonDialog1.FileName For Input As #2
Do While Not EOF(2)
Line Input #2, s
Print #1, s
Loop
Close
Kill CommonDialog1.FileName
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
If Right(File1.Path, 1) = "\" Then
fn = File1.Path + File1.FileName
Else
fn = File1.Path + "\" + File1.FileName
End If
End Sub
Private Sub Form_Load()
File1.Pattern = "*.txt"
End Sub
第04套:
第1题:编程,求算式1-1/2+1/3-1/4+……前30项的和。
正确答案:
Private Sub Command1_Click()
Dim i%, s!, f%
s = 0: f = 1
For i = 1 To 30
s = s + f / i
f = -f
Next i
Print "1-1/2+1/3-1/4+……="; s
End Sub
第2题:编程,用户界面如图所示(可先用Form_Load添加几个单词到列表框)。要求:(1)单击“添加单词”按钮,将Text1中的单词添加到列表框,并使Text1获得焦点,可直接输入另一个单词。
(2)单击“删除单词”按钮,删除列表框中被选中的列表项。
(3)单击“全部删除”按钮,删除列表框中的全部表项。
(4)单击“退出”按钮,结束该程序。
正确答案:
Private Sub Form_Load()
List1.AddItem "happy": List1.AddItem "apple"
List1.AddItem "student": List1.AddItem "computer"
End Sub
List1.AddItem Text1.Text: Text1.SetFocus
Text1.SelStart = 0: Text1.SelLength = Len(Text1.Text)
End Sub
Private Sub Command3_Click()
List1.Clear
End Sub
Private Sub Command4_Click()
End
End Sub
Private Sub Command2_Click()
If List1.ListIndex <> -1 Then List1.RemoveItem List1.ListIndex
End Sub
第3题:设计一个图片欣赏程序(界面如图所示),要求程序启动后可以通过选择驱动器、文件夹,最后单击文件列表框中的图片文件时,图片载入Picture2中。如果图片大小超过容器Picture1的大小,则使用水平或垂直滚动条移动Picture2在Picture1中的位置进行浏览。正确答案:
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
If Right(File1.Path, 1) = "\" Then
f$ = Form1.File1.Path + Form1.File1.FileName
Else
f$ = Form1.File1.Path + "\" + Form1.File1.FileName
End If
Picture2.Picture = LoadPicture(f$)
If Picture2.Height > Picture1.Height Then VScroll1.Visible = True
If Picture2.Width > Picture1.Width Then HScroll1.Visible = True
HScroll1.Max = Picture2.Width - Picture1.Width
VScroll1.Max = Picture2.Height - Picture1.Height
End Sub
Private Sub Form_Load()
File1.Pattern = "*.bmp;*.jpg;*.gif"
VScroll1.Visible = False
HScroll1.Visible = False
End Sub
Private Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value
End Sub
Picture2.Left = -HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value
End Sub
Private Sub VScroll1_Scroll()
Picture2.Top = -VScroll1.Value
End Sub
第05套:
第1题:编程,求方程x2+y2=1000的所有整数解。
正确答案:
Private Sub Command1_Click()
Dim x%, y%
For x = -34 To 34
For y = -34 To 34
If x ^ 2 + y ^ 2 = 1000 Then
Print x, y
End If
Next y, x
End Sub
第2题:编写程序设计一个字幕推出程序。程序界面如下图所示,标签的字号在定时器的控制下,每个时间间隔放大2磅并且保持标签在窗体中水平居中,当标签的字号超过72时,定时器停止响应Timer事件。字号放大的速度由水平滚动条控制。
正确答案:
Private Sub Form_Load()
Label1.Left = Width / 2 - Label1.Width / 2
Label1.AutoSize = True
HScroll1.Min = 1: HScroll1.Max = 1000
HScroll1.SmallChange = 10: https://www.doczj.com/doc/0f148836.html,rgeChange = 100
HScroll1.Value = 500: Timer1.Interval = 500
End Sub
Private Sub HScroll1_Change()
Timer1.Interval = HScroll1.Value
End Sub
Private Sub HScroll1_Scroll()
Call HScroll1_Change
End Sub
Private Sub Timer1_Timer()
Label1.FontSize = Label1.FontSize + 2
Label1.Left = Width / 2 - Label1.Width / 2
If Label1.FontSize >= 72 Then Timer1.Enabled = False
End Sub
第3题:程序运行时在文本框中输入一段英文文字,单击命令按钮后将它们保存至文件E:\yw.txt文件中,单击窗体后,显示输入对话框,在该对话框中输入任意一个字符,并在E:\yw.txt中查找,如果找到a,则提示a是文件中第几个字符,否则提示a在文件中不存在。正确答案:
Private Sub Form_Click()
Dim a As String, b As String, c As String
Dim n As Integer, f As Boolean
a = InputBox("请输入一个字符")
Open "e:\ yw.txt" For Input As #1
f = False
Do While Not EOF(1)
Line Input #1, b
For i = 1 To Len(b)
c = Mid(b, i, 1)
n = n + 1
If c = a Then f = True: Exit Do
Next i
Loop
If f = True Then
MsgBox a & "是文件中第" & n & "个字符"
Else
MsgBox a & "在文件中不存在"
End If
Close #1
End Sub
Private Sub Command1_Click()
Open "e:\ yw.txt" For Output As #1
Print #1, Text1.Text
Close #1
End Sub
第06套:
第1题:编程,将一个三位整数倒序输出。
正确答案:
Private Sub Command1_Click()
Dim x%, bw%, sw%, gw%
x = Text1.Text
bw = x \ 100
sw = x \ 10 Mod 10
gw = x Mod 10
x = gw * 100 + sw * 10 + bw
Print x
End Sub
第2题:编程,当程序启动后用绿色文字显示"绿灯"2秒钟,接着黄色文字显示"黄灯"3秒钟,然后用红色文字显示"红灯"2秒钟。然后,再重新开始下一轮"绿灯"、"黄灯"、"红灯"的显示。直到双击窗体停止变化。
正确答案:
Dim k As Integer
Private Sub Form_Load()
Label1.Caption = "绿灯行"
End Sub
Private Sub Timer1_Timer()
k = k + 1
Select Case k
Case 1 To 2
Label1.Caption = "绿灯行"
Label1.ForeColor = vbGreen
Case 3 To 5
Label1.Caption = "注意"
Label1.ForeColor = vbYellow
Case 6 To 7
Label1.Caption = "红灯停"
Label1.ForeColor = vbRed
If k = 7 Then k = 0
End Select
第3题:编程实现两个文本文件的合并,要求用驱动器、目录、文件列表框选择文件1,单击按钮1后,调用通用对话框选择文件2;单击按钮2后,比较文件1和文件2的内容是否相同,如果不相同则用消息框提示“两个文件不一样”,相同则提示“两个文件一样”。
正确答案:
Dim fn As String
Private Sub Command1_Click()
CommonDialog1.Filter = "(*.txt)|*.txt"
CommonDialog1.ShowOpen
End Sub
Private Sub Command2_Click()
Dim s1 As String,s2 as string,flag as Boolean
Open fn For input As #1
Open CommonDialog1.FileName For Input As #2
Flag=true
Do While Not EOF(1)
Line Input #1, s1
If not eof(2) then line input #2,s2 else flag=false:exit do
If s1<>s2 then flag=false:exit do
Loop
If not eof(2) or flag=false then
Msgbox “两个文件不一样”
Else
Msgbox “两个文件一样”
End if
Close
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub
Private Sub File1_Click()
If Right(File1.Path, 1) = "\" Then
fn = File1.Path + File1.FileName
Else
fn = File1.Path + "\" + File1.FileName
End If
End Sub
Private Sub Form_Load()
File1.Pattern = "*.txt"
End Sub
第07套:
第1题:编程,从键盘输入一个字符串,将该字符串中的各个字符按照ASCII码从小到大排序后组成新的字符串,再从窗体输出。例如:输入字符串为“A4ngZ9”,输出字符串为“49AZgn”。
正确答案:
Private Sub Form_Click()
Dim a() As String
Dim x$, i%, n%, p%
x = InputBox("输入一个字符串")
n = Len(x)
ReDim a(n)
For i = 1 To n
a(i) = Mid(x, i, 1)
Next i
For i = 1 To n
p = i
For j = i + 1 To n
If a(j) < a(p) Then p = j
Next j
temp = a(p): a(p) = a(i): a(i) = temp
Print a(i);
Next i
End Sub
第2题:本程序实现设置闹钟并提醒。程序启动后上方的标签动态显示系统时间。单击设置闹钟按钮后文本框可用,同时按钮变成“确定“按钮,在文本框中按“hh:mm:ss“的格式输入设定的时间,并按确定按钮,程序会在时间到达后用消息框提醒“设置的时间到了!”。(提示:使用两个定时器)
正确答案:
Dim x As Date
Private Sub Form_Load()
Label1.Caption = Time
End Sub
Private Sub Command1_Click()
On Error GoTo err
If Command1.Caption = "设置闹钟" Then
Text1.Visible = True
Text1.SetFocus
Command1.Caption = "确定"
Else
x = CDate(Text1.Text)
Text1.Locked = True
Timer2.Enabled = True
Command1.Enabled = False
End If
Exit Sub
err:
MsgBox "设置的时间格式不正确,请重新设置。"
Text1.Text = ""
End Sub
Private Sub Timer1_Timer()
Label1.Caption = Time
End Sub
Private Sub Timer2_Timer()
If Time >= x Then
Text1.Text = "设置的时间" & x & "到了!"
Timer2.Enabled = True
If Text1.BackColor = vbWhite Then
Text1.BackColor = vbBlue
Else
Text1.BackColor = vbWhite
End If
End If
End Sub
第3题:编写程序,在组合框Combo1中添加若干个学生的姓名、出生年月、外语成绩和计算机成绩(每个学生的信息在组合框中占4行),最后按命令按钮保存后将组合框中的内容存入磁盘文件d:\student.dat(每个学生的信息在文件中占1行)。程序设计界面如图1所示,文件中结果如图2所示。
正确答案:
Private Sub Command1_Click()
Combo1.AddItem Combo1.Text
End Sub
Private Sub Command2_Click()
Open "d:\student.dat" For Append As #1
For i = 0 To Combo1.ListCount - 1
If i Mod 4 = 3 Then
Write #1, Combo1.List(i)
Else
Write #1, Combo1.List(i);
End If
Next i
Close #1
End Sub
第08套:
第1题:文本文件e:\aaa.txt中存放了若干行的数字(要求先用记事本建立此文件,文件内容不能为空),要求编制Command1_Click事件过程,按顺序读出这些数并在组合框控件Combo1中逐行显示。
正确答案:
Private Sub Command1_Click()
Dim k As String
Open "e:\aaa.txt" For Input As #1
Do While Not EOF(1)
Input #1, k
Combo1.AddItem k
Loop
Close #1
End Sub
第2题:设计一个家电提货单管理程序,根据选项选择的家电以及数量,单击确定后,将选择的清单及总价在列表框中列出,清除按钮用于清空列表框中的项目。要求在操作过程中,每选择一种家电,光标自动定位在相应的文本框中,所有文本框只接受数字。程序运行界面如图。
正确答案:
Private Sub Form_Load()
'文本框属性初始化:文本框是空白的,并且不能用
Dim i As Integer
For i = 0 To 2
Text1(i).Text = ""
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
End If
End Sub
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 57 Then '文本框只接受数字键
KeyAscii = 0
End If
End Sub
Private Sub Command1_Click() '结帐
Dim m As Integer, i As Integer
Dim dj(0 To 2) As Integer
dj(0) = 4000: dj(1) = 8000: dj(2) = 7000
For i = 0 To 2
If Check1(i).Value = 1 And Val(Text1(i).Text) <> 0 Then
m = m + dj(i) * Val(Text1(i).Text)
List1.AddItem Check1(i).Caption & Text1(i).Text & "台"
End If
Next i
If m <> 0 Then
List1.AddItem "您需付款:" & m & "元。"
End If
End Sub
Private Sub Command2_Click() '下一位
Dim i As Integer
For i = 0 To 2
Text1(i).Text = ""
Text1(i).Enabled = False
Check1(i).Value = 0
Next
List1.Clear
End Sub
第3题:编程,建立一个4行4列的二维数组,数组的第一行和第一列的值分别由输入对话
框赋值,其余元素均为其上面和左面元素值之和(如图所示)。
正确答案:
Private Sub Form_Click()
Dim a(4, 4) As Integer, i%, j%
a(1, 1) = InputBox("请输入a(1,1)")
For i = 2 To 4
a(1, i) = InputBox("请输入a(1," & i & ")")
a(i, 1) = InputBox("请输入a(" & i & ",1)")
Next i
For i = 2 To 4
For j = 2 To 4
a(i, j) = a(i - 1, j) + a(i, j - 1)
Next j
Next i
For i = 1 To 4
For j = 1 To 4
Print a(i, j);
Next j
Next i
End Sub
第09套:
第1题:编一程序,单击“生成”命令按钮时,随机产生10个两位整数,将它们升序显示在列表框中,单击“保存”命令按钮时,将列表框中的数据保存到e:\d1.txt文件中。
正确答案:
运行前先在属性窗口中将list1的sorted属性设置为True.
Private Sub Command1_Click()
For i = 1 To 10
k = Int(Rnd * 90 + 10)
List1.AddItem k
Next i
End Sub
Private Sub Command2_Click()
Open "e:\d1.txt" For Append As #1
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i)
Next i
Close #1
End Sub
第2题:本程序要求用一个文本框数组和定时器编写模拟体育彩票程序:控件数组用来显示
28个【0,9】之间的随机整数。运行时单击“产生随机数字”按钮,定时器开始工作,所有文本框中的数字不断滚动变化;单击停止时所有文本框停止变化,如图所示;单击“清空”按钮时,所有文本框无内容。
正确答案:
Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 50
Command4.Enabled = True
End Sub
Private Sub Command2_Click()
For i = 0 To 6
Text1(i).Text = ""
Next i
Command2.Enabled = False :Command4.Enabled = False
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
Timer1.Enabled = False: Command2.Enabled = True
End Sub
Private Sub Form_Load()
Command2.Enabled = False :Command4.Enabled = False
End Sub
Private Sub Timer1_Timer()
Dim i As Integer
Randomize
For i = 0 To 6
Text1(i).Text = Fix(Rnd * 10)
Next i
End Sub
第3题:编程,计算多项式Sn=a+aa+aaa+aaaa+…+aa…a(n个a),其中a是一个随机产生的1~9之间的整数;n是一个5~10之间的整数可从输入对话框中输入。
正确答案:
Private Sub Form_Click()
Dim i%, a#, n%, s#
Randomize
a = Int(Rnd * 9) + 1
Do
n = InputBox("输入一个n值:")
Loop While n < 4 Or n > 10
s = 0
For i = 1 To n
a = a * 10 + a
s = s + a
Next i
Print "s=a+aa+aaa+……+"; s
End Sub
第10套:
第1题:在窗体上建立两个列表框List1和List2,在属性窗口中为List1添加一些班级的名称(如“化学071”、“数学073”等等),单击List1中的某个班级名称时,则将与该班级相同名字的文本文件打开,并把文件中的内容按行显示在List2中。(与这些班级相对应的文本文件应事先建好,如“化学071.txt”等,放在c:\中,文件中存放一些学生的基本信息)正确答案:
Private Sub List1_Click()
Dim fn As String, k As String
fn = "c:\" + List1.Text + ".txt"
Open fn For Input As #1
List2.Clear
Do While Not EOF(1)
Line Input #1, k
List2.AddItem k
Loop
Close #1
End Sub
第2题:编程,打印输出有数字组成的金字塔。图案如图所示。
正确答案:
Private Sub Form_Click()
Dim i%, j%, k%
For i = 1 To 5
Print Tab(15 - i);
For j = 1 To 2 * i - 1
Print Trim(Str(i));
Next j
Next i
For i = 4 To 1 Step -1
Print Tab(15 - i);
For j = 1 To 2 * i - 1
Print Trim(Str(i));
Next j
Next i
End Sub
第3题:编程,窗体标题为“猜数游戏”。
基本要求:单击“出题”按钮则生成一个1~100间的随机整数;然后在文本框中输入若干数(以回车键结束),大于或小于随机数则给出提示信息,猜1个数超过10次不可再猜该数。出题、猜数可重复进行;随机数产生后锁定“出题”按钮、激活文本框控件,猜数结束后锁定文本框控件、激活“出题”按钮。
正确答案:
Dim num As Integer, m As Integer, rec As Integer
Private Sub Form_Load()
Command1.Caption = "出题": Command1.Enabled = True
Text1.Text = "": Text1.Enabled = False: rec = 0
End Sub
Private Sub Command1_Click()
Randomize: num = Int(Rnd * 100) + 1: Text1.Enabled = True
Label1.Caption = "": Command1.Enabled = False
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
m = Val(Text1.Text): rec = rec + 1: Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text): Text1.SetFocus
If rec > 10 Then
Label1.Caption = "差!重新开始": Call Form_Load
Else
If m > num Then
Label1.Caption = Str(m) & "大了!"
ElseIf m < num Then
Label1.Caption = Str(m) & "小了!"
Else
If rec < 5 Then
Label1.Caption = "好!猜对了。"
Else
Label1.Caption = "还行!猜对了。"
End If
Call Form_Load
End If
End If
End If
End Sub
第11套:
第1题:单击窗体,在窗体上画出一个当前窗体中所能容纳的最大的红色实心椭圆(即椭圆的上下左右分别与窗体的上下左右相切)。
正确答案:
Private Sub Form_click()
Dim r As Single
r = Form1.ScaleWidth
If Form1.ScaleHeight > Form1.ScaleWidth Then r = Form1.ScaleHeight
Form1.FillStyle = 0
Form1.FillColor = RGB(255, 0, 0)
Form1.Cls
Form1.Circle (ScaleWidth / 2, ScaleHeight / 2), r / 2, RGB(255, 0,
0), , , ScaleHeight / ScaleWidth
End Sub
第2题:有一个长阶梯,如果每步跨2阶最后剩1阶,如果每步跨3阶最后剩2阶,如果每步跨4阶最后剩3阶,如果每步跨5阶最后剩4阶,如果每步跨6阶最后剩5阶,只有当每步跨7阶时刚好走完,问这个阶梯有多少阶?请编程求解。
正确答案:
第3题:编写程序,利用计时器控件来实现字幕“Welcome!”的左右摆动。要求:运行初时,标签从窗体的左边界开始向右移动:当标签的右边界超出窗体的右边界时,标签改为向左移动;当标签的左边界超出窗体的左边界时,标签改为向右移动。摆动过程文字颜色随机变化。
正确答案:
Dim d As Integer
Private Sub Form_Load()
Timer1.Enabled = True
Label1.ForeColor = vbBlue
Label1.FontSize = 24
Label1.Caption = "welcome"
d = 1
End Sub
Private Sub Timer1_Timer()
If Label1.Left + Label1.Width >= Form1.Width Or Label1.Left < 0 Then
d = -d
End If
Label1.Left = Label1.Left + 100 * d
Label1.ForeColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
End Sub
第12套:
第1题:编写一个函数,其功能是求n!。
正确答案:
Private Function jc(n As Integer) As Single
Dim i%
jc = 1
For i = 1 To n
jc = jc * i
Next i
End Function
第2题:程序运行时,使窗体的高度和宽度相等,单击窗体,改变窗体坐标系长宽均为300个单位,过窗体中点(即原点)画出互相垂直的两条蓝色直线,用红色画函数曲线y=x2-2x+6在[-10,10]区间的图形(要求图形开口向上)。
正确答案:
Function f(ByVal x As Single) As Single
f = x * x - 2 * x + 6
End Function
Private Sub Form_Click()
Dim x As Single
Cls
Form1.ForeColor = vbBlue
Form1.Scale (-150, 150)-(150, -150)
Form1.Line (-150, 0)-(150, 0)
Form1.Line (0, -150)-(0, 150)
Form1.ForeColor = vbRed
For x = -10 To 10 Step 0.0001
Form1.PSet (x, f(x))
Next x
End Sub
Private Sub Form_Load()
Form1.Width = Form1.Height
End Sub
第3题:本程序是一个简单乘除运算器。运行时,用户在文本框中输入运算数,通过单选按钮选择运算符,也改变标签上显示的运算符号,单击“=”后,在标签中显示计算结果。注意除数不能为0。单击“复位”按钮后,文本框所有内容被清空。
正确答案:
Private Sub Form_Load()
Dim i As Integer
Text1(0).Text = ""
: Text1(1).Text = ""
: Text2.Text = ""
For i = 0 To 1
Option1(i).Enabled = False
Next i
End Sub
Private Sub Label2_Click()
Text2.Visible = True
Select Case Label1.Caption '根据运算要求进行计算并显示
Case "×"