--- loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2005/02/28 20:16:03 1.18 +++ loncom/interface/statistics/lonsubmissiontimeanalysis.pm 2005/03/04 20:34:15 1.19 @@ -1,6 +1,6 @@ # The LearningOnline Network with CAPA # -# $Id: lonsubmissiontimeanalysis.pm,v 1.18 2005/02/28 20:16:03 matthew Exp $ +# $Id: lonsubmissiontimeanalysis.pm,v 1.19 2005/03/04 20:34:15 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -201,6 +201,7 @@ sub analyze_times { my @Xlabel=($WeekDay[$wday]); # Labels of itmes my @BinEnd; # The end time of each bin my $cumulative_answers = 0; # The sum of @AnsData + my %students; # which students have attempted the problem? # foreach my $row (@$SubData) { my $subtime = &get_time_from_row($row); @@ -223,6 +224,7 @@ sub analyze_times { $max = $Ydata[$bincount] if ($max < $Ydata[$bincount]); $AnsData[$bincount] += &successful_submission($row); $cumulative_answers += &successful_submission($row); + $students{$row->[&Apache::loncoursedata::RT_student_id()]}++; } # # Pad the data to a full day @@ -240,7 +242,7 @@ sub analyze_times { $Xlabel[$bincount] = ''; } } - my $numstudents = scalar(@$students); + my $numstudents = scalar(keys(%students)); # # Determine a nice maximum value to use foreach my $maximum (10,15,20,25,30,40,50,60,70,80,90,100, @@ -266,7 +268,9 @@ sub analyze_times { ''.(' 'x3).''. ''.&mt('Correct Submissions').''. ''.(' 'x3).''. - ''.&mt('Cumulative Percent Correct').''. + ''.&mt('Cumulative Correct of those attempting the problem').''. + ''.(' 'x3).''. + ''.&mt('Cumulative Percent Correct of those attempting the problem').''. ''. ''. ''; @@ -274,7 +278,7 @@ sub analyze_times { my @CumulativeCorrectPercent; for (my $i=0;$i<=$#Ydata;$i++) { $CumulativeCorrect[$i]=$CumulativeCorrect[-1]+$AnsData[$i]; - $CumulativeCorrectPercent[$i] = (int(100*$CumulativeCorrect[$i]/$numstudents)); + $CumulativeCorrectPercent[$i] = sprintf('%3.1f',100*$CumulativeCorrect[$i]/$numstudents); if ($Ydata[$i] != 0) { next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0); $htmltable .= @@ -290,6 +294,8 @@ sub analyze_times { ' '. ''.$AnsData[$i].(' 'x3).''. ' '. + ''.$CumulativeCorrect[$i].''. + ' '. ''.$CumulativeCorrectPercent[$i].''. ''.$/; } @@ -337,7 +343,6 @@ sub successful_submission { return $row->[&Apache::loncoursedata::RT_awarded()]; } return undef; - return 0; } sub get_time_from_row {