如何用VB计算加权平均分

作者&投稿:休晶 (若有异议请与网页底部的电邮联系)
用vb程序计算三个数的平均值 代码要简单易懂的,本人菜鸟~

Private Sub Command1_Click() '计算平均分
Dim a As Single, b As Single, c As Single, d As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
d = (a + b + c) / 3
Text4.Text = d
End Sub

Private Sub Command2_Click() ‘清除
Text1.Tex = ""
Text2.Tex = ""
Text3.Tex = ""
Text4.Tex = ""
End Sub

Private Sub Command3_Click() ’退出
End
End Sub

在日常工作中经常要用到加权平均值,在Excel中用SUMPRODUCT和SUM函数可以很容易地计算出加权平均值。假如某公司三次购进了某产品,每次购买的数量和价格都不相同,那么购买的每件产品的平均价格是多少呢?这时就要用加权平均值来进行计算,如图。

加权平均值的公式为:
=SUMPRODUCT(B2:B4,C2:C4)/SUM(B2:B4)
或数组公式:
=SUM(B2:B4*C2:C4)/SUM(B2:B4)
公式输入完毕后按Ctrl+Shift+Enter结束

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

Dim p() as integer,i as integer,str as string,LineCount as long
Open "C:\Test.txt" For Input As #1
do while not eof(1)
Line Input #1,str
linecount = linecount+1
p=Split(str," ")
p(4)=format((p(2)+p(3))/2,"###.##") '平均分,以此类推,如果要跟上下文关联可以再加一个q()。
loop
close #1

================================
Split以后(p=Split(str," "))以后
p(0)就是学号
p(1)就是姓名
p(2)就是数学
p(3)就是英语
p(4)就是平均成绩
p(5)就是名字
如果后面还有空格,则p(6)就是后面的..

Dim
p()
as
integer,i
as
integer,str
as
string,LineCount
as
long
Open
"C:\Test.txt"
For
Input
As
#1
do
while
not
eof(1)
Line
Input
#1,str
linecount
=
linecount+1
p=Split(str,"
")
p(4)=format((p(2)+p(3))/2,"###.##")
'平均分,以此类推,如果要跟上下文关联可以再加一个q()


财务成本报表
S=(EBIT-I)(1-T)\/Ks Ks—权益资本成本(按资本资产模型计算) Kb—税前债务成本 加权平均资本成本 或=∑(个别资本成本×个别资本占全部资本的比重) 并购与控制 85、目标企业价值=估价收益指标×标准市盈率(市盈率模型法) 资本收益率=息税前利润\/(长期负债+股东权益) 每股股票内在价值=每股股利现值+股票出售预期...

如何测试摄像机(监控上使用的)性能?用什么测试设备?
(2)仪器法:同样在暗室中测试,将摄像机对准十级灰度测试卡,调低室内的光亮度,直至摄像机输出的视频信号在示波器上的辐度降至350mv,再用测光表测量测试卡表面的照度值,计算出最低照度。 3、测试时应注意的是最低照度的数值与下列四个因素有关。 (1)镜头的光圈 (2)光源的色温 (3)视频...

ASP.NET 或 PHP 图象高手来
1、首先不知道你所谓的卡通是什么样子的?2、经过PS后(你提到了卡通效果)应该在饱和度、某点的颜色值都发生了变化,当然色深度也有可能变了。提供一个思路:将两张图片在内存中都转化为,相同色深的位图,然后灰度处理,再然后利用边缘检测法判断边缘(这里是有局限性的,需要背景比较明显,如果背景...

计算机二级证都考什么?
考试时长120 分钟,计算机国家二级科目设置如下:1、C语言程序设计 2、VB语言程序设计 3、VFP数据库程序设计(2018年3月停考)4、Java语言程序设计 5、Access数据库程序设计 6、C++语言程序设计 7、MySQL数据库程序设计 8、Web程序设计 9、MS Office高级应用 10、Python语言程序设计(2018年9月开考)...

接口异常是什么意思?
接口异常的意思就是服务器崩了,网络导致视频播放失败,接口出现了异常。检查自己的网路是不是已经连接成功了,网速限速没,连接成功后再次登录,就可以看自己想要看的视频了。

财务成本管理的110个公式!还没收藏的抓紧了
S=(EBIT-I)(1-T)\/Ks Ks—权益资本成本(按资本资产模型计算) Kb—税前债务成本 加权平均资本成本 或=Σ(个别资本成本×个别资本占全部资本的比重) 并购与控制 85、目标企业价值=估价收益指标×标准市盈率(市盈率模型法) 资本收益率=息税前利润\/(长期负债+股东权益) 每股股票内在价值=每股股利现值+股票出售预期...

紧急!求答案!会计证考试的利润表!答案要详细,越详细越好!
S=(EBIT-I)(1-T)\/Ks Ks—权益资本成本(按资本资产模型计算) Kb—税前债务成本 加权平均资本成本 或=Σ(个别资本成本×个别资本占全部资本的比重) 并购与控制 85、目标企业价值=估价收益指标×标准市盈率(市盈率模型法) 资本收益率=息税前利润\/(长期负债+股东权益) 每股股票内在价值=每股股利现值+股票出售预期...

献县15167011204: 如何用VB计算加权平均分 -
成王询胃复: Private Sub Command1_Click() Open App.Path + "\score.txt" For Input As #1 Dim linetxt As StringDim AvgScore() As DoubleIf Not EOF(1) ThenLine Input #1, linetxt '过滤掉第一行的标题 End IfDim all() As StuInfoCounter = 0 Do While Not ...

献县15167011204: 请用VB编程解决已知m个学生进行n个科目的考试,请计算每个同学的平均分. -
成王询胃复: Dim Avg() n = Val(InputBox("输入学生人数N=")) M = Val(InputBox("输入课程数M=")) ReDim Avg(n) For i = 0 To n - 1 Sum = 0 For j = 0 To M - 1 D = Val(InputBox("输入第 " & i + 1 & " 位同学的科目 " & j + 1 & " 的成绩:")) Sum = ...

献县15167011204: VB程式求平均分 -
成王询胃复: Private Sub Form_Load() Show Dim a!, b!, c! MsgBox "求语数外三门课程平均分" a = Val(InputBox("请输入语文分数")) b = Val(InputBox("请输入数学分数")) c = Val(InputBox("请输入英语分数")) x = (a + b + c) / 3 If x >= 60 Then MsgBox "太棒了" Else MsgBox "要努力" End If End End Sub

献县15167011204: 用vb编程:已知3个学生,5门功课的成绩,求每个学生的总分,平均分,每门功课的平均分.
成王询胃复: 方法有很多种,反正就是要输入每个人的成绩.下面就介绍一种最简单的给你 Private Sub Command1_Click() '已知3个学生,5门功课的成绩,求每个学生的总分,平均分,每门功课的平均分. Dim a As Single, b As Single, c As Single, d As...

献县15167011204: 求助设计VB程序:输入一批学生的分数,请用VB输出平均分 -
成王询胃复: Option Base 1 Private Sub Command1_Click() Dim aver As Single, sun As Integer Sum = 0 n = InputBox("请输入少学生个数!") For i = 1 To n score = InputBox("请输入" & i & "个学生的成绩") Sum = Sum + score Next i aver = Sum / n Print n & "学生的平均数是:"; aver End Sub

献县15167011204: 用VB求出数据库平均分 -
成王询胃复: rs.open "select avg('总分') as 平均分 from [成绩表]",cn,3,3 msgbox "平均分" & v...

献县15167011204: 高手帮忙..如何用vb读入文件并计算成绩平均分阿. -
成王询胃复: dim A() as string,B as string,C as long Open "文件路径" For Input As #1 '打开文件 Do While Not EOF(1) '循环读取,直到文件结束 Line Input #1, B '读取一行内容到变量B if B"" then A=Split(B," ") C = (Val(A(2)) + Val(A(3)) + Val(A(4))) / 3 ...

献县15167011204: excel中用vb求平均成绩,代码怎么写?没学过,谢谢各位了! -
成王询胃复: 用函数average就可以做到了 单元格中输入 =average("你要求平均成绩的范围")

献县15167011204: VB中如何求未知个数的平均数
成王询胃复: dim a as integer,s as single,b as single a=val(inputbox("请输入个数")) for i= 1 to a b=val(inputbox("请输入第" &amp; i &amp;"个数")) s=s+b next i print "平均值为:";s/a

献县15167011204: vb题,求编程 输入若干个成绩,求出其平均分,然后将成绩大于平均分的学生的成绩按从高到低的顺序显示 -
成王询胃复: 成绩大于平2113均分的学生5261的成绩按从高到低的顺4102序显示的VB程序如下,请采纳1653:Private Sub Command1_Click()Dim a() As Integern = Val(InputBox("请问要输入版几个权成绩:"))ReDim a(n)For i = 1 To na(i) = Val(InputBox...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网