史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   軟體應用問題討論區 (http://forum.slime.com.tw/f5.html)
-   -   VB的程式請教高手 (http://forum.slime.com.tw/thread1147.html)

5865307 2002-12-11 02:37 PM

VB的程式請教高手
 
求救啊...VB的程式請教高手
查詢可以改變大小 排序那不行...
不知哪裡寫錯了?






Dim n(50) As String
Dim c(50) As Integer
Dim e(50) As Integer
Private Sub Command1_Click()

w = InputBox("學生數")

For i = 1 To w
n(i) = InputBox("請輸入姓名:", "請輸入姓名")
c(i) = InputBox("請輸入國文成績:", "請輸入成績")
e(i) = InputBox("請輸入英文成績:", "請輸入成績")
Next i

End Sub

Private Sub Command2_Click()

If Option1.Value Then
Font.Size = 12
ElseIf Option2.Value Then
Font.Size = 16
Else
Font.Size = 18
End If

If Option4.Value Then
Font.Italic = False
Font.Bold = False
ElseIf Option5.Value Then
Font.Italic = True
Font.Bold = False
ElseIf Option6.Value Then
Font.Italic = False
Font.Bold = True
Else
Font.Italic = True
Font.Bold = True
End If

a = InputBox("請輸入姓名:", "輸入姓名")
b = ""
d = 0
For i = 1 To 50
If n(i) = a Then
b = n(i)
d = c(i)
f = e(i)
End If
Next i

If b = "" Then
Print "資料錯誤!!"
Else

Cls

Print "姓名: " & b & " 國文成績: " & d & "英文: " & f

End If


End Sub

Private Sub Command3_Click()

If Option1.Value Then
Font.Size = 12
ElseIf Option2.Value Then
Font.Size = 16
Else
Font.Size = 18
End If

If Option4.Value Then
Font.Italic = False
Font.Bold = False
ElseIf Option5.Value Then
Font.Italic = True
Font.Bold = False
ElseIf Option6.Value Then
Font.Italic = False
Font.Bold = True
Else
Font.Italic = True
Font.Bold = True
End If

Dim a As String
Dim b As Integer
Dim h As Integer

FontSize = 14
w = InputBox("學生數")

Cls

For i = w - 1 To 0 Step -1
For j = 0 To i
If c(j) < c(j + 1) Then
a = n(j)
b = c(j)
h = e(j)
n(j) = n(j + 1)
c(j) = c(j + 1)
e(j) = e(j + 1)
n(j + 1) = a
c(j + 1) = b
e(j + 1) = h
End If
Next j
Next i

Cls

For z = 0 To w - 1

Print " 名次: " & z + 1 & " 姓名: " & n(z) & " 成績: " & c(z) & " 英: " & e(z) & " 平均: " & (c(z) + e(z)) / 2

Print
Next z

End Sub

5865307 2002-12-11 03:45 PM

不好意思...推一下

xyzu 2002-12-11 09:27 PM

陣列的元素應該是從0~49吧...
也就是說n(50)
則i要用0 to 49才對...

不知道 2002-12-11 09:43 PM

For i = 0 To w-1
For j = i To w
If c(i) < c(j) Then
a = n(i)
b = c(i)
h = e(i)
n(i) = n(j)
c(i) = c(j)
e(i) = e(j)
n(j) = a
c(j) = b
e(j) = h
End If
Next j
Next i

試試看,不過您c(n)到底是平均還是國文成績啊???

<參考>

kpopo 2002-12-12 11:54 AM

試試這個吧!
For i = 0 To w-1
if c(i+1)="" then exit for
If c(i) < c(i+1) Then
swap n(i),n(i+1)
swap c(i),c(i+1)
swap e(i),e(i+1)
i=0
End If
Next i


所有時間均為台北時間。現在的時間是 04:29 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1