Foxtable(狐表)用户栏目专家坐堂 → [求助]加权计算如何写代码


  共有3778人关注过本帖树形打印复制链接

主题:[求助]加权计算如何写代码

帅哥哟,离线,有人找我吗?
hrw68529
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]加权计算如何写代码  发帖心情 Post By:2014/5/4 17:48:00 [只看该作者]

各位专家:遇到一个问题求解:如例子中的“加权计算”表中,“面试平均值”是指在一个面试室中分别去掉2个最高分和去掉2个最低分,然后计算出其余考生面试成绩得分的平均分数;加权平均值是指,进行加权的面试室(如本例中的第一、第二、第三面试室)的"面试平均值"的平均值(如本例中的第一面试室平均值+第二面试室平均值+第三面试室平均值除以3);加权系数是指:用“加权平均值”除以每个加权的面试室的“面试平均值”;这样的代码怎么写,尤其是“面试平均值”如何去掉2个最高分和2个最低分,然后把剩余的人员的成绩相加除以剩余的人员数,谢谢
如例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公员面试登分系统_加权成绩计算.rar



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/4 18:34:00 [只看该作者]

 面试室平均值,这样算,剩下的自己试试做

 

        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


 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/5 11:19:00 [只看该作者]

加权平均值是指,面试室平均值的平均值,也就是有几个加权的面试室,就把这几个面试室的"面试室平均值"相加除以这几个面试室的数

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 11:42: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
Else If e.DataCol.Name = "面试室平均值" Then
    For Each dr As DataRow In e.DataTable.DataRows     
        dr("加权平均值") = e.DataTable.Compute("avg(面试室平均值)")
    Next
End If

[此贴子已经被作者于2014-5-5 11:43:32编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/5 12:49:00 [只看该作者]

代码不行啊,我把软件发给你看一下吧
例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:务员面试登分系统_加权计算2.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/5 14:10:00 [只看该作者]

 回复6楼,代码哪里不行?能否具体说说?谁知道你哪里不对啊

 

 你给的项目,没有带有对应的数据库。

[此贴子已经被作者于2014-5-5 14:10:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/5 14:22:00 [只看该作者]

对不起,数据库在data中,连接一下就可以了,主要出现下图中的计数和加权平均值 及加权系数上,请看:

图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/5 14:23:00 [只看该作者]

加权平均值数据不对,第一行的加权系数没出现,为0,计数都为0,谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/5/5 14:25:00 [只看该作者]

数据库放在目录下就可以了。数据库为:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:data.rar



 回到顶部
总数 16 1 2 下一页