在VB中計算學生成績和平均值
A. 高手幫忙。。如何用vb讀入文件並計算成績平均分阿。
Private Sub Command1_Click()
Dim A() As String, B As String, C As Single
Open "c:\1,txt" For Input As #1 '打開文件,請修改實際文件名
Me.Cls
Print "學 號專 姓 名 平均屬分"
Do While Not EOF(1)
Line Input #1, B
If B <> "" Then
A = Split(B, " ")
C = (Val(A(2)) + Val(A(3)) + Val(A(4))) / 2
Print A(0) & " " & A(1) & " " & Format(C, "0.0")
End If
Loop
Close #1
End Sub
B. vb保存100個學生成績計算平均分,並把成績分為10段,0~9分,10~19分,20~29分,以此
Private Sub Command1_Click()
Dim marks(99) As Integer, cnts(10) As Integer
Randomize
s = 0
For i = 0 To 99
marks(i) = Int(Rnd * 101)
s = s + marks(i)
Print Tab(5 * (i Mod 10)); marks(i);
If i Mod 10 = 9 Then Print
t = marks(i) 10
If t = 10 Then t = 9
cnts(t) = cnts(t) + 1
Next i
For i = 0 To 8
Print i * 10; "~"; i * 10 + 9; ": "; cnts(i)
Next i
Print " 90 ~ 100: "; cnts(9)
End Sub
C. vb輸入10個同學的成績,計算平均分和總分
Dim A(1 To 10) As Single。
Private Sub Command1_Click()。
'請在第一個文本中輸入成績,成績之間用空格隔開。
Dim s As String
s = Trim(Text1.Text)
d = Split(s, " ")
ReDim A(1 To UBound(d) + 1) As Single
For i = 1 To UBound(A)
A(i) = d(i - 1)
Next
End Sub
Private Sub Command2_Click()
maxn = A(1)
For i = 2 To UBound(A)
(3)在VB中計算學生成績和平均值擴展閱讀
vb.net特性:
1、vb.net 完全集成到 Visual Studio 集成開發環境中,在這種集成開發環境與 VB 在若干方面有差異。主要體現在窗體的布局以及菜單等方面都有所不同。
2、vb.net 項目與 VB 不同。它使用基於文件夾的模型,所有項目均放置在項目文件夾層次結構中。
3、vb.net 中使用ado.net來訪問資料庫,ado.net是.netFramework的一部分。在 vb.net 中實現數據訪問的方法主要有兩種。
其一是在程序設計階段,通過創建、配置數據適配器 DataAdapter 和生成數據集 DataSet;其二是在運行中,通過編程方式動態創建配置數據適配器和創建、生成數據集。
D. VB編程如何計算平均數
新建工程,1個文本框和1個按鈕
text1用來錄入數據, 因為是任意個數,用很多文本框是不方專便的,程序設屬計是使用","來分隔數字,你可以輸入任意多個數字,然後按鈕command1後,就可以顯示總和及平均值.
Private Sub Command1_Click()
If Len(Text1) = 0 Then Exit Sub
If InStr(Text1, ",") < 2 Then Exit Sub
Dim a, sumn%, i%, j%
a = Split(Text1, ",")
For i = 0 To UBound(a)
If IsNumeric(Val(a(i))) Then '防止有非數字的情況發生,做一下校驗
sumn = sumn + Val(a(i))
j = j + 1
End If
Next
Print "總和為:" & sumn
Print "平均數為:" & sumn / (UBound(a) + 1)
End Sub
E. 如何用VB計算加權平均分
Private Sub Command1_Click()
Open App.Path + "\score.txt" For Input As #1
Dim linetxt As String
Dim AvgScore() As Double
If Not EOF(1) Then
Line Input #1, linetxt '過濾掉第一行的標題
End If
Dim all() As StuInfo
Counter = 0
Do While Not EOF(1) '讀數據
Line Input #1, linetxt
If Len(Trim(linetxt)) > 0 Then
arr = Split(linetxt, " ")
If UBound(arr) >= 3 Then
Counter = Counter + 1
ReDim Preserve all(Counter) As StuInfo
With all(Counter)
.Id = arr(0)
.StuName = arr(1)
.English = CDbl(arr(2))
.Math = CDbl(arr(3))
.AvgScore = Round((.English * 4 + .Math * 6) / (4 + 6), 2)
End With
End If
End If
Loop
Close #1
'排序
ReDim ord(Counter) As Integer '初始化
For i = 1 To UBound(ord)
ord(i) = i
Next
For i = 1 To UBound(ord) '排序ing
For j = i + 1 To UBound(ord)
If all(ord(i)).AvgScore < all(ord(j)).AvgScore Then
ord(0) = ord(i)
ord(i) = ord(j)
ord(j) = ord(0)
End If
Next
Next
For i = 1 To UBound(ord) '按名次排序
all(ord(i)).No = i
Next
'按照名次顯示(兩段代碼選其中一段)
Print "學號 姓名 英語 數學 平均 名次 (按名次排)" 'print title
For i = 1 To UBound(ord)
With all(ord(i))
tmp = .Id + " " + .StuName + " " + CStr(.English) + " " + CStr(.Math) + " " + CStr(.AvgScore) + " " + CStr(.No)
Print tmp
End With
Next
'按讀入順序顯示(兩段代碼選其中一段)
Print "學號 姓名 英語 數學 平均 名次 (按讀取順序排)" 'print title
For i = 1 To UBound(ord)
With all(i)
tmp = .Id + " " + .StuName + " " + CStr(.English) + " " + CStr(.Math) + " " + CStr(.AvgScore) + " " + CStr(.No)
Print tmp
End With
Next
End Sub
F. vb試題:任意輸入N個學生的成績,計算平均分,並輸出n名學生的成績及平均分。急求,勿水,急求,在線
Private Sub Command1_Click()
Dim n As Integer
Dim show As String
Dim a()
n = CInt(InputBox("輸入學來生數自"))
ReDim a(n)
For i = 1 To n
a(n) = CInt(InputBox("請輸入第 " & CStr(i) & " 名學生成績"))
average = average + a(n)
Next i
For i = 1 To n
show = show & "第 " & CStr(i) & " 名成績" & Chr(13)
Next i
average = average / n
show = show & "平均值:" & average & Chr(13)
MsgBox show
End Sub
G. vb中一個計算平均分的問題
1)
For i = 0 To n - 1
mark(n - 1) = Int((101) * Rnd() + 0) ' 錯誤,修改如下:
mark(i) = Int((101) * Rnd() + 0)
t = t + mark(i)
Next
2)
Label2 .Text &= mark(n - 1) & " " 『VB 可以這么做嗎??
Label2 .Text =Label2 .Text & mark(n - 1) & " "
3)
For i = 0 To n - 1
If mark(i) > aver Then
n += 1 'C,C++,回Java,c# 可以這樣做,VB也可以了嗎答????
End If
Next
TextBox2.Text = n
修改如下:
dim c as integer
c=0
For i = 0 To n - 1
If mark(i) > aver Then
c=c+1;
End If
Next
TextBox2.Text = c
H. 計算每門課程的總和和平均分(vb)
總和:k=k+a(x,y)
平均分:p=k/5
I. 輸入若干學生成績輸出所有成績並計算顯示最大最小及平均值用vb語言寫的程序
Dima(10)AsInteger,avgAsInteger=0,sumAsInteger=0,maxAsInteger,minAsInteger,tempAsInteger,stAsString=""
Fori=1To10
a(i)=Val(InputBox("請輸入第"&i&"個學生的數學成績"))
Next
Fori=1To10
sum=sum+a(i)
Next
avg=sum/10
Fori=1To10
Forj=1To10-i
Ifa(j)<a(j+1)Then
temp=a(j+1)
a(j+1)=a(j)
a(j)=temp
EndIf
Nextj
Nexti
max=a(1)
min=a(10)
st=st&"學生的數學成績總和是"&sum&vbCrLf
st=st&"學生的數學成績平均是"&avg&vbCrLf
st=st&"學生的數學成績最高是"&max&vbCrLf
st=st&"學生的數學成績最低是"&min&vbCrLf
TextBox6.Text=st