version 1.93, 2011/05/26 18:02:22
|
version 1.94, 2011/05/27 19:32:10
|
Line 745 ENDMOVE
|
Line 745 ENDMOVE
|
} |
} |
} |
} |
} elsif ($code eq 'droplow') { |
} elsif ($code eq 'droplow') { |
($totalcorrect,@individual)=&drop(0,0,$value,@individual); |
($totalpossible,$totalcorrect,@individual)=&drop(0,0,$value,@individual); |
} elsif ($code eq 'drophigh') { |
} elsif ($code eq 'drophigh') { |
($totalcorrect,@individual)=&drop(1,0,$value,@individual); |
($totalpossible,$totalcorrect,@individual)=&drop(1,0,$value,@individual); |
} elsif ($code eq 'droplowperc') { |
} elsif ($code eq 'droplowperc') { |
($totalcorrect,@individual)=&drop(0,1,$value,@individual); |
($totalpossible,$totalcorrect,@individual)=&drop(0,1,$value,@individual); |
} elsif ($code eq 'drophighperc') { |
} elsif ($code eq 'drophighperc') { |
($totalcorrect,@individual)=&drop(1,1,$value,@individual); |
($totalpossible,$totalcorrect,@individual)=&drop(1,1,$value,@individual); |
} |
} |
if ($output) { $r->print('</li>'); } |
if ($output) { $r->print('</li>'); } |
} |
} |
|
# Re-adjust total points if force total |
|
if ($categories{$id.'_totaltype'} eq 'typein') { |
|
$totalpossible=1.*$categories{$id.'_total'}; |
|
} |
|
|
if ($output) { |
if ($output) { |
$r->print('</ul>'); |
$r->print('</ul>'); |
if ($cangrade) { $r->print('<br />'.&new_calc_rule_form($id)); } |
if ($cangrade) { $r->print('<br />'.&new_calc_rule_form($id)); } |
Line 803 ENDMOVE
|
Line 808 ENDMOVE
|
|
|
sub drop { |
sub drop { |
my ($high,$percent,$n,@individual)=@_; |
my ($high,$percent,$n,@individual)=@_; |
|
# Sort assignments by points or percent |
my @newindividual=sort { |
my @newindividual=sort { |
my ($pa,$ca)=split(/\:/,$a); |
my ($pa,$ca)=split(/\:/,$a); |
my ($pb,$cb)=split(/\:/,$b); |
my ($pb,$cb)=split(/\:/,$b); |
Line 816 sub drop {
|
Line 822 sub drop {
|
$ca<=>$cb; |
$ca<=>$cb; |
} |
} |
} @individual; |
} @individual; |
|
# Drop the ones we don't want |
if ($#newindividual>=$n) { |
if ($#newindividual>=$n) { |
if ($high) { |
if ($high) { |
splice(@newindividual,$#newindividual+1-$n,$n); |
splice(@newindividual,$#newindividual+1-$n,$n); |
Line 825 sub drop {
|
Line 832 sub drop {
|
} else { |
} else { |
@newindividual=(); |
@newindividual=(); |
} |
} |
|
# Re-calculate how many points possible and achieved |
|
my $newpossible=0; |
my $newcorrect=0; |
my $newcorrect=0; |
for my $score (@newindividual) { |
for my $score (@newindividual) { |
$newcorrect+=(split(/\:/,$score))[1]; |
my ($thispossible,$thiscorrect)=(split(/\:/,$score)); |
|
$newpossible+=$thispossible; |
|
$newcorrect+=$thiscorrect; |
} |
} |
return ($newcorrect,@newindividual); |
return ($newpossible,$newcorrect,@newindividual); |
} |
} |
# |
# |
# Bottom line with grades |
# Bottom line with grades |