1000 DIM A$(30) 1010 PRINT "-------------------------------------------------" 1020 PRINT "#################################################" 1030 PRINT "# Grade Calculator:Composed by F.Sanders 9/78 #" 1031 PRINT "# #" 1032 PRINT "# Program will calculate and print: #" 1033 PRINT "# Name: Final Letter Grade: Grade on #" 1034 PRINT "# each Exam or question: Total # points #" 1035 PRINT "# per student: # of students in class #" 1036 PRINT "# # of test scores per student: #" 1037 PRINT "# class average:sample standard deviation #" 1038 PRINT "# population standard deviation, variance #" 1039 PRINT "# and # of Grades of each category #" 1040 PRINT "# #" 1045 PRINT "# TO PRINT TO A FILE,ADD LINE 900 SET OF='B$' #" 1046 PRINT "# AND LINE 1875 SET OF = #0 #" 1050 PRINT "# #" 1055 PRINT "# VARIABLES #" 1060 PRINT "# N= NUMBER OF STUDENTS : T= NUMBER TEST SCORES #" 1070 PRINT "# N1=COUNTER FOR # OF STUDENTS IN CLASS #" 1080 PRINT "# S= TOTAL OF TEST SCORES #" 1090 PRINT "# S1= TOTAL OF TEST SCORES FOR 1 STUDENT #" 1100 PRINT "# Y= TOTAL POSSIBLE OF ALL TEST SCORES #" 1110 PRINT "# note: Y may be changed as required to #" 1120 PRINT "# reflect any total possible #" 1130 PRINT "# test scores. #" 1140 PRINT "# A$=NAME :V1=Test Score,1st Exam or question #" 1150 PRINT "# V2=Test Score,2nd Exam or question #" 1160 PRINT "# V3=Test Score,3rd Exam or question #" 1170 PRINT "# The number of exams are easily varied. #" 1180 PRINT "# The routine might be used to calculate the #" 1190 PRINT "# test score of a number of questions on one #" 1200 PRINT "# exam. A routine may be added to calculate and #" 1210 PRINT "# print the points needed to reach the next #" 1220 PRINT "# grade, as noted in program.Variations upon the#" 1230 PRINT "# theme are endless. #" 1240 PRINT "# Obviously,one change would be to INPUT rather#" 1250 PRINT "# than READ from a FILE #" 1260 PRINT "#################################################" 1270 PRINT TAB(24);"COURSE # 3: FALL, 1978" 1280 PRINT TAB(30);"RECORD OF ALL GRADES" 1290 PRINT " NAMES";TAB(24);"FG";TAB(30);"1";TAB(33);"2"; 1300 PRINT TAB(37);"3";TAB(45);"TOT";TAB(50);"ADD.PTS." 1310 PRINT "-------------------------------------------------" 1320 LET Y=245 1330 LET N1=0: LET T1=0: LET T2=0: LET S=0 1340 FILE #1;"TESTSCOR",3,,,1024 1350 READ #1;T,N 1360 FOR I=1 TO N 1370 READ #1;A$,V1,V2,V3 1380 IF EOF(1)=6 THEN 1610 1390 LET N1=N1+1 1400 LET S1=0 1410 LET V=V1+V2+V3 1420 IF V>Y THEN PRINT "##########ERROR#########" 1430 LET S1=S1+V 1440 IF S1>Y THEN PRINT "***********ERR OR ***********" 1450 LET S=S+S1 1460 REM- AT THIS POINT YOU MAY ADD A ROUTINE TO ENABLE 1470 REM- THE INSTRUCTOR TO CALCULATE HOW MANY POINTS A 1480 REM- STUDENT MIGHT NEED TO REACH THE NEXT GRADE 1485 REM- SIMPLY EDIT OUT THE WORD REM,VARIABLES ALREADY 1490 REM- ENTERED IN GOSUB PRINT STATEMENTS, AND LINE 1495 REM- 1300 ALREAD HAS 'ADD.PTS' INCLUDED 1500 REMX1=INT((Y*.90)+.5)-S1: LET X2=INT((Y*.80)+.5)-S1 1510 REMX3=INT((Y*.70)+.5)-S1: LET X4=((Y*.60)+.5)-S1 1530 IF S1>=(Y*.90) THEN GOSUB 1890 1540 IF S1=Y*.80 THEN GOSUB 1910 1550 IF S1Y*.70 THEN GOSUB 1930 1560 IF S1=Y*.60 THEN GOSUB 1950 1570 IF S1Y*.90 THEN GOSUB 2000 1660 IF S/N1>Y*.80 AND S/N1Y*.70 AND S/N1Y*.60 AND S/N1