三、编程题
1、* 编写程序:输入一元二次方程的系数a,b,c的值,求解一元二次方程的根。
Private Sub Command1_Click()
Dim a#, b#, c#
a = Val(InputBox(\"参数a=\"))
b = Val(InputBox(\"参数b=\"))
c = Val(InputBox(\"参数c=\"))
Call root(a, b, c)
End Sub
Private Sub root(x#, y#, z#)
Dim t#, x1#, X2#
t = y * y - 4 * x * z
If t > 0 Then
x1 = (-y + Sqr(t)) / (2 * x )
X2 = (-y - Sqr(t)) / (2 * x)
Print \"实根\"; \"x1=\"; x1, \"x2=\"; X2
Else
x1 = -y / (2 * x): X2 = Sqr(Abs(t)) / (2 * x)
Print \"虚根\
End If
End Sub
6* 编写一个计时程序。
* 界面要求: * 使用标签、命令按钮、时钟控件完成。
* 运行要求: * 1、点击“开始”按钮,标签显示 0并开始计时,每隔一秒,标签中显示的秒数加1;
* 2、点击“结束”按钮,停止计时。
Dim t As Integer
Private Sub Command1_Click()
Timer1.Enabled = True
t = 0
Timer1.Interval = 1000
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
t = t + 1
Label1.Caption = t
End Sub
15*计算1到10的每个整数平方根,按每个记录(每个记录为1行)2个数据的形式将计算结果存入另一个文件data1.txt中。
Dim i As Integer, result As Double
Open \"d:\\data1.txt\" For Output As #1
Print #1,\"数\平方根\"
For i = 1 To 10
Print #1, i, Sqr(i)
Next i
Close
MsgBox \"文件已写入\"
16*已知在正文文件zhengda2.txt中共有20个记录,每个记录是用以下格式表示的4项数据:
编号 机试成绩 笔试成绩 平时成绩
nn nn nn nn
(说明:n表示整型;n的个数表示位数)将文件中的数据读出并只且显示编号和笔试成绩, 并统计20个记录的笔试平均成绩
Dim a1, a2, a3, a4, sum, aver
Open \"d:\\data2.txt\" For Input As #1
Do While Not EOF(1)
Input #1, a1, a2, a3, a4
Print a1, a3
sum = sum + a3
Loop
Close #1
Print \"aver=\" & sum / 20
19* 编写程序: * 设某人有现金8000元,银行年利率为7.5%,问如果这些钱如果存入银行,多少年后可以超过4万元。 * (不计复利)
Dim i As Integer, j As Integer, sum As Single, n As Integer
sum = 8000
n = 0
Do While sum < 40000
n = n + 1
sum = sum + 8000 * 0.075
Loop
Print \"n=\"; n
33.乘法表上三角
Dim se As String
Print Tab(35); \"乘法表\"
For i = 1 To 9
For j = i To 9
se = i & \"x\" & j & \"=\" & i * j
Print Tab((j - 1) * 9 + 1); se;
Next j
Next i
34.下三角
Dim se As String
Print Tab(35); \"乘法表\"
For i = 1 To 9
For j = 1 To i
se = i & \"x\" & j & \"=\" & i * j
Print Tab((j - 1) * 9 + 1); se;
Next j
Next i
1. 计算 1^1+2^2+3^3+4^4+…….9^9+10^10
Private Sub Command1_Click()
Dim i As Single, sum As Single
sum = 0
For i = 1 To 10
a = i ^ i
sum = sum + a
Next i
Print sum
End Sub
8. 计算1/1!+1/2!+。。。。+1|10!
Private Sub Command1_Click()
Dim m As Integer, n As Long, s As Double
n = 1
s = 0
For m = 1 To 10
n = n * m
s = s + 1 / n
Next
Print s
End Sub
9计算1/1!+1/3!+1/5!+.....+1/99!
Private Sub Form_Click()
Dim m As Integer, n As Double, s As Double
n = 1
s = 0
For m = 1 To 100 Step 2
n = n * m
s = s + 1 / n
Next
Print s
End Sub
2. 打折问题
Private Sub Command1_Click()
Dim x As Single, y As Single
x = Val(Text1.Text)
If x < 100 Then
y = 0.9 * x
Else
y = 0.8 * x
End If
Text2.Text = y
End Sub
3.计算圆的周长与面积。 准备 计算
Private Sub Command1_Click()
Text1 , Text = \"\"
Text2 , Text = \"\"
Text3 , Text = \"\"
Text1.SetFocus
End Sub
Private Sub Command2_Click()
r = Val(Text1.Text)
Text2.Text = Str(2 * 3.14 * r)
Text3.Text = Str(3.14 * r * r)
End Sub
Private Sub Form_Load()
Text1.Text = \"\"
Text2.Text = \"\"
Text3.Text = \"\"
End Sub
4. 已知三边求三角形面积
Dim a As Single
Dim b As Single
Dim c As Single
Dim area As Single
a = Text1.Text
b = Text2.Text
c = Text3.Text
s = (a + b + c) / 2
area = Sqr(s * (s - a) * (s - b) * (s - c))
Label4.Caption = Label4.Caption + Format(area)
5. 求 ax^2+bx+c=0 的跟
Private Sub Command1_Click()
Dim a%, b%, c%, delt!
Dim x1!, x2!
a = Text1.Text
b = Text2.Text
c = Text3.Text
delt = b * b - 4 * a * c
If delt >= 0 Then
x1 = (-b + Sqr(delt)) / (2 * a)
x2 = (-b - Sqr(delt)) / (2 * a)
Text4 = Str(x1)
Text5 = Str(x2)
Else
Text4 = \"无解\"
Text5 = \"无解\"
End If
End Sub
6, 求学生综合成绩
Private Sub Command1_Click()
Dim zonghe As Single, ks As Single, ps As Singler
Dim xm As String
xm = Text.Text: ks = Text2.Text: ps = Text3.Text
zonghe = ks * 0.7 + ps * 0.3
label4.Caption = xm & \"的综合成绩为\" & zonghe & \"分\"
End Sub
8. 求T=N!
T = 1
错误!未找到引用源。=InputBox(\"请输入数N的值\")
Do While I <= N
T = T * 错误!未找到引用源。
I = I + 1
Loop
Print Str(N) & \"的阶乘为: \"; T
9.编写一个累计加数的程序 使用标签,文本框,命令按钮
* 运行要求: 点击“累加”按钮,将文本框中输入的数字累加,显示到下方的标签中。
。在窗体上放一个文本框,清空,text属性,并设置multiline为true再放一个标签Label1,和一个命令按钮,command1,设置,caption为\"累加\"
Dim strnum As String, substr() As String, sum As Integer, i As Integer
strnum = Form1.Text1.Text
substr() = Split(strnum, vbCrLf)
For i = 0 To UBound(substr)
sum = sum + Val(substr(i))
Next i
Label1.Caption = str(sum)
上网费用问题
Private Sub Command1_Click()
Dim t As Single, wangfei As Single
t = InputBox(\"请输入上网时间:\")
t = Val(t)
If t < 10 Then
wangfei = 25
ElseIf t >= 10 And t < 50 Then
wangfei = 2 * t
ElseIf t >= 50 And t < 100 Then
wangfei = 1.5 * t
ElseIf t >= 100 And t <= 200 Then
wangfei = t
ElseIf t > 200 Then
wangfei = 200
End If
Print \"网费为:\"; wangfei
End Sub
3.判断 a b c 能否构成三角形
Private Sub Form_Click()
a = Val(InputBox(\"输入边长a:\"))
b = Val(InputBox(\"输入边长b:\"))
c = Val(InputBox(\"输入边长c:\"))
If a + b > c And a + c > b And b + c > a Then
MsgBox \"能构成三角形\"
Else
MsgBox \"不能构成三角形\"
End If
End Sub
判断成绩等级
Private Sub Command1_Click()
Dim mark As Single
Dim grade As String
mark = Val(Text1.Text)
If mark >= 90 Then
grade = \"优\"
ElseIf mark >= 80 Then
grade = \"良\"
ElseIf mark >= 70 Then
grade = \"中\"
ElseIf mark >= 60 Then
grade = \"及格\"
ElseIf mark < 60 Then
grade = \"不及格\"
End If
Text2.Text = grade
End Sub
判断完全数
I = 1
错误!未找到引用源。=InputBox(\"请输入N的值:\")
Do While I <= N - 1
If N Mod I = 0 Then S = S + I
I = I + 1
Loop
If N = S Then
Print \"是完全数\"
else
Print \"不是完全数\"
End If
判断坐标区间
Private Sub Command1_Click()
Dim x%, y%
x = Text1.Text: y = Text2.Text
If x > 0 Then
If y > 0 Then
Print \"该点在第一象限\"
ElseIf y < 0 Then
Print \"该点在第四象限\"
End If
ElseIf x < 0 Then
If y < 0 Then
Print \"该点在第三象限\"
ElseIf y > 0 Then
Print \"该点在第二象限\"
End If
ElseIf x = 0 Or y = 0 Then
Print \"该点在坐标轴上,不在任何象限中\"
End If
End Sub
图片,图像,时钟,日期类
4. 显示图片 隐藏图片
Private Sub Command1_Click()
Picture1 = LoadPicture(\"C:\\Users\\Administrator\\Pictures\\17.jpg\")
End Sub
Private Sub Command2_Click()
Picture1 = LoadPicture(\"C:\\Users\\Administrator\\Pictures\\10.jpg\")
End Sub
Private Sub Command3_Click()
Picture1.Visible = False
End Sub
6. 记忆数字系统
Dim t1&, t2&, n&
Private Sub Command1_Click()
t1 = Int(Val(Timer))
n = Int(Rnd * 10000000#)
st$ = Str$(n)
Label1.Caption = st$
End Sub
Private Sub Form_Load()
Label1.Caption = \"\"
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
t2 = Int(Val(Timer))
If t2 - t1 >= 1.5 Then Label1.Caption = \"\"
End Sub
询问当前日期,时间,星期几
Private Sub Command1_Click()
Text1.Text = Date
Text2.Text = Time
n = Weekday(Date)
Text3.Text = WeekdayName(n)
End Sub
Private Sub Form_Load()
Text1.Text = \"\" text1. setfocus
Text2.Text = \"\"
Text3.Text = \"\"
End Sub
输入密码调用图片
Private Sub Command1_Click()
If Text1.Text = \"abc\" Then
picture1.Picture = LoadPicture(\"d:beijing.bmp\")
Else
picture1.Picture = LoadPicture(\".......\")
End If
End Sub
奥运倒计时
Private Sub Timer1_Timer()
Text1 = Format(Date, \"dddddd\")
Text2 = DateDiff(\"d\
End Sub
6* 编写一个计时程序。
* 界面要求: * 使用标签、命令按钮、时钟控件完成。
* 运行要求: * 1、点击“开始”按钮,标签显示 0并开始计时,每隔一秒,标签中显示的秒数加1;
* 2、点击“结束”按钮,停止计时。
Dim t As Integer
Private Sub Command1_Click()
Timer1.Enabled = True
t = 0
Timer1.Interval = 1000
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
t = t + 1
Label1.Caption = t
End Sub
移动的图片
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = false
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Image1.Left = Int(Rnd * (Form1.ScaleWidth - Image1.Width))
Image1.Top = Int(Rnd * (Form1.ScaleHeight - Image1.Height))
End Sub
求所有中间数为奇数的三位对称数 如252
Private Sub Command1_Click()
Dim num%, a%, b%, c%, i%
num = 0
For i = 100 To 999
a = i Mod 10
c = i \\ 100
b = (i \\ 10) Mod 10
If (a = c) And (b Mod 2 <> 0) Then
num = num + 1
Print i;
If (num Mod 5) = 0 Then Print
End If
Next
Print \"中间数为奇数的三位对称数的数量为:\"; num
End Sub
找出斐波那契数列前20项 按每行4个输出。
Private Sub Command1_Click()
Dim a%, b%, i%
a = 0
b = 1
Print a, b,
For i = 1 To 9
a = a + b
b = a + b
Print a, b,
If i Mod 2 = 1 Then Print
Next i
End Sub
输出20以内满足 a^2+b^2=c^2 的整数数组
Private Sub Command1_Click()
Print \"a \
For a = 1 To 20
For b = 1 To 20
For c = 1 To 20
If a * a + b * b = c * c Then
Print a, b, c, a * a, b * b, c * c
End If
Next c
Next b
Next a
End Sub
二进制原码转化为反码
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) = \"0\" Then
Text2 = Text2 & \"1\"
ElseIf Chr(KeyAscii) = \"1\" Then
Text2 = Text2 & \"0\"
ElseIf KeyAscii = 13 Then
Label3.Caption = \"原码->反码 转换完毕!\"
End If
End Sub
数制转化
Private Sub Command1_Click()
Dim n%, M%, x%, a%
n = Val(InputBox(\"请输入要转换的十进制数整数\"))
M = n
x = \"\"
Do While n <> 0
a = n Mod 2
n = n \\ 2
x = a & x
Loop
MsgBox M & \"换成二进制数是:\" & x
End Sub
温度转化 F=C*9/5+32 , C=(F-32)*5/9
Private Sub Command1_Click()
Dim f%, c%
f = Val(Text1.Text)
c = Val(Text2.Text)
Text2.Text = Format(5 / 9 * (f - 32), \"####.00\")
If Text2.Text > 0 Then
Label3.Caption = \"hot\"
ElseIf Text2.Text < o Then
Label3.Caption = \"cool\"
Else
Label3.Caption = \"comfortable\"
End If
End Sub
随机产生20个学生课程分数并显示,统计各分数段人数,显示统计结果
Private Sub Command1_Click()
Dim a(0 To 4) As Integer, i As Integer, iScore As Integer
Randomize
For i = 1 To 20
iScore = Rnd * 100
If i Mod 4 = 0 Then Print '每4个一行
Print \"学生 \" & i & \" 成绩: \" & iScore,
If iScore >= 90 Then
a(4) = a(4) + 1
ElseIf iScore >= 80 Then
a(3) = a(3) + 1
ElseIf iScore >= 70 Then
a(2) = a(2) + 1
ElseIf iScore >= 60 Then
a(1) = a(1) + 1
Else
a(0) = a(0) + 1
End If
Next i
Print '换行
Print \"0-59共有: \" & a(0) & \" 人\"
Print \"60-69共有: \" & a(1) & \" 人\"
Print \"70-79共有: \" & a(2) & \" 人\"
Print \"80-89共有: \" & a(3) & \" 人\"
Print \"90-100共有: \" & a(4) & \" 人\"
End sub
随即产生10个2位数,按从大到小递减的顺序排列,并显示排序结果
Private Sub form_click()
Randomize
Dim tmp As Integer
Dim i%, j%
Dim a(1 To 10) As Integer
Print \"排序前为:\"
For i = 1 To 10
a(i) = Int(Rnd * 89 + 10)
Print a(i);
Next i
For i = 2 To 10
If a(i) > a(i - 1) Then
tmp = a(i)
For j = i - 1 To 1 Step -1
If tmp < a(j) Then Exit For
a(j + 1) = a(j)
Next j
a(j + 1) = tmp
End If
Next i
Print \"排序结果:\"
For i = 1 To 10
Print a(i);
Next i
End Sub
产生一个一维数组A(20),以四行五列的形式输出
Private Sub Form_click()
Dim i%, n%
Dim A(1 To 20) As Integer
For i = 1 To 20
A(i) = Int(Rnd * 100 + 1)
Print Tab(8 * n + 2); A(i);
n = n + 1
If n = 5 Then n = 0
Next i
End Sub
因篇幅问题不能全部显示,请点此查看更多更全内容