[LON-CAPA-cvs] cvs: loncom /homework grades.pm

albertel lon-capa-cvs-allow@mail.lon-capa.org
Fri, 16 Nov 2007 08:55:03 -0000


albertel		Fri Nov 16 03:55:03 2007 EDT

  Modified files:              
    /loncom/homework	grades.pm 
  Log:
  - trying to keep all scnatron code in one sectio
  
  
Index: loncom/homework/grades.pm
diff -u loncom/homework/grades.pm:1.494 loncom/homework/grades.pm:1.495
--- loncom/homework/grades.pm:1.494	Fri Nov 16 03:52:15 2007
+++ loncom/homework/grades.pm	Fri Nov 16 03:55:02 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # The LON-CAPA Grading handler
 #
-# $Id: grades.pm,v 1.494 2007/11/16 08:52:15 albertel Exp $
+# $Id: grades.pm,v 1.495 2007/11/16 08:55:02 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -48,88 +48,6 @@
 
 
 my %perm=();
-my %bubble_lines_per_response = ();     # no. bubble lines for each response.
-                                   # index is "symb.part_id"
-
-my %first_bubble_line = ();	# First bubble line no. for each bubble.
-
-# Save and restore the bubble lines array to the form env.
-
-
-sub save_bubble_lines {
-    foreach my $line (keys(%bubble_lines_per_response)) {
-	$env{"form.scantron.bubblelines.$line"}  = $bubble_lines_per_response{$line};
-	$env{"form.scantron.first_bubble_line.$line"} =
-	    $first_bubble_line{$line};
-    }
-}
-
-
-sub restore_bubble_lines {
-    my $line = 0;
-    %bubble_lines_per_response = ();
-    while ($env{"form.scantron.bubblelines.$line"}) {
-	my $value = $env{"form.scantron.bubblelines.$line"};
-	$bubble_lines_per_response{$line} = $value;
-	$first_bubble_line{$line}  =
-	    $env{"form.scantron.first_bubble_line.$line"};
-	$line++;
-    }
-
-}
-
-#  Given the parsed scanline, get the response for 
-#  'answer' number n:
-
-sub get_response_bubbles {
-    my ($parsed_line, $response)  = @_;
-
-
-    my $bubble_line = $first_bubble_line{$response-1} +1;
-    my $bubble_lines= $bubble_lines_per_response{$response-1};
-    
-    my $selected = "";
-
-    for (my $bline = 0; $bline < $bubble_lines; $bline++) {
-	$selected .= $$parsed_line{"scantron.$bubble_line.answer"}.":";
-	$bubble_line++;
-    }
-    return $selected;
-}
-
-
-# ----- These first few routines are general use routines.----
-
-# Return the number of occurences of a pattern in a string.
-
-sub occurence_count {
-    my ($string, $pattern) = @_;
-
-    my @matches = ($string =~ /$pattern/g);
-
-    return scalar(@matches);
-}
-
-
-# Take a string known to have digits and convert all the
-# digits into letters in the range J,A..I.
-
-sub digits_to_letters {
-    my ($input) = @_;
-
-    my @alphabet = ('J', 'A'..'I');
-
-    my @input    = split(//, $input);
-    my $output ='';
-    for (my $i = 0; $i < scalar(@input); $i++) {
-	if ($input[$i] =~ /\d/) {
-	    $output .= $alphabet[$input[$i]];
-	} else {
-	    $output .= $input[$i];
-	}
-    }
-    return $output;
-}
 
 #
 # --- Retrieve the parts from the metadata file.---
@@ -4757,6 +4675,54 @@
     return $result;
 }
 
+my %bubble_lines_per_response;     # no. bubble lines for each response.
+                                   # index is "symb.part_id"
+
+my %first_bubble_line;             # First bubble line no. for each bubble.
+
+# Save and restore the bubble lines array to the form env.
+
+
+sub save_bubble_lines {
+    foreach my $line (keys(%bubble_lines_per_response)) {
+	$env{"form.scantron.bubblelines.$line"}  = $bubble_lines_per_response{$line};
+	$env{"form.scantron.first_bubble_line.$line"} =
+	    $first_bubble_line{$line};
+    }
+}
+
+
+sub restore_bubble_lines {
+    my $line = 0;
+    %bubble_lines_per_response = ();
+    while ($env{"form.scantron.bubblelines.$line"}) {
+	my $value = $env{"form.scantron.bubblelines.$line"};
+	$bubble_lines_per_response{$line} = $value;
+	$first_bubble_line{$line}  =
+	    $env{"form.scantron.first_bubble_line.$line"};
+	$line++;
+    }
+
+}
+
+#  Given the parsed scanline, get the response for 
+#  'answer' number n:
+
+sub get_response_bubbles {
+    my ($parsed_line, $response)  = @_;
+
+
+    my $bubble_line = $first_bubble_line{$response-1} +1;
+    my $bubble_lines= $bubble_lines_per_response{$response-1};
+    
+    my $selected = "";
+
+    for (my $bline = 0; $bline < $bubble_lines; $bline++) {
+	$selected .= $$parsed_line{"scantron.$bubble_line.answer"}.":";
+	$bubble_line++;
+    }
+    return $selected;
+}
 
 =pod 
 
@@ -5301,6 +5267,39 @@
     return $scan_data->{$filename.'_'.$key};
 }
 
+# ----- These first few routines are general use routines.----
+
+# Return the number of occurences of a pattern in a string.
+
+sub occurence_count {
+    my ($string, $pattern) = @_;
+
+    my @matches = ($string =~ /$pattern/g);
+
+    return scalar(@matches);
+}
+
+
+# Take a string known to have digits and convert all the
+# digits into letters in the range J,A..I.
+
+sub digits_to_letters {
+    my ($input) = @_;
+
+    my @alphabet = ('J', 'A'..'I');
+
+    my @input    = split(//, $input);
+    my $output ='';
+    for (my $i = 0; $i < scalar(@input); $i++) {
+	if ($input[$i] =~ /\d/) {
+	    $output .= $alphabet[$input[$i]];
+	} else {
+	    $output .= $input[$i];
+	}
+    }
+    return $output;
+}
+
 =pod 
 
 =item scantron_parse_scanline