1: #!/usr/local/bin/perl
2: #
3: #$Id: collection.pl,v 3.1 2008/03/24 16:01:47 boris Exp $
4: #
5: # Собрание сочинений
6: #
7: use Getopt::Std;
8:
9: $usage =
10: "Usage: collection.pl [-d] [-t table_file] [-o results] \n";
11:
12: require 'parameters.pl';
13: require 'subroutines.pl';
14:
15: die $usage unless getopts('t:o:d');
16:
17: $DEBUG=$opt_d;
18:
19: # Находим максимальный вопрос
20: $MAXQUEST=1;
21: for (my $i=1; $i<=$ROUNDS; $i++) {
22: if ($MAXQUEST<$MAXQUEST[$i]) {
23: $MAXQUEST=$MAXQUEST[$i];
24: }
25: }
26:
27:
28:
29: my %teams;
30: my @answers;
31: #
32: # Читаем старые результаты
33: #
34: if ($opt_t)
35: {
36: die "Cannot open $opt_t\n" unless open(INFILE,$opt_t);
37: readhash(\@answers);
38: close(INFILE);
39: }
40:
41: #
42: # Читаем ответы команд
43: #
44: for (my $i=1; $i<=$ROUNDS; $i++) {
45: foreach my $file ( @{$FILES[$i]} ) {
46: open (INFILE, $file);
47: readmail(\%teams);
48: collect_answers(\%teams,\@answers);
49: close (INFILE);
50: }
51: }
52:
53: #
54: # Пишем измененную таблицу в файл.
55: #
56: if ($opt_o)
57: {
58: die "Cannot open $opt_o\n" unless open(OUTFILE,">$opt_o");
59: select OUTFILE;
60: }
61: for ($i=1;$i<=$MAXQUEST;$i++)
62: {
63: print "\nВОПРОС $i:\n";
64: print "\nЗАСЧИТАНО:\n";
65: anondump(\%teams,\@answers,$i,'+');
66: print "\nНЕ ЗАСЧИТАНО:\n";
67: anondump(\%teams,\@answers,$i,'-');
68: print "\nНЕ ЯСНО:\n";
69: anondump(\%teams,\@answers,$i,'?');
70: }
71: print "***\n";
72:
73: #
74: # На всякий случай проверяем на наличие команд с дублирующимися номерами.
75: #
76: check_dup_numbers(\%teams);
77:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>