#!/usr/local/bin/perl require "/w/class.01/cs/cs131/cs131ta/risc/grades/column_names"; $seas=shift @ARGV; $column=convert_col (shift @ARGV); $val=shift @ARGV; #actual grade unless ($seas && (defined ($val) && $val >=0) && $column>0) { print "Syntax is editgrade SEAS column_number numerical_grade column name can be used inplace of number (hw1pa, hw2wa, mid, ... values parsed: seas=$seas, column=$column, grade=$val\n"; exit; } &readgrades; foreach $student (@grades) { @sgrades=split (/,/, $student, -1); if ($sgrades[$columns{seas}] =~ m:^\b$seas\b:i) { #found student $found=1; if ($sgrades[$column] ne "" && $sgrades[$column] ne $val) {#already have grade print "$seas already had $sgrades[$column], now its $val\n"; } if ($sgrades[$columns{fname}] eq '' || $sgrades[$columns{lname}] eq '' || $sgrades[$columns{lecture}] eq '') { print "Missing some vals for $seas\n"; $missing=1; } if ($val =~ m:([+-])(\d+):) { $sgrades[$column]+=$val if ($1 eq '+'); $sgrades[$column]+=$val if ($1 eq '-'); } else {$sgrades[$column]=$val;} $student=join (",", @sgrades); } } unless ($found) {print "couldn't find them\n";exit;} &writegrades; if ($missing==1) { print "Some non-critical (name, lecture) values are missing, edit grades.csv if info is available\n"; }