100 ! GRDL49 -- SEMESTER GRADE REPORT IN FORMAT ! OF TRANSCRIPT UPDATE LABELS; BOTH 4 & 9 POINT ! SYSTEMS. FIVE FILES ARE REQUIRED -- 120 ! (1) SUBJECT FILE (4 R/B) ! (2) SUBJECT CODE INDEX FILE (SET UP BY 'SUBIN') 140 ! (3) PROFESSOR NAMES (15 R/B) ! (4) CLASS LIST FILE (CONTAINING GRADES) 160 ! (5) PREV SEMESTER GPA FILE (4 R/B) 180 ! BOTH 4 AND 9 POINT GRADES ARE COMPUTED FOR ! CLASSES OF 74,75,76; 9 PT ONLY FOR 77. 200 ! ==> SPECIAL TRANSCRIPT UPDATE LABELS ARE REQUIRED. ! 02-JAN-74 J. WARDEN WABASH COLLEGE 220 PRINT"TRANSCRIPT UPDATE LABELS -- 4 & 9 POINT SYSTEM" 240 READ F3$,F$,F0$,F4$ 260 DATA "DK0:SUBS74","DK3:GPAF73","DK0:CLS74","DK0:CSB73" 280 PRINT"STANDARD FILES: ";F3$;" ";F$;" ";F0$ 300 INPUT"CORRECT (Y/N)";G1$ : IF ASCII(G1$)<>89% THEN F3$,F$,F0$,F4$="" 320 DEF FNC(X%)=CVT$F(MID(B$(B%),X%,4%)) 340 N%=4% : N6%=3% : N1%=510%/N% 360 J0=32./120. : ON ERROR GO TO 2400 380 D5$=" SPRING 1973-74" 381 ! XXXXX XXXXX XXXX 400 S9$="POINT SYSTEM: ##.# ##.# ####.# ##.### ###.# ###.# ##.###" 420 S4$=" 4: "+RIGHT(S9$,15%) 440 S9$=" 9: "+RIGHT(S9$,15%) 460 DIM G$(9%),P4$(20%),P$(100%) 480 READ G$(I%) FOR I%=1% TO 9% 500 DATA "D ","C-","C ","C+","B-","B ","B+","A-","A " 520 READ G4%(I%) FOR I%=0% TO 9% 540 DATA 0,1,2,2,2,3,3,3,4,4 560 F9%=0% : F7%=0% ! INITIALIZE FLAGS 580 IF LEN(F3$)=0% THEN INPUT"SUBJECT FILE";F3$ 600 OPEN F3$ FOR INPUT AS FILE 1% 620 FIELD #1%, 127%*S% AS Z$, 127% AS S$(S%) FOR S%=0% TO 3% 640 OPEN F3$+".IN" FOR INPUT AS FILE 7% 660 DIM #7%,S%(400) 670 P1$="DK1:PROF15" 680 IF P1$="" THEN INPUT"PROF FILE";P1$ 690 OPEN P1$ FOR INPUT AS FILE 2% 700 FIELD #2%,34%*P% AS Z$,34% AS P4$(P%) FOR P%=0% TO 14% 720 IF P%<14% THEN P%=P%+1% ELSE P%=0% : GET #2% 740 IF ASCII(P4$(P%))=92% THEN 760 ELSE I%=VAL(MID(P4$(P%),8%,2%)) : P$(I%)=MID(P4$(P%),11%,16%) : GO TO 720 ! PROF ##, NAME 760 CLOSE 2% ! CLOSE PROF FILE 780 IF LEN(F$)=0% THEN INPUT"GPA FILE";F$ 800 OPEN F$ FOR INPUT AS FILE 6% 820 FIELD #6%,127%*B% AS Z$, 127% AS B$(B%) FOR B%=0% TO 3% 840 IF LEN(F0$)=0% THEN INPUT"CLASS LIST FILE";F0$ 860 OPEN F0$ FOR INPUT AS FILE 3% 880 FIELD #3%,127%*A% AS Z$,127% AS A$(A%) FOR A%=0% TO 3% 960 INPUT"OUTPUT TO (DEV:FILE)";Z$ : IF Z$="" THEN Z$="LP:" 980 OPEN Z$ FOR OUTPUT AS FILE 4% 1000 PRINT"SET UP PRINTER:" 1020 INPUT"READY";G1$ : IF ASCII(G1$)=89% THEN 1040 ELSE PRINT #4% : GO TO 1020 1040 INPUT"-> SKIP TO ID";Z2$ : IF LEN(Z2$)<>6% THEN 1100 1060 IF A%<3% THEN A%=A%+1% ELSE A%=0% : GET #3% 1080 IF Z2$>LEFT(A$(A%),6%) THEN 1060 1100 IF A%<3% THEN A%=A%+1% ELSE A%=0% : GET #3% 1120 IF ASCII(A$(A%))=92% THEN 2520 ELSE I$=LEFT(A$(A%),6%) 1130 C0$=MID(A$(A%),7%,2%) 1140 U0%=U0%+1% 1180 GOSUB 2200 ! LOOK UP PREV SEM GPA 1200 ! LABEL HEADER 1220 PRINT #4%," ";MID(A$(A%),13%,28%)+MID(A$(A%),7%,2%)+" "; P$(VAL(MID(A$(A%),9%,2%))) 1230 PRINT #4%,CHR$(10%) 1240 PRINT #4%," "+D5$ 1260 U%=(INSTR(40%,A$(A%)," ")-35%)/7% 1280 Q,Q0,H,H2,H4,H5 = 0. 1300 IF U%=0% THEN I%=0% : GO TO 1820 1320 FOR I%=1% TO U% 1340 C1$=MID(A$(A%),41%+(I%-1%)*7%,7%) 1360 C%=VAL(LEFT(C1$,3%)) : C%=S%(C%) 1380 S1%=(C%+N6%)/N% : S%=C%-1%-(S1%-1%)*N% : GET #1%, RECORD S1% 1400 G1$=MID(C1$,6%,2%) 1420 FOR J%=1% TO 9% 1440 IF G1$=G$(J%) THEN 1500 1460 NEXT J% 1480 J%=0% ! IF GRADE NOT FOUND QP=0 1500 H3=VAL(MID(C1$,4%,1%))/2. 1520 G9=J% : G4=G4%(J%) : Q1=G9*H3 : Q2=G4*H3 1540 IF LEFT(S$(S%),2%)<>"PE" THEN 1600 1560 IF J%+INSTR(1%,"P S CR",G1$) THEN H2=H2+H3 ! CREDITS PASSED 1580 Q1,Q2=0. : GO TO 1640 ! FOR PE, NO QP 1600 IF J%+INSTR(1%,"P S CR",G1$) THEN H2=H2+H3 : IF G1$<>"CR" AND G1$<>"S " THEN H5=H5+H3 : Q=Q+Q1 : Q0=Q0+Q2 ! CR TWD GRD QP9 QP4 1620 IF J%+INSTR(1%,"COF WF",G1$) THEN H4=H4+H3 ! CRED TWD CUM 1640 H=H+H3 ! CRED ATTEMPTED 1660 S6%=1% 1680 PRINT #4%,SPACE$(S6%)+MID(S$(S%),85%,3%)+" "+MID(S$(S%),3%,3%)+" "; 1700 IF G1$="CO" THEN G1$="CON" 1720 IF G1$="P " THEN G1$="PAS" 1740 IF G1$="IN" THEN G1$="INC" 1760 PRINT #4%,MID(S$(S%),52%,24%); 1770 IF C0$>="77" THEN PRINT #4%,USING "##.# \ \ ###.#",H3,G1$,Q2 : GO TO 1800 1780 PRINT #4%,USING "##.# \ \ ##.#/#.#",H3,G1$,Q1,Q2 1800 NEXT I% 1820 IF H4<.01 THEN C0,C5=0. : GO TO 1860 1840 C0=Q/H4 : C5=Q0/H4 ! SEM GPA 9,4 1860 T7=H7+H2 : T8=H8+H5 : T9=H9+H4 1880 ! ACCUM GRAD GPA CREDITS 1900 IF T9<.01 THEN C9,C4=0. : GO TO 1940 1920 C9=(Q+Q9)/T9 : C4=(Q0+Q4)/T9 ! CUM GPA 9,4 1940 PRINT #4% FOR X%=1% TO 11%-I% 1960 IF MID(A$(A%),7%,2%)>="77" THEN PRINT #4% : GO TO 2000 ! NO 9 PT FOR 77 & ON 1980 PRINT #4%, USING S9$,H,H2,Q,C0,T7,T8,C9 ! 9 PT 2000 PRINT #4%, USING S4$,H,H2,Q0,C5,T7,T8,C4 2020 PRINT #4% 2040 GO TO 1100 2180 ! === LOOK UP OLD STATS === 2200 IF F9% THEN 2260 2220 IF B%<3% THEN B%=B%+1% ELSE B%=0% : GET #6% 2240 C5$=LEFT(B$(B%),6%) ! CUM ID 2260 IF I$<>C5$ THEN 2360 2280 H7=FNC(77%) : H8=FNC(85%) : H9=FNC(81%) 2300 Q9=H9*FNC(45%) : Q4=H9*FNC(69%) 2320 ! CC PASSED, CC TWD GRAD, CC TWD CUM, QP9, QP4 2340 F9%=0% : RETURN ! (SET FLAG TO READ ANOTHER GPA) 2360 IF C5$5% THEN ON ERROR GO TO 0 2420 IF ERL=600% THEN &"CAN'T FIND ";F3$ : F3$="" : RESUME 580 2440 IF ERL=640% THEN & : &"RUN 'SUBIN' TO CREATE "; "A SUBJECT INDEX FILE" : GO TO 2560 2460 IF ERL=800% THEN &"CAN'T FIND ";F$ : F$="" : RESUME 780 2480 IF ERL=860% THEN &"CAN'T FIND ";F0$ : F0$="" : RESUME 840 2500 IF ERL=690% THEN P1$="" : RESUME 680 2520 PRINT #4%, CHR$(26%) : CLOSE 1%,2%,3%,4%,5%,6%,7% 2540 PRINT : PRINT U0%;"STUDENT RECORDS PROCESSED" 2560 END