100 ! GRDSPC -- GRADE SPECTRUM ANALYSIS ! REQUIRES CLASS LIST AND SUBJECT FILES 120 ! CREATES A LARGE VC MATRIX FOR COUNTING ! PURPOSES : NAME IS GRDANL.TMP : ABOUT 40 BLOCKS 140 ! 06-JAN-74 J. WARDEN WABASH COLLEGE 160 PRINT"ANALYSIS OF GRADES":PRINT 180 PRINT"HEADER LINE"; : INPUT LINE H8$ 200 H8$=LEFT(H8$,LEN(H8$)-2%) 220 T%=0% : T9%=0% ! STU REG, STU NOT REG 240 A3$="AA" 260 S9$="####" 280 S5$=SPACE$(5) 300 ! THE GRADES TO BE USED: 320 DIM G$(15)=2% 340 READ G$(I%) FOR I%=0% TO 13% 360 DATA " ","F ","D ","C ","B ","A ","P ","CR","S ","W ","WF","WP" 380 DATA "CO","IN" 400 ! OPEN FILES AND ZERO COUNT FILE 420 OPEN "DK1:GRDANL.TMP" AS FILE 5% 440 INPUT"HAS MASTER FILE BEEN ZEROED (Y/N)";Y$ : IF ASCII(Y$)=89% THEN 520 460 PRINT:PRINT"NOW ZEROING MASTER FILE" 480 DIM #5,D%(600,14) 500 D%(600%,14%)=0% : MAT D%=ZER 510 D%(I%,0%)=0% FOR I%=0% TO 600% : D%(0%,I%)=0% FOR I%=1% TO 14% 520 ON ERROR GO TO 1620 540 INPUT"CLASS LIST FILE";F2$ 560 OPEN F2$ FOR INPUT AS FILE 1% 580 FIELD #1%,127%*C% AS Z$, 127% AS C$(C%) FOR C%=0% TO 3% 600 INPUT"SUBJECT FILE";S4$ 620 OPEN S4$ FOR INPUT AS FILE 2% 640 FIELD #2%,127%*A% AS Z$,127% AS A$(A%) FOR A%=0% TO 3% 660 input"OUTPUT FILE";D9$ 680 open D9$ for output as file 3 700 INPUT"WANT TO START AT PRINTOUT (Y/N)";Y$ : IF ASCII(Y$)=89% THEN 1660 ELSE GO TO 1160 720 ! READ SUBJECTS AND PRINT RESULTS 740 ON ERROR GO TO 1080 760 IF M%<=50% THEN 820 780 PRINT#3,CHR$(12) 800 GOSUB 1460 820 IF A%<3% THEN A%=A%+1% ELSE A%=0% : GET #2% 840 IF ASCII(A$(A%))=92% THEN 1080 860 A2$=LEFT(A$(A%),6%) 880 IF A3$<>LEFT(A2$,2%) THEN PRINT#3 : M%=M%+1% 900 A3$=LEFT(A2$,2%) 920 T$=MID(A$(A%),85,3)+MID(A$(A%),3,4)+" "+MID(A$(A%),20,11) 940 A1$=MID(A$(A%),8,3) 960 L%=VAL(A1$) : IF L%<=0% THEN 760 980 M%=M%+1% 1000 PRINT #3,T$; 1020 PRINT #3,USING S9$,D%(L%,G%); FOR G%=0% TO 13% 1040 PRINT #3 1060 GO TO 760 1080 PRINT#3 FOR J%=1% TO 3% 1090 PRINT #3%," ** TOTALS ** "; 1095 PRINT #3%,USING S9$,D%(0%,G%); FOR G%=0% TO 13% 1097 PRINT #3% : PRINT #3% 1098 IF T%=0% THEN 1700 1100 PRINT#3," ";T%;"REGISTERED" : PRINT#3," ";T9%;"(PLUS THOSE NOT IN FILE) NOT REGISTERED" 1120 GO TO 1700 1140 ! COUNTING ROUTINE 1160 IF C%<3% THEN C%=C%+1% ELSE C%=0% : GET #1% 1180 IF ASCII(C$(C%))=92% THEN 1660 1200 J%=(INSTR(40%,C$(C%)," ")-35%)/7% ! NO. COURSES 1220 IF J%=0% THEN T9%=T9%+1% ELSE T%=T%+1% 1240 FOR I%=1% TO J% 1260 K%=41%+(I%-1%)*7% 1280 L%=VAL(MID(C$(C%),K%,3)) 1300 G1$=MID(C$(C%),K%+5%,2%) 1310 FOR G%=6% TO 13% 1315 IF G$(G%)=G1$ THEN 1380 1320 NEXT G% 1325 G2$=LEFT(G1$,1%) 1330 FOR G%=0% TO 5% 1335 IF LEFT(G$(G%),1%)=G2$ THEN 1380 1340 NEXT G% 1360 G%=0% 1380 D%(L%,G%)=D%(L%,G%)+1% 1390 D%(0%,G%)=D%(0%,G%)+1% 1400 NEXT I% 1420 GO TO 1160 1440 ! PRINTING SUBROUTINE 1460 PRINT#3 FOR Z3=1 TO 2 1480 PRINT #3,H8$+" "+DATE$(0) 1500 PRINT#3 1520 PRINT #3,"COURSE PROFESSOR "; 1540 PRINT #3,USING" \\ ",G$(X%); FOR X%=0% TO 13% 1560 PRINT #3:PRINT #3 1580 M%=0% 1600 RETURN 1620 IF ERR<>11% THEN ON ERROR GO TO 0 1640 RESUME 1660 1660 GOSUB 1460 1680 GO TO 740 1700 print#3,chr$(26%) 1720 CLOSE 1,2,3,5 1740 END