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

// Each time a salesperson sells a car at the // Pardeeville New and Used Auto D

ID: 3720966 • Letter: #

Question

// 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 one type
// of sale or the other. However, management has requested
// a merged file so that all of a salesperson’s sales,
// whether the vehicle was new or used,
// are displayed together. 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

1. Your downloadable files for Chapter 7 include DEBUG07-01.txt, DEBUG07-02.txt, and DEBUG07-03.txt. Each file starts with some comments that describe the problem. Comments are lines that begin with two slashes (//). Following the comments, each file contains pseudocode that has one or more bugs you must find and correct.

Explanation / Answer

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