论文部分内容阅读
摘要:警告系数就是为了确定某个研究对象与整体倾向性之间的偏离程度而规定的一个判断指数。S-P表是一种将测试、练习的得分数据排成一览表,并对学生和问题的特性以视觉化的图表进行结构分析的方法。
关键词:S-P表;矩阵;警告系数;VBA
【中图分类号】S973.1+5
S-P表是以学生(student)数据作为纵轴,问(problem)数据作为横轴的一览表,该表取学生和问题的第一字母,故称之为S-P表。下面介绍S-P表的制作步骤,并且说明如何使用EXCEL后台VBA自动计算学生的警告系数。
一、S-P表的制作和处理步骤
第一步:对布尔得分矩阵重新排列;
第二步:对得分累积分布处理,绘制S线和P线;
第三步:计算警告系数。
1.布尔得分矩阵重新排列原则
学生的顺序按得分多少,从上到下排列;
问题的顺序按被学生正答人数多少,从左到右排列;
对得分累积分布处理,绘制S线和P线。
2.数据分布处理
为了在S-P表上作进一步的分析,还需对S-P表中的数据进行得分累积分布处理。
求第i个学生所得总分,公式如下所示:
求第i个学生的得分率,公式如下所示:
求第j个问题被正答总数,公式如下所示:
求第j个问题的正答率,公式如下所示:
绘S线
S线,即学生得分分布线,是在S-P表上的阶梯状实线。对于第 i个学生,实线左边的格数等于该学生的得分总数。
绘P线
P线,即问题正答分布线,它是在S-P表上的阶梯虚线。对于第j个问题,虚线上而后格数等于该问题的被正答总数。
3.警告系数计算公式
由于研究的事件和对象不同,根据警告系数的定义及有关运算法则,可以采用下述化直观的公式来计算学生警告系数CSi。
学生警告系数的计算公式如下所示:
CSi= S线左边为“0”的问题的答对人数之和—S线右边为“1”的问题的答对人数之和
________________________________________
S线左边各题正答数之和—第Si学生的正答率*全体学生得分总和
二、程序编写
程序代码如下:
Sub Stundent()
Dim creatSheet As Worksheet
Dim CNST_LEFT, CNST_LEFT_COUNT As Long
Dim CNST_TOP, CNST_TOP_COUNT As Long
CNST_LEFT =(EXCEL中布尔排列后学生表列数据起始位置)
CNST_LEFT_COUNT =(参与答题学生数)
CNST_TOP =(EXCEL中布尔排列后学生表列数据起始位置)
CNST_TOP_COUNT =(题目个数)
Set creatSheet = ActiveWorkbook.ActiveSheet
creatSheet.Activate
For RowCount = CNST_TOP To (CNST_TOP + CNST_TOP_COUNT - 1)
Dim SLeft0 As Long
Dim SLeft1 As Long
Dim SRight1 As Long
Dim SAll As Long
Dim sCount As Long
SLeft0 = 0
SLeft1 = 0
SRight1 = 0
SAll = 0
sCount=CLng(creatSheet.Cells(RowCount,CNST_LEFT+CNST_LEFT_COUNT).Value)
For ColumnCount = CNST_LEFT To (CNST_LEFT + sCount - 1)
If CLng(creatSheet.Cells(RowCount, ColumnCount).Value) <> 1 Then
SLeft0 = SLeft0 + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
Else
SLeft1 = SLeft1 + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
End If
SLeft1=SLeft1+CLng(creatSheet.Cells(CNST_TOP+CNST_TOP_COUNT,ColumnCount).Value)
Next ColumnCount
For ColumnCount = CNST_LEFT + sCount To (CNST_LEFT + CNST_LEFT_COUNT - 1)
If CLng(creatSheet.Cells(RowCount, ColumnCount).Value) <> 0 Then
SRight1 = SRight1 + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
End If
Next ColumnCount
For ColumnCount = CNST_LEFT To (CNST_LEFT + CNST_LEFT_COUNT - 1)
SAll = SAll + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
Next ColumnCount
Dim dblSJinggao As Double
Dim dblSRitu As Double
dblSRitu = CDbl(creatSheet.Cells(RowCount, CNST_LEFT + CNST_LEFT_COUNT + 3).Value)
If CDbl(SLeft1 - dblSRitu * SAll) = 0 Then
dblSJinggao = 0
Else
dblSJinggao = CDbl(SLeft0 - SRight1) / CDbl(SLeft1 - dblSRitu * SAll)
End If
creatSheet.Cells(RowCount,CNST_LEFT+CNST_LEFT_COUNT+5)=CStr(dblSJinggao)
NextTime:
Next RowCount
End Sub
三、結论
根据具体数据可以得出学生警告系数,由答题的正确率和警告系数的共同作用,可根据实际情况将学生学习状况可分为若干种情况进行分析。所以根据警告系数我们很容易能判断出学生的学习状况。在所掌握的这些情况下,根据学生的学习状况可以有针对性的提高学生成绩。
关键词:S-P表;矩阵;警告系数;VBA
【中图分类号】S973.1+5
S-P表是以学生(student)数据作为纵轴,问(problem)数据作为横轴的一览表,该表取学生和问题的第一字母,故称之为S-P表。下面介绍S-P表的制作步骤,并且说明如何使用EXCEL后台VBA自动计算学生的警告系数。
一、S-P表的制作和处理步骤
第一步:对布尔得分矩阵重新排列;
第二步:对得分累积分布处理,绘制S线和P线;
第三步:计算警告系数。
1.布尔得分矩阵重新排列原则
学生的顺序按得分多少,从上到下排列;
问题的顺序按被学生正答人数多少,从左到右排列;
对得分累积分布处理,绘制S线和P线。
2.数据分布处理
为了在S-P表上作进一步的分析,还需对S-P表中的数据进行得分累积分布处理。
求第i个学生所得总分,公式如下所示:
求第i个学生的得分率,公式如下所示:
求第j个问题被正答总数,公式如下所示:
求第j个问题的正答率,公式如下所示:
绘S线
S线,即学生得分分布线,是在S-P表上的阶梯状实线。对于第 i个学生,实线左边的格数等于该学生的得分总数。
绘P线
P线,即问题正答分布线,它是在S-P表上的阶梯虚线。对于第j个问题,虚线上而后格数等于该问题的被正答总数。
3.警告系数计算公式
由于研究的事件和对象不同,根据警告系数的定义及有关运算法则,可以采用下述化直观的公式来计算学生警告系数CSi。
学生警告系数的计算公式如下所示:
CSi= S线左边为“0”的问题的答对人数之和—S线右边为“1”的问题的答对人数之和
________________________________________
S线左边各题正答数之和—第Si学生的正答率*全体学生得分总和
二、程序编写
程序代码如下:
Sub Stundent()
Dim creatSheet As Worksheet
Dim CNST_LEFT, CNST_LEFT_COUNT As Long
Dim CNST_TOP, CNST_TOP_COUNT As Long
CNST_LEFT =(EXCEL中布尔排列后学生表列数据起始位置)
CNST_LEFT_COUNT =(参与答题学生数)
CNST_TOP =(EXCEL中布尔排列后学生表列数据起始位置)
CNST_TOP_COUNT =(题目个数)
Set creatSheet = ActiveWorkbook.ActiveSheet
creatSheet.Activate
For RowCount = CNST_TOP To (CNST_TOP + CNST_TOP_COUNT - 1)
Dim SLeft0 As Long
Dim SLeft1 As Long
Dim SRight1 As Long
Dim SAll As Long
Dim sCount As Long
SLeft0 = 0
SLeft1 = 0
SRight1 = 0
SAll = 0
sCount=CLng(creatSheet.Cells(RowCount,CNST_LEFT+CNST_LEFT_COUNT).Value)
For ColumnCount = CNST_LEFT To (CNST_LEFT + sCount - 1)
If CLng(creatSheet.Cells(RowCount, ColumnCount).Value) <> 1 Then
SLeft0 = SLeft0 + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
Else
SLeft1 = SLeft1 + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
End If
SLeft1=SLeft1+CLng(creatSheet.Cells(CNST_TOP+CNST_TOP_COUNT,ColumnCount).Value)
Next ColumnCount
For ColumnCount = CNST_LEFT + sCount To (CNST_LEFT + CNST_LEFT_COUNT - 1)
If CLng(creatSheet.Cells(RowCount, ColumnCount).Value) <> 0 Then
SRight1 = SRight1 + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
End If
Next ColumnCount
For ColumnCount = CNST_LEFT To (CNST_LEFT + CNST_LEFT_COUNT - 1)
SAll = SAll + CLng(creatSheet.Cells(CNST_TOP + CNST_TOP_COUNT, ColumnCount).Value)
Next ColumnCount
Dim dblSJinggao As Double
Dim dblSRitu As Double
dblSRitu = CDbl(creatSheet.Cells(RowCount, CNST_LEFT + CNST_LEFT_COUNT + 3).Value)
If CDbl(SLeft1 - dblSRitu * SAll) = 0 Then
dblSJinggao = 0
Else
dblSJinggao = CDbl(SLeft0 - SRight1) / CDbl(SLeft1 - dblSRitu * SAll)
End If
creatSheet.Cells(RowCount,CNST_LEFT+CNST_LEFT_COUNT+5)=CStr(dblSJinggao)
NextTime:
Next RowCount
End Sub
三、結论
根据具体数据可以得出学生警告系数,由答题的正确率和警告系数的共同作用,可根据实际情况将学生学习状况可分为若干种情况进行分析。所以根据警告系数我们很容易能判断出学生的学习状况。在所掌握的这些情况下,根据学生的学习状况可以有针对性的提高学生成绩。