Foxtable(狐表)用户栏目专家坐堂 → [求助]学习阶段,求老师改正一下代码?


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

主题:[求助]学习阶段,求老师改正一下代码?

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


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]学习阶段,求老师改正一下代码?  发帖心情 Post By:2015/3/10 9:42:00 [只看该作者]

如例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学生成绩.foxdb

淘汰线计算的代码,怎么弄也弄不好,请老师帮助一下,谢谢了:代码如下:
Dim dt As DataTable = DataTables("成绩")
Dim dt_d As DataTable = DataTables("淘汰线计算")
dt_d.DataRows.Clear
For Each zy As String In dt.GetValues("专业组名称")
    Dim zy_sum As Double = 0
    For Each s As String In zy
        Dim dr As DataRow = dt_d.AddNew
        dr("专业组名称") = zy
        dr("淘汰线分数") =  '淘汰线分数:按写入的淘汰率(10%),找出每个专业组名称的最低分数,即分数线
        dr("平均淘汰线") =  '按照找出来的各专业组名称的"淘汰线分数"相加,除以专业组名称的个数,算出平均淘汰线
    Next
    If dt.DataRow("最终成绩")> dr("平均淘汰线") Then  '如果成绩表中的最终成绩大于淘汰线计算表的平平均淘汰线
        dt.DataRow("等次") ="平均入围"
    Else
        dt.DataRow("等次") ="平均淘汰"
    End If
Next


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/10 9:56:00 [只看该作者]

利用 Compute("count(姓名)","专业组名称='01中学语文'")  获取到科目考生总数  * 你的淘汰率   得出  不上线人数

再利用 FIND 
Find(Filter,Sort,Index)

Filter:  条件表达式,请参考表达式的运算符和函数 和 条件表达式
Sort:    可选参数,指定排序方式。
Index:    可选参数,指定返回第几个符合条件的行,0表示第一行。

条件设置为  "专业组名称='01中学语文'"
排序 设置为  成绩
Index    设置为  刚刚  通过计算取得不上线人数,那么刚好就是  淘汰分数线了.


得出了淘汰分数线  平均分数线就好算了吧


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


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

一点进步都没有

 

Dim dt As DataTable = DataTables("成绩")
Dim dt_d As DataTable = DataTables("淘汰线计算")
dt_d.DataRows.Clear
Dim zyzs As List(Of String) = dt.GetValues("专业组名称")
Dim ttl As Double = 0.1
Dim sum_avg As Double = 0
For Each zy As String In zyzs
    Dim rys As List(Of DataRow) = dt.Select("专业组名称 = '" & zy & "'", "原始成绩")
   
    Dim dr As DataRow = dt_d.AddNew
    dr("专业组名称") = zy
    Dim i As Integer = ttl*rys.Count
    dr("淘汰线分数") = rys(i)("原始成绩")
    sum_avg += rys(i)("原始成绩")
Next
dt_d.ReplaceFor("平均淘汰线", sum_avg / zyzs.count)
For Each dr As DataRow In dt.DataRows
    If dr("原始成绩")> sum_avg / zyzs.count Then  '如果成绩表中的最终成绩大于淘汰线计算表的平平均淘汰线
        dr("等次") ="平均入围"
    Else
        dr("等次") ="平均淘汰"
    End If
Next


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


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

不知道怎么去组合应用,能否详细点,老大

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


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

谢谢有点甜,我很笨,唉,谢谢

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/10 10:08:00 [只看该作者]

已经说得很明确了, 你看3楼有点甜的代码吧,  一直只靠复制代码, 永远都不会进步的.

 回到顶部