推 ttnakafzcm:收到 感謝 = = VB是我很大的罩門 = = 03/29 23:01
※ 引述《ttnakafzcm (@@)》之銘言:
: ※ [本文轉錄自 ask 看板]
: 作者: ttnakafzcm (@@) 看板: ask
: 標題: [請問] 1題VB
: 時間: Mon Mar 22 21:45:02 2010
: 題目:
: 某班學生人數不祥,連續輸入每個學生的VB成績,當輸入-1時表示結束輸入
: ,然後計算: 1 全班人數 2 全班平均人數 3 90分以上人數 4 不及格人數 5 最高分數
: 小弟遇到一點問題
: 如果要用Inputbox輸入成績,同時Print在左上角
: 並且再輸入-1時停止迴圈,但是不列印-1
: 還有在輸入視窗時 內文要有第X個人的成績
: 並把輸入的成績做各種處理
: 然後 只能用DO迴圈
: 還有最高分的部份不知怎判斷
: 拜託各位大大了
: 我試了很久都試不出來.......
: Private Sub cmdin_Click()
: Dim score As Integer, count As Integer
: count = 1
: Do While score = InputBox(成績, 第Count個人VB成績, 60)
: Print score
: Do Until score = -1
: Loop
: count = count + 1
: total = total + score
: Loop Until score = -1
: score = score + 1
: Select Case score
: Case Is >= 90: count1 = count1 + 1
: Case Is < 60: count2 = count2 + 1
: End Select
: Loop Until score = -1
: average = total / count
: End Sub
:
以下是針對你所要求的功能大略的程式
基本上還會有輸入字串或符號要去避免才算是完成
不過沒有包含輸出到txt,但這應該板上或google一下就找得到了
Private Sub Command1_Click()
Dim Score As Variant
Dim intUnder59 As Integer, int90Up As Integer, intMaxScr As Integer, tmpScr
As Integer, intCount As Integer
Dim dblAvg As Double
Cls
intCount = 0: Score = 0: tmpScr = 0
Do While Score <> -1 And Score <> ""
Score = InputBox("成績", "第" & intCount + 1 & "個人vb成績", 60)
If Score <> -1 And Score <> "" Then '每次輸入都把最高值、不及格人數、
90以上人數和累積分數更新一次,最後再平均
intMaxScr = IIf(Score > intMaxScr, Score, intMaxScr)
intUnder59 = intUnder59 + IIf(Score < 60, 1, 0)
int90Up = int90Up + IIf(Score >= 90, 1, 0)
tmpScr = tmpScr + Score
intCount = intCount + 1
End If
Loop
'防止沒輸入資料時的錯誤
If intCount > 0 Then dblAvg = tmpScr / intCount
Print "平均分:" & dblAvg
Print "最高分:" & intMaxScr
Print "不及格:" & intUnder59
Print "90以上:" & int90Up
Print "總人數:" & intCount
End Sub
--
以上by vb6
--
漫長的RD之路~
終點站等著我的是......
另一種新語言誕生~..........by DG~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.66.86.119