日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VB程序设计练习题(2022年新)

發布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VB程序设计练习题(2022年新) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

前言

一、數組元素互換。

?二、同構數

三、成績排名

?四、興趣愛好

五、 矩陣元素最高頻率

六、sin與cos值

七、(進階)旋轉表

八、找小于給定素數最大的三個素數

九、求數列前n項

十、 紅綠燈

總結:


前言

寒假到了,做了我之前發題的后,想必自己的水平也高了不少了吧,這邊繼續發布我之前練過VB練習題給大家練練。難度較大。


一、數組元素互換。

? 某數組有20個元素,元素的值由鍵盤輸入,要求將第1個元素與第20個元素互換,第2個元素與第19個元素互換......第10個元素與第11個元素互換。輸入數組原來各元素的值和對換后各元素的值。程序界面如下圖。

答案:

Dim a(1 To 20)

Private Sub Command1_Click()

s = 0

For i = 1 To 20

??? s = s + 1

??? a(i) = Val(InputBox("輸入元素"))

??? Label1.Caption = Label1.Caption & a(i)

??????? If i >= 1 And i <= 19 Then

??????????? Label1.Caption = Label1.Caption & ","

??????? End If

If s = 10 Then

??? Label1.Caption = Label1.Caption & vbCrLf

??? s = 0

End If

Next

End Sub

Private Sub Command2_Click()

For i = 1 To 10

??? For j = 20 To 11 Step -1

??????? If i + j = 21 Then

??????????? t = a(i)

??????????? a(i) = a(j)

??????????? a(j) = t

??????? End If

??? Next

Next

For i = 1 To 20

s = s + 1

??? Label2.Caption = Label2.Caption & a(i)

??? If i >= 1 And i <= 19 Then

??????? Label2.Caption = Label2.Caption & ","??

??? End If

? If s = 10 Then

? Label2.Caption = Label2.Caption & vbCrLf

? s = 0

? End If

Next

End Sub


?二、同構數

? ? ? ? ?編寫一個查找介于整數A,B之間所有同構數的程序。若一個數出現在自己平方數的右端,則稱此數為同構數。如5在52=25的右端,25在252=625的右端,故5和25為同構數。

答案:

Private Sub Command1_Click()

Dim a As Long, b As Long

Dim c As Long

a = Val(Text1.Text)

b = Val(Text2.Text)

c = b ^ 2

d = a ^ 2

If a > 0 And b > 0 And b > a Then

??? For i = a To b

??????? For j = 1 To Len(c)

??????????? If i ^ 2 Mod 10 ^ j = i Then

??????????????? List1.AddItem i & "^2" & "=" & i ^ 2

??????????????? Exit For

??????????? End If

??????? Next

??? Next

End If

If a > 0 And b > 0 And a > b Then

??? For i = b To a

??????? For j = 1 To Len(d)

??????????? If i ^ 2 Mod 10 ^ j = i Then

??????????????? List1.AddItem i & "^2" & "=" & i ^ 2

??????????????? Exit For

??????????? End If

??????? Next

??? Next

End If

End Sub

Private Sub Command2_Click()

Text1.Text = ""

Text2.Text = ""

End Sub

Private Sub Command3_Click()

End

End Sub


三、成績排名

? ? ? ? 點擊窗體利用隨機數輸出以下圖案,并且排序,算出總分。

答案:

Private Sub Form_Click()

Dim a(1 To 10, 1 To 3)

Dim b(1 To 10)

Dim s As String

Dim t As String

Form1.Cls

Randomize

Sum = 0

Print "成績 1?? 成績 2?? 成績 3?? 總分?? 名次"

For i = 1 To 10

??? For j = 1 To 3

??????? a(i, j) = Int(Rnd * (99 - 50 + 1) + 50)

??????? Sum = Sum + a(i, j)

??????? s = s & a(i, j) & Space(7)

??? Next

??? b(i) = Space(1) & s & Sum

??? s = ""

??? Sum = 0

Next

For i = 1 To 10

??? For j = 1 + i To 10

??????? If Right(b(i), 3) < Right(b(j), 3) Then

??????????? t = b(i)

??????????? b(i) = b(j)

??????????? b(j) = t

??????? End If

??? Next

??? Print b(i) & Space(5) & i

Next

End Sub


?四、興趣愛好

????????設計如圖所示界面,窗體上有兩個標簽,1 個文本框,1 個列表框和三個命令按鈕。程序運行時,在文本框中輸入文本,單擊“添加”按鈕,文本添加到列表框中,如果列表框中有相同的文本,則不再添加。單擊“刪除”按鈕,選中的列表項從列表框中移去。單擊“清除”按鈕,文本框和列表框中內容清空。?

答案:

Private Sub Command1_Click()

Dim i As Integer

Dim f As Boolean

f = False

For i = 0 To List1.ListCount - 1

If List1.List(i) = Text1.Text Then?

??????? f = True?????????????????? ??

??????? Exit For

??? Else

??????? f = False

??? End If

Next

If f = False Then

??? List1.AddItem Text1.Text

End If

End Sub

Private Sub Command2_Click()

List1.RemoveItem List1.ListIndex

End Sub

Private Sub Command3_Click()

List1.Clear

Text1.Text = ""

End Sub


五、 矩陣元素最高頻率

????????安裝如下布局擺放控件,單擊command1text1中生成4*50~9隨機數的矩陣,點擊統計按鈕,則在text2中統計出出現頻率最多的數和在text3中顯示出現最多的次數。點擊退出,則退出程序。

?答案:

Dim a(1 To 4, 1 To 5) As Integer

Private Sub Command1_Click()

Text1.Text = ""

Randomize

For i = 1 To 4

??? For j = 1 To 5

??????? a(i, j) = Int(Rnd * (9 - 0 + 1) + 0)

??????? Text1.Text = Text1.Text & a(i, j) & "? "

??? Next

??? Text1.Text = Text1.Text & vbCrLf

Next

End Sub

Private Sub Command2_Click()

Text2.Text = ""

Text3.Text = ""

Dim b(0 To 9)

For i = 1 To 4

??? For j = 1 To 5

??????? For n = 0 To 9???????????????????????????????????????????????????????????????

??????????? If a(i, j) = n Then????????????????????????????????????????????????? ??這邊這是定義了一個b數組計入產

??????????????? b(n) = b(n) & n ????????????????????????????????????????? ????????生的數,b的長度就是次數,

??????????? End If???????????????????????????????????????????????????????????????????? 思路2b(n)=b(n)+1來判斷最大值

??????? Next???????????????????????????????????????????????????????????????????????????如何次數跟值都有

??? Next

Next

For n = 0 To 9

??? If Len(b(n)) > Max Then

??????? Max = Len(b(n))?????????????????????????? ??????????????????????????????找出b數組中長度最長的數,也就是

??? End If?????????????????????????????????????????????????????????????????????????????次數最多的數。,

Next

For n = 0 To 9

??? If Len(b(n)) = Max Then

??????? Text2.Text = Text2.Text & n & " "??????????????????????????????? text2中顯示

??????? Text3.Text = Len(b(n))? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??text3中顯示次數(也就是長度)

??? End If

Next

End Sub

Private Sub Command3_Click()

End

End Sub


六、sin與cos值

????????要求:①利用屬性窗口設置適當的屬性,使 txtInput、txtResult中數據右對齊:②請編寫適當的程序完成以下功能:在 txtInput中輸入40(度數),選擇一個單選按鈕,單擊“計算”按鈕,則根據所選擇的單選按鈕,計算出相應的正弦、余弦值(保留3位小數,第4位截去,pi取3.14159),并顯示在 txtResult中。

答案:

Const pi = 3.14159

Private Sub Command1_Click()

a = Val(txtInput.Text)

If Option1.Value = True Then

??? txtResult.Text = Format(Sin(a * pi / 180) - 0.0005, "0.000")? ? ? ??a*pi/180為固定公式

End If

If Option2.Value = True Then

? ?txtResult.Text = Format(Cos(a * pi / 180) - 0.0005, "0.000")? ? ? ? ‘-0.0005可以使值不會四舍五入

End If

End Sub


七、(進階)旋轉表

????????如下圖布置界面,點擊“開始”按鈕線每一秒順時針轉動6°

答案:

Dim lenth As Integer, q As Integer

Const pi = 3.14159

Private Sub cmdStart_Click()

tmrClock.Enabled = True

End Sub

Private Sub cmdStop_Click()

tmrClock.Enabled = False

End Sub

Private Sub Form_Load()

??? lenth = LinClock.Y2 - LinClock.Y1

??? q = 90

End Sub

Private Sub tmrClock_Timer()

q = q + 6

??? LinClock.Y1 = LinClock.Y2 - lenth * Sin(q * pi / 180)

??? LinClock.X1 = LinClock.X2 - lenth * Cos(q * pi / 180)

End Sub


八、找小于給定素數最大的三個素數

? ? 設計如圖所示界面,程序運行時,?在文本框中輸入一個素數,然后單擊“查找”命令按鈕,找出小于給定素數的三個最大的素數,并顯示在標簽控件數組 lblResult 中,如圖所示。

答案:

Private Sub Command1_Click()

Dim f As Boolean

Dim n As Boolean

Dim i As Long, j As Long, s As Long

a = Val(Text1.Text)

f = False

n = False

s = 0

For i = 2 To a - 1

??? If a Mod i = 0 Then

??????? MsgBox "請輸入素數"

??????? f = False

??????? Exit For

??? Else

??????? f = True

??? End If

Next i

If f = True Then

??? For i = a - 1 To 2 Step -1

??????? n = False

??????? For j = 2 To i – 1 ???? ????????????????????????????????????????????????????????‘注意是i-1,不是a-1

??????????? If i Mod j = 0 Then

????????????? ??n = True

??????????????? Exit For

??????????? Else

??????????????? n = False

??????????? End If

??????? Next j

??????? If n = False Then

??????????????? Label3(s).Caption = i

??????????? s = s + 1

??????? End If

??????? If s = 3 Then

??????????? Exit For

??????? End If

??? Next i

End If

End Sub


九、求數列前n項

????????設計如圖所示界面,其功能是產生并顯示一個數列的前n項。數列產生的規律是:數列的前2項是小于10的正整數,將此兩數相乘,若乘積<10,則以此乘積作為數列的第3項;若乘積>=10,則以乘積的十位數為數列的第3項,以乘積的個位數為數列的第4項。再用數列的最后2項相乘,用上述規則形成后面的項,直至產生了第n項。如圖所示。

?答案:

Private Sub Command1_Click()

Dim n()

Dim chen As Integer

Dim a As Integer, b As Integer, c As Integer

Text4.Text = ""

a = Text1.Text

a = Val(a)

b = Text2.Text

b = Val(b)

c = Text3.Text

c = Val(c)

ReDim n(1 To c)

n(1) = a

n(2) = b

For i = 3 To c

??? chen = n(i - 1) * n(i - 2)

??? If chen >= 10 Then

??????? n(i) = chen \ 10

??????? If i < c Then ??????????????’注意一定要小于c的時候,才能再輸出個位的數加入數組當中,不然就? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 會超出數組范圍

??????????? n(i + 1) = chen Mod 10

??????????? i = i + 1

??????? End If

??? Else

??????? n(i) = chen

??? End If

Next

For i = 1 To c

??? Text4.Text = Text4.Text & n(i) & " "

Next

End Sub


十、 紅綠燈

????????按照以下窗體搭建界面,使得shape1顏色紅綠交替,兩個水平滾動條控制時間110秒,點擊開始按鈕則shape1依照對應顏色滾動條時間,維持顏色的保留時間,只用到一個時鐘控件。

答案:

???????? 時鐘的Interval屬性值設置為1000(也就是1秒)

Dim green, red???????????????????????????????????????????????????????????? ‘定義兩個變量,對應兩個滾動條的值

Private Sub Command1_Click()

Timer1.Enabled = True

green = HScroll2.Value??????????????????????????????????????????????? ‘對應

red = HScroll1.Value??????????????????????????????????????????????????? ‘對應

End Sub

Private Sub Form_Load()

Shape1.BackColor = vbRed??????????????????????????????????????? shape1的初始顏色為紅色

End Sub

Private Sub Timer1_Timer()

If Shape1.BackColor = vbRed Then??????????????????????????‘當為紅色時,所對應的變量red每秒-1

??? red = red – 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

??? If red = 0 Then???????????????????????????????????????????????????? ???‘如果變量red的值為0時,則shape1

??????? Shape1.BackColor = vbGreen?????????????????????????? 的背景顏色變為綠色。(比如現在red

End If??????????????????????????????????????????????????????????????????????????3,每秒-1,說明3秒后為0,也就

???????????????????????????????????????????????????????????????????????????????????shape1的背景也是可以維持3秒紅色。

?????????????????????????????????????????????????????????????????????????????? ?? ?red的值又正好是水平滾動條的值。

ElseIf Shape1.BackColor = vbGreen Then??????????????? ‘同理。

??? green = green - 1

??? If green = 0 Then

??????? Shape1.BackColor = vbRed

??? End If

End If

If red = 0 Then? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?‘當red的值到0時,一定要復原,green一樣

??? red = HScroll1.Value

End If

If green = 0 Then

??? green = HScroll2.Value

End If

End Sub


總結:

????????vb刷到這里,水平完全可以在技能考vb上那滿分了,注意一些細節,后期會專門發一篇做vb題的細節。加油!對了,要多花時間在服務器配置上(Windows Server 2008 R2)上。

總結

以上是生活随笔為你收集整理的VB程序设计练习题(2022年新)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。