100 ! CLST3C -- PRODUCES MASTER SET OF CLASS LISTS ! FROM KEY FILE PRODUCED BY 'CLST2C', CLASS LIST, ! AND SUBJECT FILES. 120 ! 28-AUG-73 J. WARDEN WABASH COLLEGE 140 DIM S%(300) 160 H0$(0%)=" " : H0$(1%)="0.5" : H0$(2%)="1.0" : H0$(3%)="1.5" 180 DIM V$(64) 200 Z5$=SPACE$(5%) 220 READ F3$,F4$ 240 DATA DK0:CLS74,DK0:SUBS74 260 ON ERROR GO TO 600 280 PRINT"MASTER CLASS LIST" 300 PRINT"WANT STANDARD FILES ";F3$;" AND ";F4$;" (Y/N)"; : INPUT Y$ : IF ASCII(Y$)=89% THEN 360 320 INPUT" CLASS LIST FILE (DEV:FILE)";F3$ 340 INPUT" SUBJECT FILE (DEV:FILE)";F4$ 360 OPEN F3$ FOR INPUT AS FILE 3% : FIELD #3%,127%*C% AS Z$, 127% AS C$(C%) FOR C%=0% TO 3% 380 OPEN F4$ FOR INPUT AS FILE 4% 400 FIELD #4%,127%*R% AS Z$, 127% AS A$(R%) FOR R%=0% TO 3% 420 I%=1% 440 IF R%<3% THEN R%=R%+1% ELSE R%=0% : GET #4% 460 IF ASCII(A$(R%))=92% THEN 500 480 S%(VAL(MID(A$(R%),8%,3%)))=I% : I%=I%+1% : GO TO 440 500 S%(0%)=I%-1% ! ## SUBJ ON FILE 520 INPUT "KEY FILE (DEV:FILE)";F1$ : OPEN F1$ FOR INPUT AS FILE 1% 540 FIELD #1%, 8%*V% AS Z$, 8% AS V$(V%) FOR V%=0% TO 62% 560 INPUT"OUTPUT TO (DEV:FILE)";F2$ : OPEN F2$ FOR OUTPUT AS FILE 2% 570 INPUT"START AT (SUBJ CODE)";T1% : IF T1%=0% THEN 580 ELSE T0%=T1% 572 S1%=S%(T1%) : R1%=(S1%+3%)/4% : R%=S1%-4%*R1%+3% : GET #4%, RECORD R1% 574 PRINT"SUBJECT #";T1%;" IS ";LEFT(A$(R%),6%) 580 GO TO 880 600 IF ERR<>5% THEN ON ERROR GO TO 0 620 IF ERL=360% THEN PRINT"CAN'T FIND ";F3$ : INPUT"CLASS LIST";F3$ : RESUME 360 640 IF ERL=380% THEN PRINT"CAN'T FIND ";F4$ : INPUT"SUBJECT FILE";F4$ : RESUME 380 660 IF ERL=520% THEN PRINT"CAN'T FIND ";F1$ : RESUME 520 680 GO TO 1580 700 ! HEADER SUBROUTINE 720 PRINT #2%,Z5$+"CLASS LIST "+DATE$(0) 740 PRINT #2%," " 760 PRINT #2%,Z5$+T$ 780 PRINT #2%, CHR$(10%) 800 PRINT #2%,Z5$+Z5$+"NAME"+SPACE$(23%)+"CC"; 820 PRINT #2%," C/NC GRD EQ.GRD REMARKS" 840 PRINT #2%," " 860 RETURN 880 ON ERROR GO TO 1500 900 IF V%<62% THEN V%=V%+1% ELSE V%=0% : GET #1% 920 IF LEFT(V$(V%),2%)="\\" THEN 1540 940 S1%=S%(CVT$%(LEFT(V$(V%),2%))) ! SUBJ CODE 950 IF T0%=0% THEN 960 952 IF S1%=S%(T1%) THEN T0%=0% ELSE 900 960 IF S1%=S0% THEN 1200 980 GOSUB 1380 : S0%=S1% 1000 R1%=(S1%+3%)/4% : R%=S1%-4%*R1%+3% : GET #4%, RECORD R1% 1020 T$=MID(A$(R%),36,16)+" "+MID(A$(R%),3,3) 1040 T5$=MID(A$(R%),6,1) 1060 IF T5$>" " THEN T$=T$+" ["+T5$+"] " ELSE T$=T$+SPACE$(6) 1080 T$=T$+MID(A$(R%),12,2)+":"+MID(A$(R%),14,2) 1100 T$=T$+" "+MID(A$(R%),16,3)+" "+MID(A$(R%),20,16) 1120 GOSUB 720 1140 ! PRINT LIST OF STUDENTS 1160 K%=0% ! NO. ENTRIES / PAGE 1180 V5%=VAL(A1$) 1200 I5%=CVT$%(MID(V$(V%),3%,2%)) ! STUDENT ## 1220 C1%=(I5%+3%)/4% : C%=I5%-4%*C1%+3% : GET #3%, RECORD C1% : PRINT #2%,Z5$+MID(C$(C%),7%,2%)+" "; MID(C$(C%),13%,26%)+" "; 1240 H%=ASCII(MID(V$(V%),5%,1%))-48% : IF H%<0% OR H%>3% THEN H%=0% 1250 G1$=MID(V$(V%),7%,2%) : IF G1$="IN" THEN G1$="INC" ELSE IF G1$="CO" THEN G1$="CON" 1260 PRINT #2%,H0$(H%);" "; 1270 IF MID(V$(V%),6%,1%)="C" THEN C1$="C/NC" ELSE C1$=" " 1280 PRINT #2%,C1$;" ";G1$ 1300 PRINT #2% : K%=K%+1% : L%=L%+1% 1320 IF K%<=25% THEN 900 1340 PRINT #2%,CHR$(12%) 1360 K%=0% : GOSUB 720 : GO TO 900 1380 IF S0%=0% THEN L%=0% : RETURN 1400 PRINT #2% 1420 PRINT #2%," ===> ";L%;" TOTAL" 1440 PRINT #2%,CHR$(12%) 1460 L%=0% 1480 RETURN 1500 IF ERR<>11% THEN ON ERROR GO TO 0 1520 RESUME 1540 1540 PRINT #2%,CHR$(26%) 1560 CLOSE 1%,2%,3%,4% 1580 END