您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页Visual Basic实验题

Visual Basic实验题

来源:意榕旅游网


三、编程题

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

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 \

Print

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

Print

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

Print

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务