看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《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
ttnakafzcm:收到 感謝 = = VB是我很大的罩門 = = 03/29 23:01