#!/usr/bin/perl # Created: 03/21/2013 10:08:14 PM # Last Edit: 2014 2月 16, 21時36分50秒 # $Id$ =head1 NAME print_grades.pl - Format classwork, homework, exams, final grades =cut use strict; use warnings; use IO::All; use YAML qw/LoadFile DumpFile/; use Cwd; =head1 SYNOPSIS print_grades.pl > grades.txt =cut my $session = 1; my $dirs = '/home/drbean/022'; (my $dir = getcwd) =~ s/^.*\/([^\/]*)$/$1/; use Grades; my $l = League->new( leagues => $dirs, id => $dir ); my $g = Grades->new({ league => $l }); my %m = map { $_->{id} => $_ } @{ $l->members }; my $approach = $l->approach; my $c = $g->classwork; =head1 DESCRIPTION A gradesheet =cut my $hw = $g->homeworkPercent; my %hw = map { $_ => $g->sprintround( $hw->{$_} ) } keys %$hw; my $classwork = $approach->new( league => $l )->totalPercent; my %classwork = map { $_ => $g->sprintround( $classwork->{$_} ) } keys %$classwork; my $ex = $g->examPercent; my %ex = map { $_ => $g->sprintround( $ex->{$_} ) } keys %$ex; my $grade = $g->grades; my $weights = $g->weights; my @grades = $l->id . " " . $l->name . " " . $l->field . " Grades\n" . "Classwork: " . $weights->{classwork} . "\n" . "Homework: " . $weights->{homework} . "\n" . "Exams: " . $weights->{exams} . "\n" . "Name\tId\t Classwork Homework\tExams\tGrade\n"; my @ids = sort keys %m; for my $id ( @ids ) { push @grades, "$m{$id}->{name}\t$id\t\t$classwork{$id}\t$hw{$id}\t$ex{$id}\t$grade->{$id}\n"; } print(@grades); =head1 AUTHOR Dr Bean C<< <drbean at cpan, then a dot, (.), and org> >> =head1 COPYRIGHT & LICENSE Copyright 2013 Dr Bean, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut # End of print_grades.pl # vim: set ts=8 sts=4 sw=4 noet: