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

1.2       albertel    1: /* scantron for surveys control program
                      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: #include <stdio.h>
                     26: #include "Capa/capaCommon.h"
                     27: #include "bubbler.h"
                     28: #include <ctype.h>
                     29: 
                     30: #ifdef   F_DBUG
                     31: extern FILE *dfp; 
                     32: #endif
                     33: 
                     34: int main()
                     35: {
                     36:   T_entry grade;
                     37:   FILE * inputFile, * outputFile;
                     38:   int i=0,setnumber,score,section,setId,done=0,numQuestions;
                     39:   char class[10],set[3],name[MAX_NAME_CHAR+1],buf,buffmt[128],
                     40:       studentnumber[MAX_STUDENT_NUMBER+1],filename[128];
                     41:   int q=0,r=0,answer[MAXQUEST][11];
                     42:   Question questions[MAXQUEST];
                     43:   
                     44:   printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
                     45:   printf("Covert form Bubbler output to survey results ");
                     46:   printf("Version 0.1.00\n");
                     47:   printf("Please enter the Set Id number.");
                     48:   scanf("%d",&setId);
                     49:   sprintf(filename,"bubbler.output.%d",setId);
                     50:   inputFile=fopen(filename,"r");
                     51: 
                     52:   if (inputFile==NULL)
                     53:     {
                     54:       fprintf(stderr,"%s not found\n",filename);
                     55:       exit(-1);
                     56:     }
                     57: 
                     58:   fscanf(inputFile,"%s %s",class,set);
                     59:   printf("%s %s\n",class,set);
                     60:   setnumber=atoi(set);
                     61: 
                     62:   i=0;
                     63:   fscanf(inputFile,"%c",&buf);
                     64:   while(!done)
                     65:     {
                     66:       buf=fgetc(inputFile);
                     67:       if (buf!='\n')
                     68: 	{
                     69: 	  questions[i].type=buf;
                     70: 	  buf=fgetc(inputFile);
                     71: 	  questions[i].points=questions[i].leafs=(int)(buf-'0');
                     72: 	  i++;
                     73: 	}
                     74:       else
                     75: 	{
                     76: 	  done=1;
                     77: 	}
                     78:     }
                     79:   
                     80:   numQuestions=i;
                     81: 
                     82:   for(q=0;q<MAXQUEST;q++)
                     83:     for(r=0;r<11;r++)
                     84:       answer[q][r]=0;
                     85: 
                     86:   printf("Processing");
                     87:   while(fscanf(inputFile,"%9c",studentnumber)!=EOF)
                     88:     {
                     89:       printf(".");
                     90:       fflush(stdout);
                     91:       fscanf(inputFile,"%32c",name);
                     92:       sprintf(buffmt,"%%%dc",numQuestions);
                     93:       fscanf(inputFile,buffmt,grade.answers);
                     94:       fscanf(inputFile,"%d",&score);
                     95:       fscanf(inputFile,"%d",&section);
                     96:       buf='\0';
                     97:       while(buf!='\n')
                     98: 	{
                     99: 	  buf=fgetc(inputFile);
                    100: 	}
                    101: #ifdef DEBUG
                    102:       printf("%d %d\n",numQuestions,strlen(grade.answers));
                    103: #endif /*DEBUG*/
                    104:       for(i=0;i<numQuestions;i++)
                    105: 	{
                    106: 	  switch(questions[i].type)
                    107: 	    {
                    108: 	    case 'a':
                    109: 	    case 'f':
                    110: 	    case 'g':
                    111: 	    case 'b':
                    112: 	    case 'c':
                    113: 	    case 'e':
                    114: 	    case 'd':
                    115: 	      if (isdigit(grade.answers[i]))
                    116: 		answer[i][grade.answers[i]-'0']++;
                    117: 	      else if(isspace(grade.answers[i]))
                    118: 		{
                    119: 		  answer[i][10]++;
                    120: 		}
                    121: 	      break;
                    122: 	    default:
                    123: 	      printf("Unknown question type\n");
                    124: 	      break;
                    125: 	    }
                    126: 	}
                    127:       grade.answers[i]='\0';
                    128: #ifdef DEBUG
                    129:       printf("%s\n",studentnumber);
                    130: #endif /*DEBUG*/
                    131:     }
                    132: 
                    133:   sprintf(filename,"survey.%d",setId);
                    134:   outputFile=fopen(filename,"w");
                    135:   if (outputFile==NULL)
                    136:     {
                    137:       fprintf(stderr,"%s not found\n",filename);
                    138:       exit(-1);
                    139:     }
                    140: 
                    141:   fprintf(outputFile,"Survey results for class: %s\n\n",class);
                    142:   for(q=0;q<numQuestions;q++)
                    143:     {
                    144:       fprintf(outputFile,"Question: %d\n",q+1);
                    145:       fprintf(outputFile,"  0   1   2   3   4   5   6   7   8   9   S\n");
                    146:       for(r=0;r<11;r++)
                    147: 	{
                    148: 	  fprintf(outputFile,"%3d ",answer[q][r]);
                    149: 	}
                    150:       fprintf(outputFile,"\n");
                    151:     }
                    152:   printf("\nProcessing completed. Look in survey.%d for results.\n",
                    153: 	 setId);
                    154:   return 0;
                    155: }

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