100 ! SCHEDU -- STUDENT CLASS SCHEDULES ! USING COURSE CREDITS. 110 ! INPUT FILES: ! (1) PROFESSORS [PROF15] ! (2) SUBJECT FILE ! (3) CLASS LIST FILE 120 ! OUTPUT EITHER STANDARD PAGES (REGISTRAR) ! OR SPECIAL MAILING FORMS (STUDENTS) 140 ! 04-DEC-73 J. WARDEN WABASH COLLEGE 160 PRINT"STUDENT CLASS SCHEDULES V02A" 170 INPUT"SPECIAL FORMS OR PAGES (S/P)";M$ : M9%=ASCII(M$)-83% : IF M9%*(M9%+3%) THEN 170 175 IF M9% THEN M8%=9% ELSE M8%=15% 180 S6$=" " : P9%=1% 200 U$="COURSES TWD GRAD:###.# TOTAL:###.#" 220 W$="\ \ \ \ \\ ###.# \ \ \ \ \ \" 240 X$="DEPARTMENT ## SCT CC C/NC TIME DAYS" 260 Y$="---------- -- --- ---- ---- ---- ----" 280 U$=S6$+U$ : W$=S6$+W$ : X$=S6$+X$ : Y$=S6$+Y$ 300 ON ERROR GO TO 1400 340 ! READ IN PROFESSOR CODES 360 DIM P4$(20%),P$(100%) 380 INPUT "PROF FILE (DEV:FILE)";F$: IF F$="" THEN F$="DK1:PROF15" 390 OPEN F$ FOR INPUT AS FILE 2% 400 FIELD #2%,34%*P% AS Z$,34% AS P4$(P%) FOR P%=0% TO 14% 420 IF P%<14% THEN P%=P%+1% ELSE P%=0% : GET #2% 440 IF LEFT(P4$(P%),1%)="\" THEN 480 460 I%=VAL(MID(P4$(P%),8%,2%)) : P$(I%)=MID(P4$(P%),11%,16%) : GO TO 420 480 CLOSE 2% 500 F9%=0% : F7%=0% ! INITIALIZE FLAGS 520 DIM S%(300) 540 INPUT"SUBJECT FILE";F5$ 560 OPEN F5$ FOR INPUT AS FILE 1% : FIELD #1%,127%*V% AS Z$, 127% AS V$(V%) FOR V%=0% TO 3% 580 I%=1% 600 IF V%<3% THEN V%=V%+1% ELSE V%=0% : GET #1% 620 IF LEFT(V$(V%),1%)="\" THEN 660 640 S%(VAL(MID(V$(V%),8%,3%)))=I% : I%=I%+1% : GO TO 600 660 S%(0%)=I%-1% 680 INPUT"CLASS LIST FILE";F$ 700 OPEN F$ FOR INPUT AS FILE 3% 720 FIELD #3%,127%*R% AS Z$,127% AS A$(R%) FOR R%=0% TO 3% 740 INPUT"OUTPUT TO (DEV:FILE)";O$ : IF O$="" THEN O$="KB:" 760 OPEN O$ FOR OUTPUT AS FILE 4% 780 INPUT"SKIP PAST ID";Z2$ 800 IF LEN(Z2$)<>6% THEN 860 820 IF R%<3% THEN R%=R%+1% ELSE R%=0% : GET #3% 840 IF Z2$>LEFT(A$(R%),6%) THEN 820 860 ! MAIN LOOP 880 IF R%<3% THEN R%=R%+1% ELSE R%=0% : GET #3% 900 IF LEFT(A$(R%),1%)="\" THEN 1540 920 I%=0% 940 P1$=P$( VAL(MID(A$(R%),9%,2%)) ) ! ADVISOR 960 PRINT #4%," ";MID(A$(R%),13%,26%);" ";MID(A$(R%),7%,2%); " ";P1$;" ";LEFT(A$(R%),6%) 980 IF MID(A$(R%),9%,1%)="S" THEN PRINT #4%, " SPECIAL STUDENT" ELSE PRINT #4% 1000 PRINT #4%,X$ : PRINT #4%,Y$ 1020 U%=(INSTR(40%,A$(R%)," ")-35%)/7% ! NO. COURSES 1040 H1,H2=0. ! TOTAL HOURS 1060 FOR I%=1% TO U% 1070 P8%=0% 1080 C1$=MID(A$(R%),41%+(I%-1%)*7%,7%) 1100 C%=VAL(LEFT(C1$,3)) 1120 S1%=S%(C%) : V1%=(S1%+3%)/4% : V%=S1%-4%*V1%+3% : GET #1%, RECORD V1% 1140 H%=ASCII(MID(C1$,4%,1%))-48% : IF H%<0% OR H%>9% THEN H%=0% 1160 H=H% : H=H/2 : H1=H1+H 1180 IF H%<0% OR H%>9% THEN H%=0% 1190 IF LEFT(V$(V%),2%)="PE" THEN IF H% THEN H2=H2+H : P8%=-1% 1200 H1%=H1%+H% 1220 P1$=" " : IF MID(C1$,5%,1%)="C" THEN P1$="C/NC" : IF P8%=0% THEN H2=H2+H 1240 PRINT #4%,USING W$,MID(V$(V%),36%,16%),MID(V$(V%),3%,3%), MID(V$(V%),6%,1%),H,P1$,MID(V$(V%),12%,4%),MID(V$(V%),16%,3%) 1260 NEXT I% 1280 PRINT #4% 1300 PRINT #4%,USING U$,H1-H2,H1 1320 PRINT #4% FOR K%=1% TO M8%-I% 1340 IF U%=0% THEN PRINT #4% 1360 IF P9%<4% THEN P9%=P9%+1% ELSE P9%=1% : IF M9% THEN PRINT #4%,CHR$(12%); 1380 GO TO 860 1400 IF ERR=11% THEN 1540 ELSE IF ERR=5% THEN 1440 1420 IF ERR<>52% OR I%<>0% THEN ON ERROR GO TO 0 ELSE PRINT"BAD RECORD: ";LEFT(A$(R%),40%) : P1$=" " : RESUME 960 1440 IF ERL=390% THEN PRINT"** CAN'T FIND ";F$;" **" : RESUME 380 1450 IF ERL=560% THEN PRINT"** CAN'T FIND ";F5$;" **" : RESUME 540 1460 IF ERL=700% THEN PRINT"** CAN'T FIND ";F$;" **" : RESUME 680 1470 ON ERROR GO TO 0 1540 PRINT #4%,CHR$(26%) : CLOSE 1%,2%,3%,4% 1580 END