Annotation of capa/capa51/Historic/student_stats.c, revision 1.3

1.2       albertel    1: /* some statistics generation
                      2:    Copyright (C) 1992-2000 Michigan State University
                      3: 
                      4:    The CAPA system is free software; you can redistribute it and/or
1.3     ! albertel    5:    modify it under the terms of the GNU General Public License as
1.2       albertel    6:    published by the Free Software Foundation; either version 2 of the
                      7:    License, or (at your option) any later version.
                      8: 
                      9:    The CAPA system is distributed in the hope that it will be useful,
                     10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
                     11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1.3     ! albertel   12:    General Public License for more details.
1.2       albertel   13: 
1.3     ! albertel   14:    You should have received a copy of the GNU General Public
1.2       albertel   15:    License along with the CAPA system; see the file COPYING.  If not,
                     16:    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
                     17:    Boston, MA 02111-1307, USA.
                     18: 
                     19:    As a special exception, you have permission to link this program
                     20:    with the TtH/TtM library and distribute executables, as long as you
                     21:    follow the requirements of the GNU GPL in regard to all of the
                     22:    software in the executable aside from TtH/TtM.
                     23: */
                     24: 
1.1       albertel   25: #ifdef NeXT
                     26: #include <stdlib.h>
                     27: #include <bsd/curses.h>
                     28: #else
                     29: #include <malloc.h>
                     30: double atof();
                     31: #include <curses.h>
                     32: #endif
                     33: 
                     34: #include <stdio.h>
                     35: #include <ctype.h>
                     36: #include <sys/types.h>
                     37: #include <signal.h>
                     38: #include <math.h>
                     39: #include <string.h>
                     40: 
                     41: #include "capaCommon.h"
                     42: 
                     43: 
                     44: main (int argc, char  **argv) 
                     45: {
                     46: 
                     47:   T_student *head_p, *c_p;
                     48:   T_header   a_header;
                     49:   T_entry    a_entry;
                     50:   int        student_cnt, set_idx;
                     51:   int        sec, set_scores, set_valids;
                     52:   char      *answers_p, wgt[128], pcr[128];
                     53:   int        MaxSec;
                     54:   int        MaxSet=9;
                     55:   int        total_scores, total_set_valids;
                     56:   int        count;
                     57:   int        *cnt_arry;
                     58:    int        inputNotOK=1;
                     59:    char       path[FILE_NAME_LENGTH];
                     60:    char       filename[FILE_NAME_LENGTH];
                     61:    /* char       classlist[FILE_NAME_LENGTH];
                     62:    char       studentclass[FILE_NAME_LENGTH]; */
                     63:    char       *classlist;
                     64:    char       *studentclass;
                     65:    char       *progname;
                     66: 
                     67:    if(argc>1) {
                     68:      sec = atol(argv[2]);
                     69:    } else {
                     70:      sec =1;
                     71:    }
                     72: 
                     73:    while ( inputNotOK ) {
                     74:        puts("Enter the ABSOLUTE path of class");
                     75:        scanf("%s", path);
                     76:        if( access(path, F_OK) == -1 ) {
                     77:        } else {
                     78:            sprintf(filename,"%s/records",path);
                     79:            if( access(filename, F_OK) == -1 ) {
                     80:             puts("There isn't a records dir in this CLASS directory");
                     81:             puts("Please Specify another calss");
                     82:           } else {
                     83:             inputNotOK = 0;
                     84:           }
                     85:        }
                     86:     }
                     87: 
                     88:     chdir(path);
                     89: 
                     90: 
                     91:    for (sec=1;sec<30; sec++){
                     92:        if ((count=capa_get_section(&head_p,sec))>0)
                     93:           MaxSec=sec;
                     94:    }
                     95: 
                     96:    for (sec=1;sec<MaxSec;sec++){
                     97:        student_cnt = capa_sorted_section(&head_p, sec, 2);
                     98:        printf("Section #%d                          Set     ",sec); 
                     99:        for (set_idx=1; set_idx<MaxSet; set_idx++) {
                    100:            printf(" %2d ",set_idx);
                    101:        }
                    102:        printf("  Total\n");
                    103:        for (c_p=head_p ; c_p ; c_p=c_p->s_next){
                    104:            total_scores=0;
                    105:            total_set_valids=0;
                    106:            printf("%s  (%s)",c_p->s_nm,c_p->s_sn);
                    107:            for (set_idx=1; set_idx<MaxSet; set_idx++) {
                    108:                set_scores = capa_get_score(c_p->s_sn,set_idx,&set_valids,&answers_p);
                    109:                if (set_scores == -1) {   /* never login to do assignments */
                    110:                   printf("   -",set_valids);
                    111:                   total_set_valids=total_set_valids+set_valids;
                    112:                } else {
                    113:                   printf("  %2d",set_scores,set_valids);
                    114:                   total_scores=total_scores+set_scores;
                    115:                   total_set_valids=total_set_valids+set_valids;
                    116:                  }
                    117:                capa_mfree(answers_p);
                    118:            }
                    119:            printf("  %3d/%3d \n",total_scores,total_set_valids);
                    120:        }
                    121: 
                    122:        printf("Total students = %d\n\n\n",student_cnt);
                    123:        free_students(head_p);
                    124:    }
                    125: 
                    126: }
                    127: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>