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>