以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]在加入计算“标准差”时总是报错,是代码错了吗?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=18401)

--  作者:lpxjw_zyl
--  发布时间:2012/4/11 22:58:00
--  [求助]在加入计算“标准差”时总是报错,是代码错了吗?

在“理科有效分”计算窗口中加入dr("标准差") = DataTables("成绩库").Compute("Std(语文)")时总是报错,不加此无误。


是代码错了吗?

 

统计出来要达到的要求是:Excel文件:“理科有效分”

 

麻烦您帮我看一下怎么修改。谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:理科有效分.xls


图片点击可在新窗口打开查看此主题相关图片如下:错误提示.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高中期末成绩统计.rar


--  作者:程兴刚
--  发布时间:2012/4/11 23:30:00
--  

Std是AggregateEnum枚举的类型,您这样张冠李戴当然出错,把这一句:dr("标准差") = DataTables("成绩库").Compute("Std(语文)")换成下面的代码试一试:

 

Dim p As Integer = Tables("成绩库").Cols("语文").Index

Dim rs As Integer = Tables("成绩库").Rows.Count -1

dr("标准差") = DataTables("成绩库").Aggregate(AggregateEnum.Std, 0, p, rs, p)

[此贴子已经被作者于2012-4-11 23:51:02编辑过]

--  作者:lpedu_jks
--  发布时间:2012/4/12 15:10:00
--  

谢了!dr("标准差") = DataTables("成绩库").Aggregate(AggregateEnum.Std, 0, p, rs, p)
应改为dr("标准差") = Tables("成绩库").Aggregate(AggregateEnum.Std, 0, p, rs, p)才行。


--  作者:程兴刚
--  发布时间:2012/4/12 15:43:00
--  
datatable是你的原始写法,把我带沟里去了,我没看见您的全部代码,也没在意!
--  作者:lpedu_jks
--  发布时间:2012/11/10 15:03:00
--  [求助]填充“平均分之和”

上述问题已经解决了。但又遇到新问题了。

在填充“平均分之和”时最后一科“生物”填充进去了,语数英理化无法填充。麻烦您帮我看一下。

平均分之和=语数英物化生各科平均分之和”。谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高中期末成绩统计程序.rar

[此贴子已经被作者于2012-11-10 16:21:42编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/10 20:56:00
--  
 在得到生物平均分的地方,写入如下代码。标准差平均分同样这样做。

Dim sum As Double = Tables("总分有效分").Aggregate(AggregateEnum.Sum, 0, q, 5, q)
For i As Integer = 0 To 5
     Tables("总分有效分").Rows(i)("平均分之和") = sum
Next

--  作者:lpedu_jks
--  发布时间:2012/11/11 2:37:00
--  [求助]“有效分”的填充问题

谢谢!“平均分之和”、“标准差之和”问题解决了。

总分和生物的“有效分”已经填充,但“语、数、英、物、化”的“有效分”不知如何填充了,麻烦版主帮帮忙。谢谢!

各科重点有效分=(重点线-平均分之和)/各科标准差之和*该科标准差+该科平均分

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:高中期末成绩统计程序1.rar


图片点击可在新窗口打开查看此主题相关图片如下:现在的计算结果.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2012-11-11 22:58:35编辑过]

--  作者:sgs
--  发布时间:2012/11/11 3:33:00
--  

For Each r As Row In tbl.Rows
    r("重点有效分") = (r("重点线") - r("平均分之和")) /r("标准差之和")*r("标准差")+r("平均分")
Next


--  作者:lpedu_jks
--  发布时间:2012/11/11 12:00:00
--  
谢谢!我不知这个代码加在什么地方?
--  作者:lin_hailun
--  发布时间:2012/11/12 11:03:00
--  
以下是引用lpedu_jks在2012-11-11 12:00:00的发言:
谢谢!我不知这个代码加在什么地方?

加在生成 生物 行的后面,也就是下面代码的后面。因为要得到 平均分之和、标准差之和。

Dim sum As Double = Tables("总分有效分").Aggregate(AggregateEnum.Sum, 0, q, 5, q)
For i As Integer = 0 To 5
     Tables("总分有效分").Rows(i)("平均分之和") = sum
Next