Diff for /loncom/interface/statistics/lonsubmissiontimeanalysis.pm between versions 1.18 and 1.19

version 1.18, 2005/02/28 20:16:03 version 1.19, 2005/03/04 20:34:15
Line 201  sub analyze_times { Line 201  sub analyze_times {
     my @Xlabel=($WeekDay[$wday]); # Labels of itmes      my @Xlabel=($WeekDay[$wday]); # Labels of itmes
     my @BinEnd;                   # The end time of each bin      my @BinEnd;                   # The end time of each bin
     my $cumulative_answers = 0;   # The sum of @AnsData      my $cumulative_answers = 0;   # The sum of @AnsData
       my %students;       # which students have attempted the problem?
     #      #
     foreach my $row (@$SubData) {      foreach my $row (@$SubData) {
         my $subtime = &get_time_from_row($row);          my $subtime = &get_time_from_row($row);
Line 223  sub analyze_times { Line 224  sub analyze_times {
         $max = $Ydata[$bincount] if ($max < $Ydata[$bincount]);          $max = $Ydata[$bincount] if ($max < $Ydata[$bincount]);
         $AnsData[$bincount] += &successful_submission($row);          $AnsData[$bincount] += &successful_submission($row);
         $cumulative_answers += &successful_submission($row);          $cumulative_answers += &successful_submission($row);
           $students{$row->[&Apache::loncoursedata::RT_student_id()]}++;
     }      }
     #      #
     # Pad the data to a full day      # Pad the data to a full day
Line 240  sub analyze_times { Line 242  sub analyze_times {
             $Xlabel[$bincount] = '';              $Xlabel[$bincount] = '';
         }          }
     }      }
     my $numstudents = scalar(@$students);      my $numstudents = scalar(keys(%students));
     #      #
     # Determine a nice maximum value to use      # Determine a nice maximum value to use
     foreach my $maximum (10,15,20,25,30,40,50,60,70,80,90,100,      foreach my $maximum (10,15,20,25,30,40,50,60,70,80,90,100,
Line 266  sub analyze_times { Line 268  sub analyze_times {
         '<th>'.('&nbsp;'x3).'</th>'.          '<th>'.('&nbsp;'x3).'</th>'.
         '<th valign="bottom">'.&mt('Correct Submissions').'</th>'.          '<th valign="bottom">'.&mt('Correct Submissions').'</th>'.
         '<th>'.('&nbsp;'x3).'</th>'.          '<th>'.('&nbsp;'x3).'</th>'.
         '<th valign="bottom">'.&mt('Cumulative Percent Correct').'</th>'.          '<th valign="bottom">'.&mt('Cumulative Correct of those attempting the problem').'</th>'.
           '<th>'.('&nbsp;'x3).'</th>'.
           '<th valign="bottom">'.&mt('Cumulative Percent Correct of those attempting the problem').'</th>'.
         '</tr>'.          '</tr>'.
         '</thead>'.          '</thead>'.
         '<tbody>';          '<tbody>';
Line 274  sub analyze_times { Line 278  sub analyze_times {
     my @CumulativeCorrectPercent;      my @CumulativeCorrectPercent;
     for (my $i=0;$i<=$#Ydata;$i++) {      for (my $i=0;$i<=$#Ydata;$i++) {
         $CumulativeCorrect[$i]=$CumulativeCorrect[-1]+$AnsData[$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) {          if ($Ydata[$i] != 0) {
             next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0);              next if (! defined($BinEnd[$i]) || $BinEnd[$i] == 0);
             $htmltable .=               $htmltable .= 
Line 290  sub analyze_times { Line 294  sub analyze_times {
                 '<td>&nbsp;</td>'.                  '<td>&nbsp;</td>'.
                 '<td align="right">'.$AnsData[$i].('&nbsp;'x3).'</td>'.                  '<td align="right">'.$AnsData[$i].('&nbsp;'x3).'</td>'.
                 '<td>&nbsp;</td>'.                  '<td>&nbsp;</td>'.
                   '<td align="right">'.$CumulativeCorrect[$i].'</td>'.
                   '<td>&nbsp;</td>'.
                 '<td align="right">'.$CumulativeCorrectPercent[$i].'</td>'.                  '<td align="right">'.$CumulativeCorrectPercent[$i].'</td>'.
                 '</tr>'.$/;                  '</tr>'.$/;
         }          }
Line 337  sub successful_submission { Line 343  sub successful_submission {
         return $row->[&Apache::loncoursedata::RT_awarded()];          return $row->[&Apache::loncoursedata::RT_awarded()];
     }      }
     return undef;      return undef;
     return 0;  
 }  }
   
 sub get_time_from_row {  sub get_time_from_row {

Removed from v.1.18  
changed lines
  Added in v.1.19


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>