5 ! LATENR- PROGRAM TO ENROLL STUDENTS AFTER REGULAR ENROLL 6 ! WRITTEN BY R.A. BRANTON JAN. 3,1974 10 ON ERROR GOTO 8000% 50 DEF FNA(X)=X-INT(X/10)*10 110 OPEN "**MASTER" AS FILE 1 : DIM# 1 ,M%(100) 130 OPEN "**PRESTS" AS FILE 5 : DIM# 5 ,E8%( 2222 ,2) 210 OPEN "**SCLINF" AS FILE 2 : DIM# 2 ,C$( 2222 )=16 220 OPEN "**STATUS" AS FILE 8 : DIM# 8 ,E9%( 2222 ,2) 230 OPEN "**HASH" AS FILE 7 : DIM# 7 ,H( 2222 ,3),Z%(100,2) 240 OPEN "**STINF" AS FILE 3 : DIM# 3 ,S$( 1111 )=32 250 OPEN "**STUDF" AS FILE 4 : DIM# 4 ,L%( 1111 ,2),S%( 1111 ,10),N( 1111 ) 260 OPEN "**OVERF" AS FILE 6 : DIM# 6 ,S0%( 33 ,5) 270 OPEN "**VISOR" AS FILE 9 : DIM# 9 ,A%( 1111 ),M7%( 1111 ) 300 DIM P%(12,3),A(10),B(10) 310 Q%=M%(2%) !# OF STUDENTS ENROLLED 600 !*****START WORK 610 PRINT : INPUT "ST#";N1 : IF N1=0 THEN 9000 615 PRINT "NAME"; : INPUT LINE N$ 625 N$=LEFT(N$,LEN(N$)-2) ! PICK OFF CR LF FROM NAME 630 X=LEN(N$): IF X>20 THEN X=20 640 INPUT "CSM,MAJ#,ADV#";N1$,M8%,A8% 650 N$=LEFT(N$,X)+SPACE$(32-X-LEN(N1$))+N1$ 1000 !*** ENROLL *** 1010 PRINT "CLASSES--" 1020 P%(I%,J%)=0% FOR J%=0% TO 3% FOR I%=0% TO 12% 1100 PRINT CHR$(7); : INPUT B$,B1$,H3% 1110 IF B$="END" THEN 3000 1120 IF LEN(B$)<8 THEN B$=LEFT(B$,LEN(B$)-4)+SPACE$(8-LEN(B$))+RIGHT(B$,LEN(B$)-3) 1130 B$=B$+B1$ ! ADD SECTION # 1200 !*** CONVERT CLASS *** 1210 A(I6)=0 FOR I6=0 TO 10 1220 C9=0: C8=0 : CHANGE B$ TO A 1229 FOR I%=1 TO 4 1230 IF A(I%)<>0 AND A(I%)<>32 THEN C9=C9*10+FNA(A(I%)) 1231 NEXT I% 1249 FOR I%=5 TO 10 1250 IF A(I%)<>0 AND A(I%)<>32 THEN C8=C8*10+FNA(A(I%)) 1251 NEXT I% 1270 C6=INT(C9/100) ! 1ST HASH INDEX 1400 FOR I%=Z%(C6,1) TO Z%(C6,2) 1410 IF H(I%,1)C9 THEN 1900 ! TOO FAR ERR0R 1430 IF H(I%,2)<>C8 THEN 1800 ! MAKE SEC CHECK 1440 J%=H(I%,3) !CLASS INDEX 1445 K%=E9%(J%,1) ! CLASS STATUS 1500 IF K%>=5% THEN PRINT "CLOSED-"; : GOTO 1520 1510 IF K%<>1% THEN 1530 1520 INPUT "PERMIS";T$ : IF T$<>"YES" THEN 600 !START AGAIN 1530 P%(0,1)=P%(0,1)+1% : I2%=P%(0,1) :P%(0,2)=P%(0,2)+H3% 1540 P%(I2%,1)=J% : P%(I2%,2)=H3% 1550 IF K%=2% OR K%=7% THEN PRINT "***REQUIRES LAB" 1600 GOTO 1100 1800 NEXT I% 1900 PRINT "NOT IN FILE ****" : GOTO 1100 3000 !*** PRINT SCHED OUT *** 3010 PRINT "*****" : PRINT : PRINT N$;" ";:PRINT USING "#########",N1 3020 PRINT : PRINT "COURSES:" 3030 PRINT C$(P%(J%,1) ) FOR J%=1 TO P%(0,1) 3040 & TAB(17);"HOURS=";P%(0%,2%) : & 3100 INPUT "CONFIRM";T$ 3110 IF T$="NO" THEN PRINT "***NOT ENROLLED" : GOTO600 4000 !*** HE IS FOR REAL *** 4010 Q%=M%(2%)+1% : IF Q%>=M%(100%) THEN PRINT "*** NO ROOM" : GOTO 9000 4030 S$(Q%)=N$ : N(Q%)=N1 ! SET NAME AND # 4040 P1%=P%(0%,1%) : P2%=0% 4050 IF P1%>8% THEN P2%=P1%-8% : P1%=8% 4100 FOR J%=1% TO P1% 4110 S%(Q%,J%+2%)=P%(J%,1%)*10%+P%(J%,2%) 4120 X7%=P%(J%,1%) : GOSUB 5000 4130 NEXT J% 4140 IF P2%=0% THEN 4200 ! NO OVERFLOW 4150 !***** OVERFLOW ENROLLMENT ***** 4160 IF M%(96%) > M%(98%) THEN PRINT "*** NO MORE OVERFLOWS" : GOTO 9000 4165 Q1%=M%(96%) : M%(96%)=Q1%+1% : S0%(Q1%,1%)=Q% 4170 FOR J%=2% TO P2%+1% 4175 S0%(Q1%,J%)=P%(J%+7%,1%)*10%+P%(J%+7%,2%) 4180 X7%=P%(J%+7%,1%) : GOSUB 5000% 4190 NEXT J% 4200 A%(Q%)=A8% : M7%(Q%)=M8% 4210 M%(2)=M%(2%)+1% ! INCREMENT STUDENT COUNT 4220 S%(Q%,1%)=P%(0,1%)+P%(0,2)*100% 4500 & "ENROLLED AS DP#";Q% : & : & "*******" : & 4520 GOTO 610 5000 ! SUBROUTINE TO INCREMENT CLASS COUNT 5010 E8%(X7%,2%)=E8%(X7%,2%)+1% !INCRE 5020 IF E8%(X7%,2%)< E8%(X7%,1)-2% THEN RETURN ! STILL OPEN 5030 IF E9%(X7%,1%)<5% THEN E9%(X7%,1%)=E9%(X7%,1%)+5% ! CLOSE IT 5100 RETURN 8000 PRINT "ERROR--";ERR 8010 RESUME 9000 9000 !*** CLOSE FILES *** 9005 & : & DATE$(0);" ";TIME$(0);" - ";Q%;" STUDENTS HAVE BEEN ENROLLED" 9010 CLOSE 1,2,3,4,5,6,7,8,9,10 9999 END