以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]加权计算如何写代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50312) |
||||
-- 作者:hrw68529 -- 发布时间:2014/5/4 17:48:00 -- [求助]加权计算如何写代码 各位专家:遇到一个问题求解:如例子中的“加权计算”表中,“面试平均值”是指在一个面试室中分别去掉2个最高分和去掉2个最低分,然后计算出其余考生面试成绩得分的平均分数;加权平均值是指,进行加权的面试室(如本例中的第一、第二、第三面试室)的"面试平均值"的平均值(如本例中的第一面试室平均值+第二面试室平均值+第三面试室平均值除以3);加权系数是指:用“加权平均值”除以每个加权的面试室的“面试平均值”;这样的代码怎么写,尤其是“面试平均值”如何去掉2个最高分和2个最低分,然后把剩余的人员的成绩相加除以剩余的人员数,谢谢 如例子:
|
||||
-- 作者:有点甜 -- 发布时间:2014/5/4 18:34:00 -- 面试室平均值,这样算,剩下的自己试试做
Dim zgf1, zgf2, zdf1, zdf2 As Double |
||||
-- 作者:hrw68529 -- 发布时间:2014/5/5 11:16:00 -- If e.DataCol.name="天数" OrElse e.DataCol.name="面试室" Then If e.DataRow.IsNull("天数")=False AndAlso e.DataRow.IsNull("面试室")=False Then Dim zgf1, zgf2, zdf1, zdf2 As Double Dim drs As List(Of DataRow) = DataTables("笔试成绩").Select("天数=\'" & e.DataRow("天数") & "\' and 面试室=\'" & e.DataRow("面试室") & "\'", "本场面试成绩") zgf1 = drs(drs.Count-1)("本场面试成绩") zgf2 = drs(drs.Count-2)("本场面试成绩") zdf1 = drs(0)("本场面试成绩") zdf2 = drs(1)("本场面试成绩") Dim sum As Double = DataTables("笔试成绩").Compute("sum(本场面试成绩)","天数=\'" & e.DataRow("天数") & "\' and 面试室=\'" & e.DataRow("面试室") & "\'") e.DataRow("面试室平均值") = (sum - zgf1 - zgf2 - zdf1 - zdf2) /( drs.Count - 4) e.DataRow("加权平均值") = e.DataTable.Compute("avg(面试室平均值)") e.DataRow("加权系数") = e.DataRow("加权平均值")/e.DataRow("面试室平均值") e.DataRow("计数") = DataTables("笔试成绩").Compute("Count(总成绩)","天数 = \'" & e.DataRow("天数") & "\' and 面试室 = \'" & e.DataRow("面试室") & "\'") End If End If 上述代码,红色部分,怎么也弄不好,请赐教
|
||||
-- 作者:hrw68529 -- 发布时间:2014/5/5 11:19:00 -- 加权平均值是指,面试室平均值的平均值,也就是有几个加权的面试室,就把这几个面试室的"面试室平均值"相加除以这几个面试室的数 |
||||
-- 作者:有点甜 -- 发布时间:2014/5/5 11:42:00 -- 代码,如下
If e.DataCol.name="天数" OrElse e.DataCol.name="面试室" Then e.DataRow("加权平均值") = e.DataTable.Compute("avg(面试室平均值)") [此贴子已经被作者于2014-5-5 11:43:32编辑过]
|
||||
-- 作者:hrw68529 -- 发布时间:2014/5/5 12:49:00 -- 代码不行啊,我把软件发给你看一下吧 例子:
|
||||
-- 作者:有点甜 -- 发布时间:2014/5/5 14:10:00 -- 回复6楼,代码哪里不行?能否具体说说?谁知道你哪里不对啊
你给的项目,没有带有对应的数据库。 [此贴子已经被作者于2014-5-5 14:10:10编辑过]
|
||||
-- 作者:hrw68529 -- 发布时间:2014/5/5 14:22:00 -- 对不起,数据库在data中,连接一下就可以了,主要出现下图中的计数和加权平均值 及加权系数上,请看: |
||||
-- 作者:hrw68529 -- 发布时间:2014/5/5 14:23:00 -- 加权平均值数据不对,第一行的加权系数没出现,为0,计数都为0,谢谢 |
||||
-- 作者:hrw68529 -- 发布时间:2014/5/5 14:25:00 -- 数据库放在目录下就可以了。数据库为: |