100 ! GPALS3 -- LISTING OF RANK, SEM AVE, OR CUM AVE ! ON EITHER 4 OR 9 POINT SCALE 105 ! INPUT FILE: GPA FILE 110 ! FILE MUST FIRST BE RANKED BY 'RANKER' AND THEN ! SORTED INTO RANK OR ID ORDER BY 'SORTX'. 120 ! 10-JAN-74 J. WARDEN WABASH COLLEGE 140 N5%=1% : GOSUB 1020 150 OPEN"KB:" AS FILE 9% 160 DEF FNC(X%)=CVT$F(MID(A$(A%),V2%(1%,X%),V2%(2%,X%))) 180 PRINT"RANK & GPA LISTING V01A" 190 INPUT"9 OR 4 POINT";P4% : IF P4%<>4% AND P4%<>9% THEN 190 200 J%=19% : K%=30% 210 S4$=" (4 PT) (4 PT)" 212 S9$=" (9 PT) (9 PT)" 214 IF P4%=4% THEN S0$=S4$+"" ELSE S0$=S9$+"" 216 S0$=" "+S0$ 220 PRINT"SEMESTER &YEAR (SPRING 1972-73)"; : INPUT LINE H$ : H$=LEFT(H$,LEN(H$)-2%) : IF LEN(H$)<3% THEN 220 230 INPUT"OUTPUT TO";O$ : IF O$="" THEN O$="KB:" 232 OPEN O$ FOR OUTPUT AS FILE 2% 240 ON ERROR GO TO 940 260 F0$="#### ##.### ##.###" 280 DIM F2$(13) 300 READ F2$(I%) FOR I%=0% TO 13% 320 DATA "OFF CPS","BETA ","DELT ","KAP SIG","LAM CHI" 340 DATA "PHIDELT","PHI GAM","PHI PSI","SIG CHI" 360 DATA "TEKE ","KINGERY","MARTIND","MORRIS ","WOLCOTT" 370 PRINT"RANK FILE(S):" 380 PRINT"*"; : INPUT #9%,F$ 390 IF F$="" THEN CLOSE 2% : GO TO 1420 395 IF O1% THEN PRINT #2%,CHR$(12%); ELSE O1%=1% 400 OPEN F$ FOR INPUT AS FILE 1% 420 FIELD #1%,N1%*A% AS Z$,N1% AS A$(A%) FOR A%=0% TO N6% 480 C%=0% 500 GOSUB 760 520 FOR I%=1% TO 25% 540 IF A%C$ THEN 540 600 PRINT #2%,MID(A$(A%),7%,2%);" ";MID(A$(A%),13%,28%); 640 IF P4%=4% THEN %,USING F0$,CVT$%(MID(A$(A%),89%,2%)),FNC(10%),FNC(11%) ELSE %,USING F0$,CVT$%(MID(A$(A%),89%,2%)),FNC(4%),FNC(5%) 660 PRINT #2% 680 NEXT I% 700 PRINT#2,CHR$(12) 720 GOSUB 760 740 GO TO 520 760 PRINT #2%," CUMULATIVE AVERAGES "+H$; 780 PRINT#2," "+DATE$(0) : PRINT#2," " 800 PRINT#2," " 820 PRINT #2%,"YR NAME"+SPACE$(J%); 840 PRINT #2%,"RANK SEM AVE CUM AVE" 860 PRINT #2%,SPACE$(K%); 880 PRINT #2%,S0$ 900 PRINT #2%,CHR$(10%) 920 RETURN 940 IF ERR=5% AND ERL=400% THEN PRINT"** CAN'T FIND ";F$;" **" : RESUME 380 960 RESUME 380 980 CLOSE 1,2 1000 GO TO 1420 1020 DIM V2$(50),V2%(2,50) 1040 ON ERROR GO TO 1360 1060 F$="GPA" 1080 OPEN V1$+"$ATRIB" FOR INPUT AS FILE 1% 1100 FIELD #1%, 255%*A% AS Z$, 255% AS A$(A%) FOR A%=0% TO 1% 1120 IF A%<1% THEN A%=A%+1% ELSE A%=0% : GET #1% : R%=R%+1% 1140 IF LEFT(A$(A%),3%)="\\\" THEN PRINT"NO SUCH FILE TYPE" : GO TO 1420 1160 IF LEFT(A$(A%),3%)<>F$ THEN 1120 1180 V2%(2%,0%),N%=VAL(MID(A$(A%),4%,2%)) : N9%=VAL(MID(A$(A%),6%,1%))*2% 1200 N1%=510%/N% : N2%=N1%-8% : N3%=N%*N1% : N6%=N%-1% 1220 FOR V%=1% TO 50% 1240 V2$(V%)=MID(A$(A%),42%+(V%-1%)*4%,2%) : IF V2$(V%)=" " THEN 1320 1260 V5%=CVT$%(MID(A$(A%),44%+(V%-1%)*4%,2%)) 1280 V2%(1%,V%)=ASCII(CHR$(V5%)) : V2%(2%,V%)=ASCII(CHR$(SWAP%(V5%))) 1300 NEXT V% 1320 V2%(1%,0%)=V%-1% : IF N5% THEN 1340 ELSE PRINT"CODES: "; : PRINT V2$(I%)+" "; FOR I%=1% TO V%-1% : PRINT 1340 CLOSE 1% : ON ERROR GO TO 0 : RETURN 1360 IF ERR<>5% AND ERR<>21% THEN 1400 ELSE RESUME 1380 1380 IF V1$="" THEN V1$="DK1:" : GO TO 1080 1400 PRINT"THE FILE '$ATRIB' HAS BEEN DELETED;" : PRINT"IT MUST BE REPLACED TO PROCEED." 1420 END