Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Chapter 7: “File Handling and Applications (Part 2)” Examine the pseudocode that

ID: 3912613 • Letter: C

Question

Chapter 7: “File Handling and Applications (Part 2)”

Examine the pseudocode that follows the introductory comments, then find and correct all the bugs. Correct the code in this file, and be sure to clearly highlight the corrections.

1.      Debugging

Each time a salesperson sells a car at the Pardeeville New and Used Auto Dealership, a record is created containing the salesperson’s name and the amount of the sale. Sales of new and used cars are kept in separate files because several reports are created for each sale type. However, management has requested a merged file so that all of the sales, whether the vehicle was new or used, are displayed together for each salesperson. The following code is intended to merge the files that have already been sorted by salesperson ID number.

start

      Declarations

              string newSalesperson

              num newAmount

              string usedSalesperson

              num usedAmount

              string bothAtEof = "N"

              string HIGH_NAME = "ZZZZZ"

              InputFile newSales

              InputFile usedSales

              OutputFile allsales

      getReady()

      while bothAtEof = "Y"

              detailLoop()

      endwhile

      finish()

stop

getReady()

      open newSales "NewSales.dat"

      open usedSales "UsedSales.dat"

      open allSales "AllSales.dat"

      input newSalesperson, newAmount from newSales

      if eof then

          usedSalesperson = HIGH_NAME

      endif

      input usedSalesperson, usedAmount from usedSales

      if eof then

          usedsalesPerson = HIGH_NAME

      endif

      if newSalesperson = HIGH_NAME AND usedSalesperson = HIGH_NAME then

          bothAtEof = "Y"

      endif

return

detailLoop()

      if newSalesperson > usedSalesperson then

            output usedSalesperson, usedAmount to allSales

            input newSalesperson, newAmount from newSales

            if eof then

                usedSalesperson = HIGH_NAME

            endif

      else

            output newSalesperson, newAmount to allSales

            input usedSalesperson, usedAmount from usedSales

            if eof then

                newSalesperson = HIGH_NAME

            endif

      endif

      if newSalesperson = HIGH_NAME AND usedSalesperson = HIGH_NAME then

          bothAtEof = "Y"

      endif

return

finish()

      close newSales

      close usedSales

      close allSales

return

2.    Debugging

Two senior class homerooms at Littleville High School are having a fundraising drive for the prom. Each time a student solicits a contribution, a record is created with the student's name and the value. Two files have been created for Homeroom A and Homeroom B. Each file is sorted in contribution value order from highest to lowest. This program merges the two files.

start

      Declarations

              string roomAName

              num roomAValue

              string roomBName

              num roomBValue

              string bothFilesDone = "N"

              num HIGH_VALUE = 999999

              InputFile roomAFile

              InputFile roomBFile

              InputFile mergedFile

      getReady()

      while bothFilesDone = "N"

            detailLoop()

      endwhile

      allDone()

stop

getReady()

      open roomAFile "roomAFile.dat"

      open roomBFile "roomBFile.dat"

      open mergedFile "mergedFile.dat"

      readA()

      readB()

      checkBoth()

return

readA()

      input roomAName, roomAValue from roomAFile

      if eof then

            roomAValue = HIGH_VALUE

      endif

return

readB()

      input roomBName, roomBValue from roomBFile

      if eof then

            roomBValue = HIGH_VALUE

      endif

return

checkBoth()

      if roomAValue = HIGH_VALUE AND roomBValue = HIGH_VALUE then

            bothFilesDone = "Y"

      endif

return

detailLoop()

      if roomAValue > roomBValue then

            output roomBName, roomBValue to mergedFile

            readA()

      else

            output roomAName, roomAValue to mergedFile

            readB()

      endif

return

allDone()

      close roomAFile

      close roomBFile

      close mergeFile

return

Explanation / Answer

Chapter--7:--

1-Debugging:-

start
Declarations
string newSalesperson
num newAmount
string usedSalesperson
num usedAmount
string bothAtEof = "N"
string HIGH_NAME = "ZZZZZ"
InputFile newSales
InputFile usedSales
OutputFile allsales
getReady()
while bothAtEof = "N"
detailLoop()
endwhile
finish()
stop

getReady()
open newSales "NewSales.dat"
open usedSales "UsedSales.dat"
open allSales "AllSales.dat"

input newSalesperson, newAmount from newSales
if eof then
newSalesperson = HIGH_NAME
endif
input usedSalesperson, usedAmount from usedSales
if eof then
usedSalesperson = HIGH_NAME
endif
if newSalesperson = HIGH_NAME AND usedSalesperson = HIGH_NAME then
bothAtEof = "Y"
endif
return

detailLoop()
if newSalesperson > usedSalesperson then
output usedSalesperson, usedAmount to allSales
input usedSalesperson, usedAmount from usedSales
if eof then
usedSalesperson = HIGH_NAME
endif
else
output newSalesperson, newAmount to allSales
input newSalesperson, newAmount from newSales
if eof then
newSalesperson = HIGH_NAME
endif
endif
if newSalesperson = HIGH_NAME AND usedSalesperson = HIGH_NAME then
bothAtEof = "Y"
endif
return

finish()
close newSales
close usedSales
close allSales
return