Code: Select all
DECLARE SUB B000Initialize ()
DECLARE SUB B010Process ()
DECLARE SUB B020Print ()
DECLARE SUB C000ReadRecord ()
DECLARE SUB C010PrintHeading (strTitle AS STRING)
CLS
DIM SHARED intEOF AS INTEGER
DIM SHARED intCount AS INTEGER
DIM SHARED intResCount AS INTEGER
DIM SHARED sngResStudent AS SINGLE
DIM SHARED sngResTuitionCount AS SINGLE
DIM SHARED sngNonResTuitionCount AS SINGLE
DIM SHARED sngTotalTuitionCount AS SINGLE
DIM SHARED sngNonResStudent AS SINGLE
DIM SHARED intNonResCount AS INTEGER
DIM SHARED sngIndividualTuition AS SINGLE
DIM SHARED strStudentName AS STRING
DIM SHARED sngCredits AS SINGLE
DIM SHARED strResidencyCode AS STRING
DIM SHARED intLineCount AS INTEGER
DIM SHARED intPageCount AS INTEGER
DIM SHARED intMaxLines AS INTEGER
CALL B000Initialize
IF intEOF = 1 THEN
PRINT "File Empty"
ELSE
DO WHILE intEOF = 0
CALL B010Process
LOOP
CALL B020Print
END IF
CLOSE #1
END
SUB B000Initialize
intMaxLines = 12
intLineCount = intMaxLines
intPageCount = 1
intEOF = 0
intCount = 0
intResCount = 0
intNonResCount = 0
sngTotalTuition = 0
OPEN "enroll.txt" FOR INPUT AS #1
CALL C000ReadRecord
END SUB
SUB B010Process
IF intLineCount >= intMaxLines THEN
CALL C010PrintHeading("Student Tuition Report")
END IF
intCount = intCount + 1
PRINT intCount, strStudentName, strResidencyCode, sngCredits,
IF intLineCount < intCount AND UCASE$(strResidencyCode) = "R" THEN
sngResStudent = sngCredits * 55
PRINT (sngResStudent)
intResCount = intResCount + 1
sngResTuitionCount = sngResTuitionCount + sngResStudent
END IF
intLineCount = intLineCount + 1
IF intLineCount < intCount AND UCASE$(strResidencyCode) = "N" THEN
sngNonResStudent = sngCredits * 85
PRINT (sngNonResStudent)
intNonResCount = intNonResCount + 1
sngNonResTuitionCount = sngNonResTuitionCount + sngNonResStudent
END IF
IF UCASE$(strResidencyCode) <> "R" AND UCASE$(strResidencyCode) <> "N" THEN
PRINT "Invalid Residency"
END IF
intCount = intCount + 1
CALL C000ReadRecord
END SUB
SUB B020Print
sngTotalTuitionCount = sngResTuitionCount + sngNonResTuitionCount
PRINT
PRINT "The total amount of resident students is"; intResCount
PRINT "The total amount of non-resident students is"; intNonResCount
PRINT "The total tuition due is: ";
PRINT USING "$$,###.##"; sngTotalTuitionCount
END SUB
SUB C000ReadRecord
IF EOF(1) THEN
intEOF = 1
ELSE
INPUT #1, strStudentName, strResidencyCode, sngCredits
END IF
END SUB
SUB C010PrintHeading (strTitle AS STRING)
DIM strNewPage AS STRING
PRINT
PRINT "Press enter to see page"; intPageCount
INPUT strNewPage
CLS
PRINT strTitle, "Page"; intPageCount
PRINT
PRINT "Number", "Student Name", "Residency", "Credits", "Tuition Due"
PRINT
intLineCount = 0
intPageCount = intPageCount + 1
END SUB