1 ! GRDSP3 -- TALLY OF STUDENTS WITH GRADE POINT ! OF AT LEAST THAT LISTED ON 4 POINT SCALE 2 ! 15-FEB-74 J. WARDEN WABASH COLLEGE 90 DIM G%(40),G(40) 100 PRINT"GRADE POINT PROFILE -- 4 POINT SCALE" 110 H1$=CHR$(9%)+"GPA NO. WITH AT LEAST PERCENTAGE" 112 H2$=CHR$(9%)+" THIS GPA" 114 H3$=CHR$(9%)+"--- ----------------- ----------" 116 H4$=CHR$(9%)+"#.# ####### ####.#" 118 H5$=CHR$(9%)+"TOTAL ####### [ENROLLED & ON CAMPUS]" 140 N5%=1% : GOSUB 4000 180 ON ERROR GO TO 300 200 INPUT"GPA FILE";F1$ 202 F1%=INSTR(1%,F1$,":") : IF F1% THEN F0$=RIGHT(F1$,F1%+1%) ELSE F0$=F1$+"" 204 F2$=MID(F0$,4%,1%) : IF F2$="F" THEN F0$="FALL 19"+RIGHT(F0$,5%) ELSE IF F2$="S" THEN F0$="SPRING 19"+RIGHT(F0$,5%) 220 INPUT"OUTPUT FILE (DEV:FILE)";F2$ 230 INPUT"HOW MANY COPIES";T% : IF T%<1% THEN T%=1% 240 OPEN F1$ FOR INPUT AS FILE 1% 250 FIELD #1%,N1%*A% AS Z$,N1% AS A$(A%) FOR A%=0% TO N6% 260 OPEN F2$ FOR OUTPUT AS FILE 2% 290 GO TO 390 300 IF ERR<>5% THEN ON ERROR GO TO 0 340 PRINT CHR$(7%)+"** CAN'T FIND "+F1$+" **" : RESUME 360 360 INPUT"INPUT FILE (DEV:FILE)";F1$ ! TRY FOR INPUT FILE AGAIN 380 GO TO 240 390 ON ERROR GO TO 900 400 IF A%" " THEN 400 450 G%(I%)=G%(I%)+1% FOR I%=20% TO G4% 480 G%(0%)=G%(0%)+1% 520 GO TO 400 900 IF ERR<>11% THEN ON ERROR GO TO 0 1000 ! === OUTPUT ROUTINE === 1105 PRINT #2%," GRADE POINT PROFILE FOR ";F0$ 1110 PRINT #2%," WABASH COLLEGE ";DATE$(0) 1120 PRINT #2%,CHR$(10%) 1130 PRINT #2%,H1$ : PRINT #2%,H2$ 1140 PRINT #2%,H3$ 1150 G0=G%(0%) 1160 FOR I%=20% TO 40% 1162 G=G%(I%) : G(I%)=G*100./G0 1164 NEXT I% 1200 FOR I%=20% TO 40% 1210 I=I% : I=I*0.1 1220 %,USING H4$,I,G%(I%),G(I%) 1230 NEXT I% 1240 % : %, USING H5$,G0 1250 T0%=T0%+1% : IF T0%F$ THEN 4080 4140 V2%(2%,0%),N%=VAL(MID(A$(A%),4%,2%)) : N9%=VAL(MID(A$(A%),6%,1%))*2% 4160 N1%=510%/N% : N2%=N1%-8% : N3%=N%*N1% : N6%=N%-1% 4180 FOR V%=1% TO 50% 4200 V2$(V%)=MID(A$(A%),42%+(V%-1%)*4%,2%) : IF V2$(V%)=" " THEN 4280 4220 V5%=CVT$%(MID(A$(A%),44%+(V%-1%)*4%,2%)) 4240 V2%(1%,V%)=ASCII(CHR$(V5%)) : V2%(2%,V%)=ASCII(CHR$(SWAP%(V5%))) 4260 NEXT V% 4280 V2%(1%,0%)=V%-1% : IF N5% THEN 4300 ELSE PRINT"CODES: "; : PRINT V2$(I%)+" "; FOR I%=1% TO V%-1% : PRINT 4300 CLOSE 1% : ON ERROR GO TO 0 : RETURN 4320 IF ERR<>5% AND ERR<>21% THEN 4380 ELSE RESUME 4340 4340 READ V1$ : GO TO 4040 4360 DATA DK2:,DK1:,DK0:,DK3: 4380 PRINT"THE FILE '$ATRIB' HAS BEEN DELETED;" : PRINT"IT MUST BE REPLACED TO PROCEED." 9999 END