I need help debugging this. // Cooper College maintains a master file of students and credits // earned. Each semester the master is updated with a transaction // file that contains credits earned during the semester. // Each file is sorted in Student ID number order. start Declarations num masterID string masterName num masterCredits num transID num transCredits string bothDone = "N" num HIGH_VALUE = 999999 InputFile master InputFile trans OutputFile newMaster getReady() while bothDone = "N" detailLoop() endwhile allDone() stop getReady() open master "studentFile.dat" open trans "semesterCredits.dat" open newMaster "updatedStudentFile.dat" readMaster() readTrans() checkBoth() return readMaster() input masterID, masterName, masterCredits from master if eof then masterID = HIGH_VALUE endif return readTrans() input transID, transCredits from trans if eof then transID = HIGH_VALUE endif return checkBoth() if masterID = HIGH_VALUE AND transID = HIGH_VALUE then bothDone = "Y" endif return detailLoop() if masterID = transID then match() else if masterID > transID then noMasterForTrans() else noTransForMaster() endif endif return match() masterCredits = transCredits output masterID, masterName, masterCredits to newMaster readMaster() readTrans() return noMasterForTrans() output "No master file record matches transaction ", masterID readTrans() return noTransForMaster() output masterID, masterName, masterCredits to newMaster return allDone() close master close trans close newMaster return
I need help debugging this.
// Cooper College maintains a master file of students and credits
// earned. Each semester the master is updated with a transaction
// file that contains credits earned during the semester.
// Each file is sorted in Student ID number order.
start
Declarations
num masterID
string masterName
num masterCredits
num transID
num transCredits
string bothDone = "N"
num HIGH_VALUE = 999999
InputFile master
InputFile trans
OutputFile newMaster
getReady()
while bothDone = "N"
detailLoop()
endwhile
allDone()
stop
getReady()
open master "studentFile.dat"
open trans "semesterCredits.dat"
open newMaster "updatedStudentFile.dat"
readMaster()
readTrans()
checkBoth()
return
readMaster()
input masterID, masterName, masterCredits from master
if eof then
masterID = HIGH_VALUE
endif
return
readTrans()
input transID, transCredits from trans
if eof then
transID = HIGH_VALUE
endif
return
checkBoth()
if masterID = HIGH_VALUE AND transID = HIGH_VALUE then
bothDone = "Y"
endif
return
detailLoop()
if masterID = transID then
match()
else
if masterID > transID then
noMasterForTrans()
else
noTransForMaster()
endif
endif
return
match()
masterCredits = transCredits
output masterID, masterName, masterCredits to newMaster
readMaster()
readTrans()
return
noMasterForTrans()
output "No master file record matches transaction ", masterID
readTrans()
return
noTransForMaster()
output masterID, masterName, masterCredits to newMaster
return
allDone()
close master
close trans
close newMaster
return
Trending now
This is a popular solution!
Step by step
Solved in 2 steps