Foxtable(狐表)用户栏目专家坐堂 → 各们大佬:我想按年级、专业、课程名称、班级统计优秀(参考人数成绩前15%)和合格(参考人数成绩前75%)人数,怎么写代码啊?谢谢


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

主题:各们大佬:我想按年级、专业、课程名称、班级统计优秀(参考人数成绩前15%)和合格(参考人数成绩前75%)人数,怎么写代码啊?谢谢

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/7 9:39:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/7 15:30:00 [显示全部帖子]

处理完合格后,按分数排序找出最后一个分数,然后把和最后一个分数相同分数的都赋值即可

dim fs as double = 按分数排序找出最后一个分数
DataTables("某表").ReplaceFor("合格判定""合格""[分数] = " & fs)

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/8 11:38:00 [显示全部帖子]

请把你的项目文件发上来说明问题

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 8:40:00 [显示全部帖子]

1、哪个表的15、16、17行及73和74行分数的等级?这些等级有什么问题?截图说明一下
Dim g As New CrossTableBuilder("统计表3", DataTables("成绩排名"))
g.HGroups.AddDef("年级")
g.HGroups.AddDef("专业")
g.HGroups.AddDef("班级")
g.VGroups.AddDef("等级")
g.Totals.AddDef("姓名", AggregateEnum.Count, "姓名")
g.Build()
MainTable = Tables("统计表3")

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 10:54:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 11:17:00 [显示全部帖子]

做了什么统计?没看到有统计的代码

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 11:29:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:考试统计.zip


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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 13:31:00 [显示全部帖子]

看看17楼,如果不是需要的。请举例说明一下正确的结果

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 14:33:00 [显示全部帖子]

没看懂。请举例具体表格数据说明。列出正确的结果做参考

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/11/12 16:10:00 [显示全部帖子]

DataTables("学生成绩").ReplaceFor("等级", Nothing)
Dim vals() As Double = {0.15, 0.75}
Dim drs As List (Of DataRow)
For Each ss As String() In DataTables("学生成绩").GetValues("年级|专业|课程名称", "", "分数 Desc")
    drs = DataTables("学生成绩").Select("年级='" & ss(0) & "' and 专业='" & ss(1) & "' and 课程名称='" & ss(2) & "'", "分数 Desc")
    Dim cnt As Integer = drs.Count
    Dim k15 As Integer = math.Floor(0.15 * cnt)
    Dim k75 As Integer = math.Floor(0.75 * cnt)
    '    Output.Show("k15=" & k15 & ",k75=" & k75)
    
    Dim i As Integer=0
    For i = 0 To k15 - 1
        drs(i)("等级") = "优秀"
    Next
    Dim 分数 As Double = drs(k15 - 1)("分数")
    For i = k15 To cnt - 1
        If drs(i)("分数") = 分数 Then
            drs(i)("等级") = "优秀"
        Else
            Exit For
        End If
    Next
    For i = i To k15 + k75 - 1
        drs(i)("等级") = "合格"
        
    Next
    分数 = drs(k15 + k75 - 1)("分数")
    For i = i To cnt - 1
        If drs(i)("分数") = 分数 Then
            drs(i)("等级") = "合格"
        Else
            Exit For
        End If
    Next
    For i = i To cnt - 1
        drs(i)("等级") = "不合格"
    Next
Next 

[此贴子已经被作者于2024/11/12 16:10:57编辑过]

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