以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]学习阶段,求老师改正一下代码?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=65126)

--  作者:hrw68529
--  发布时间: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
--  发布时间:2015/3/10 9:56:00
--  
利用 Compute("count(姓名)","专业组名称=\'01中学语文\'")  获取到科目考生总数  * 你的淘汰率   得出  不上线人数

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

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

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


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


--  作者:有点甜
--  发布时间: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
--  发布时间:2015/3/10 10:04:00
--  
不知道怎么去组合应用,能否详细点,老大
--  作者:hrw68529
--  发布时间:2015/3/10 10:08:00
--  
谢谢有点甜,我很笨,唉,谢谢
--  作者:Bin
--  发布时间:2015/3/10 10:08:00
--  
已经说得很明确了, 你看3楼有点甜的代码吧,  一直只靠复制代码, 永远都不会进步的.