作者DGnzj (DG)
看板Visual_Basic
标题Re: [请问] 1题VB
时间Wed Mar 24 13:54:13 2010
※ 引述《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
1F:推 ttnakafzcm:收到 感谢 = = VB是我很大的罩门 = = 03/29 23:01