5 ! ADD - ADD STUDENTS TO CLASSES 100 !**************OPEN DISK FILES************************** 110 ! PRESENT FILES DESIGNED FOR 4000 STUDENTS JAN 12, 1972 120 OPEN "**MASTER" AS FILE 1 : DIM# 1 ,M%(100) 140 OPEN "**STINF" AS FILE 3 : DIM# 3 ,S$( 1111 )=32 160 OPEN "**STUDF" AS FILE 5 : DIM# 5 ,L%( 1111 ,2),S%( 1111 ,10),N( 1111 ) 170 OPEN "**OVERF" AS FILE 6 : DIM# 6 ,S0%( 33 ,5) 180 OPEN "**SCLINF" AS FILE 2 : DIM# 2 ,C$( 2222 )=16 190 OPEN "**HASH" AS FILE 7 : DIM# 7 ,H( 2222 ,3),Z7%(100,2) 200 OPEN "**PRESTS" AS FILE 9 : DIM# 9 ,M3%( 2222 ,2) 210 OPEN "**ESTAT" AS FILE 8 : DIM# 8 ,E9%( 2222 ,2) 270 DEF FNA(Q7)=Q7-INT(Q7/10)*10 299 !******************************************************* 305 Z6=0 !STUDENT# SWITCH 310 INPUT "WILL YOU BE ENTERING DP#'S";Z$ 320 IF Z$="YES" THEN Z6=1 620 GOSUB 3000 989 PRINT DATE$(0),TIME$(0) 990 PRINT "CANCELATIONS DROPS ADDS" 991 PRINT "------------ ----- ------" 992 PRINT TAB(5);M%(44);TAB(15);M%(43);TAB(22);M%(42) 1000 CLOSE 1,2,3,4,5,6,7,8,9 1010 GOTO 9999 3000 PRINT "*****" 3010 INPUT "ST#,CLASS,SEC,HOURS,PRINT";V1,B$,V3$,H1%,Z5 3015 V3%=H1% ! V3% IS THE HOURS 3020 IF V1=0 THEN RETURN ELSE GOSUB 6500 3025 IF Z$<>"YES" THEN 3000 !STUDENT OK? 3030 GOSUB 7000 !GO FIND CLASS 3040 IF V2%=0 THEN PRINT "CLASS NOT IN CLASS FILE": GO TO 3000 3045 IF E8%(V2%,1)>=5% THEN INPUT "CLOSED PERM";E9$ : IF E9$="NO" THEN 3000% 3050 H%=S%(V1%,1)/100% : P%=S%(V1%,1)-H%*100% 3060 IF P%<8% GOTO 3070 !WONT BE AN OVERFLOW 3065 GOSUB 6000 3070 !*** 3079 IF P%>=8 GOTO 3110 3080 !*****ADD TO STUDENT FILE 3090 S%(V1%,P%+3%)=V2%*10%+V3% 3100 S%(V1%,1)=(H%+V3%)*100%+P%+1% 3110 !*** 3135 M%(42)=M%(42)+1% 3137 IF Z5=1 THEN GOSUB 8000 !WANT ST FILE LIST 3140 M3%(V2%,2%)=M3%(V2%,2%)+1% 3150 IF M3%(V2%,2)>=M3%(V2%,1)-2% THEN IF E9%(V2%,1)<5% THEN E9%(V2%,1)=E9%(V2%,1)+5% ! CLOSE IT 3200 GOTO 3010 6000 !****OVERFLOW STUDENT 6020 Q%=M%(96) 6030 IF P%>8% AND S%(V1%,2)=0% THEN P%=8% 6040 P%=P%+1% 6050 IF P%>12% THEN PRINT "12 CLASSES ALREADY" :RETURN 6060 IF P%>9% GOTO 6100 6070 IF M%(96)>=M%(98) THEN PRINT "NO MORE" :RETURN 6080 S%(V1%,2)=Q% :M%(96)=M%(96)+1% :S0%(Q%,1)=V1% 6100 Q2%=S%(V1%,2) :Q3%=P%-8%+1% 6105 S%(V1%,1)=S%(V1%,1)+V3%*100%+1% ! ADD HOURS AND COURSE 6110 S0%(Q2%,Q3%)=V2%*10%+V3% 6120 RETURN 6500 !***SUBROUTINE TO FIND STUDENTS NAME 6510 IF Z6=1 THEN V1%=V1 : GOTO 6560 !HE IS GIVING DP# 6520 !**HANDLE STUDENT # 6525 FOR Z3%=1 TO M%(2) 6530 IF N(Z3%)=V1 THEN 6550 6535 NEXT Z3% 6540 Z3%=0 : S$(0)="INVALID STUDENT# 6550 V1%=Z3% !INDEX FOR STUDENT 6560 PRINT "WORKING ON-"; LEFT (S$(V1%),20);"OK"; 6565 INPUT Z$ 6570 RETURN 7000 !****FIND CLASS AND SECTION 7005 V2%=0% ! SET TO MEAN NOT FOUND 7006 IF LEN(B$)<8 THEN B$=LEFT(B$,LEN(B$)-4)+SPACE$(8-LEN(B$))+RIGHT(B$,LEN(B$)-3) 7010 B$=B$+V3$ ! ADD SEC # 7020 C9=0 : C8=0 : CHANGE B$ TO A 7029 FOR I7=1 TO 4 7030 IF A(I7)<>0 AND A(I7)<>32 THEN C9=C9*10+FNA(A(I7)) 7031 NEXT I7 7059 FOR I7=5 TO 10 7060 IF A(I7)<>0 AND A(I7)<>32 THEN C8=C8*10+ FNA(A(I7)) 7061 NEXT I7 7100 !***** C9 AND C8 CONTAIN HASH VALUES******** 7110 C6=INT(C9/100) ! FILE INDEX 7120 FOR C6%=Z7%(C6,1) TO Z7%(C6,2) 7130 IF H(C6%,1)C9 THEN RETURN ! CLASS NOT FOUND 7150 IF C8=H(C6%,2) THEN 7400 ! CLASS INDEX 7200 NEXT C6% 7210 RETURN !NO SECOND MATCH 7400 V2%=H(C6%,3) ! CLASS INDEX 7405 M3%(V2%,2)=M3%(V2%,2)+1% 7410 RETURN 8000 PRINT "******" :P7%=0 :H%=0 :PRINT 8005 PRINT "COURSE";TAB(20);"HOURS" 8008 PRINT "------";TAB(20);"-----" 8010 P%=S%(V1%,1)-INT(S%(V1%,1)/100%)*100% 8015 IF P%>8% THEN P7%=P%-8% 8020 IF P%>8% THEN P%=8% 8030 FOR I7%=3% TO P%+2% 8040 Z%=S%(V1%,I7%)/10 :Z1%=S%(V1%,I7%)-Z%*10% 8050 PRINT C$(Z%);TAB(20);Z1% :H%=H%+Z1% 8060 NEXT I7% 8070 IF P7%=0 THEN 8130 8080 V7%=S%(V1%,2) !OVERFLOW 8090 FOR I7%=2% TO P7%+1% 8100 Z%=S0%(V7%,I7%)/10 :Z1%=S0%(V7%,I7%)-Z%*10% 8110 PRINT C$(Z%);TAB(20);Z1%:H%=H%+Z1% 8120 NEXT I7% 8130 PRINT TAB(20);"-----" 8140 PRINT "TOTAL HOURS"; TAB(20);H% 8200 RETURN 9999 END