version 1.1, 2004/12/08 20:48:37
|
version 1.3, 2005/01/24 03:16:35
|
Line 8
|
Line 8
|
|
|
use Getopt::Std; |
use Getopt::Std; |
|
|
$usage = 'createtable.pl $Revision$, $Date$'. "\n". |
$usage = 'createtable2.pl $Revision$, $Date$'. "\n". |
"Usage: createtable.pl [-d] [-s] [-t answers_file] [-m mail_file] [-o results] \n"; |
"Usage: createtable2.pl [-d] [-s] [-T prelim_answers] [-M prelim_mail] [-t answers_file] [-m mail_file] [-o results] \n"; |
|
|
require 'parameters.pl'; |
require 'parameters.pl'; |
require 'subroutines.pl'; |
require 'subroutines.pl'; |
|
|
die $usage unless getopts('t:m:o:ds'); |
die $usage unless getopts('t:T:m:M:o:ds'); |
|
|
$DEBUG=$opt_d; |
$DEBUG=$opt_d; |
$SHORT=$opt_s; |
$SHORT=$opt_s; |
Line 22 $SHORT=$opt_s;
|
Line 22 $SHORT=$opt_s;
|
my %teams; |
my %teams; |
my @answers; |
my @answers; |
my @ratings; |
my @ratings; |
|
|
|
# |
|
# ПРЕДВАРИТЕЛЬНЫЕ РЕЗУЛЬТАТЫ |
|
# |
|
|
|
# Читаем старые результаты |
|
# |
|
if ($opt_T) |
|
{ |
|
die "Cannot open $opt_T\n" unless open(INFILE,$opt_T); |
|
readhash(\@answers); |
|
close(INFILE); |
|
} |
|
|
|
# |
|
# Читаем ответы команд |
|
# |
|
if ($opt_M) |
|
{ |
|
die "Cannot open $opt_M\n" unless open(INFILE,$opt_M) |
|
} |
|
else |
|
{ |
|
*INFILE=*STDIN; |
|
} |
|
readmail(\%teams); |
|
close(INFILE); |
|
# |
|
# Чистим хэш %answers |
|
# |
|
collect_answers(\%teams,\@answers); |
|
|
|
# |
|
# Вычисляем число ответов и рейтинги команд |
|
# |
|
find_scores(\%teams,\@answers,\@ratings); |
|
|
|
|
|
# |
|
# ОКОНЧАТЕЛЬНЫЕ РЕЗУЛЬТАТЫ |
|
# |
|
|
# |
# |
# Читаем старые результаты |
# Читаем старые результаты |
# |
# |
Line 56 rate_questions(\%teams,\@answers,\@ratin
|
Line 98 rate_questions(\%teams,\@answers,\@ratin
|
# |
# |
# Вычисляем число ответов и рейтинги команд |
# Вычисляем число ответов и рейтинги команд |
# |
# |
find_scores(\%teams,\@answers,\@ratings); |
find_scores(\%teams,\@answers,\@ratings,0.01); |
|
|
|
|
# |
# |
# Ну а теперь печатаем саму таблицу... |
# Ну а теперь печатаем саму таблицу... |
# |
# |
Line 77 for ($i=1;$i<=$MAXQUEST;$i++)
|
Line 121 for ($i=1;$i<=$MAXQUEST;$i++)
|
printf "%3d",$i; |
printf "%3d",$i; |
} |
} |
} |
} |
printf "%3s","О"; |
printf "%6s","О"; |
printf "%4s","Р"; |
printf "%4s","Р"; |
printf " КОМАНДА"; |
printf " КОМАНДА"; |
print "\n"; |
print "\n"; |
Line 104 foreach $team (sort
|
Line 148 foreach $team (sort
|
printf "%3s", $score; |
printf "%3s", $score; |
} |
} |
} |
} |
printf "%3s",$teams{$team}->{score}; |
printf "%6.2f",$teams{$team}->{score}; |
printf "%4s",$teams{$team}->{rating}; |
printf "%4s",$teams{$team}->{rating}; |
print " $team"; |
print " $team"; |
print "\n"; |
print "\n"; |