PROGRAM 7
IDENTIFICATION DIVISION.
PROGRAM-ID. PROJECT7.
AUTHOR. ANTHONY F. ORTIZ.
****************************************************
* THIS PROGRAM CREATES A FAST FOOD SALES REPORT. *
****************************************************
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO DISK "A:\ONE.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT OUT-FILE ASSIGN TO PRINTER.
FILE SECTION.
FD IN-FILE LABEL RECORD IS STANDARD.
01 IN-RECORD.
02 IN-DISTRICT-NUMBER PIC 9(4).
02 FILLER PIC X(2).
02 IN-FRANCHISE-NUMBER PIC 9(3).
02 IN-FRANCHISE-OWNER PIC X(20).
02 FILLER PIC X(21).
02 IN-SALES-CODE PIC 9(1).
02 FILLER PIC X(4).
02 IN-DAILY-SALES PIC 9(4)V99.
FD OUT-FILE.
01 OUT-BUFFER PIC X(80).
WORKING-STORAGE SECTION.
01 OUT-RECORD.
02 FILLER PIC X(2).
02 OUT-DISTRICT-NUMBER PIC 9(4).
02 FILLER PIC X(7).
02 OUT-FRANCHISE-NUMBER PIC 9(3).
02 FILLER PIC X(4).
02 OUT-FRANCHISE-OWNER PIC X(20).
02 FILLER PIC X(4).
02 OUT-SALES-CATEGORY PIC X(19).
02 FILLER PIC X(4).
02 OUT-DAILY-SALES PIC Z,ZZZ.99.
01 WORK-DATE.
02 WORK-YEAR PIC 99.
02 WORK-MONTH PIC 99.
02 WORK-DAY PIC 99.
01 PROGRAM-INDICATORS.
02 EOF-SWITCH PIC X(3) VALUE 'YES'.
01 PROGRAM-COMPARE-AREA.
02 COMPARE-DISTRICT-NUMBER PIC 9(4).
01 PROGRAM-COUNTERS-TOTALS.
02 PAGE-COUNTER PIC 99 VALUE 1.
02 LINE-COUNTER PIC 99 VALUE ZERO.
02 TOTAL-DISTRICT-SALES PIC 9(5)V99 VALUE ZERO.
02 TOTAL-SALES PIC 9(6)V99 VALUE ZERO.
01 PROGRAM-TABLES.
05 SALES-TABLE.
10 SALES-CONSTANTS.
15 FILLER PIC X(19)
VALUE 'OVER 1 MILLION SOLD'.
15 FILLER PIC X(19)
VALUE 'OVER 2 MILLION SOLD'.
15 FILLER PIC X(19)
VALUE 'OVER 3 MILLION SOLD'.
15 FILLER PIC X(19)
VALUE 'OVER 4 MILLION SOLD'.
15 FILLER PIC X(19)
VALUE 'OVER 5 MILLION SOLD'.
15 FILLER PIC X(19)
VALUE 'OVER 6 MILLION SOLD'.
10 SALE-TABLE REDEFINES SALES-CONSTANTS
PIC X(19)
OCCURS 6 TIMES.
01 ERROR-LINE.
02 ERROR-MESSAGE.
03 FILLER PIC X(46)
VALUE 'FAST FOOD SALES REPORT - NO RECORDS TO PROCESS'.
01 HEADER-LINES.
02 HEADER-LINE1.
03 OUT-MONTH PIC 99.
03 FILLER PIC X VALUE '/'.
03 OUT-DAY PIC 99.
03 FILLER PIC X VALUE '/'.
03 OUT-YEAR PIC 99.
03 FILLER PIC X(23) VALUE SPACES.
03 FILLER PIC X(15)
VALUE 'FAST FOOD SALES'.
03 FILLER PIC X(20) VALUE SPACES.
03 FILLER PIC X(5) VALUE 'PAGE '.
03 OUT-PAGE-COUNTER PIC ZZ9.
02 HEADER-LINE2.
03 FILLER PIC X(8) VALUE 'DISTRICT'.
03 FILLER PIC X(2) VALUE SPACES.
03 FILLER PIC X(9) VALUE 'FRANCHISE'.
03 FILLER PIC X(5) VALUE SPACES.
03 FILLER PIC X(9) VALUE 'FRANCHISE'.
03 FILLER PIC X(16) VALUE SPACES.
03 FILLER PIC X(5) VALUE 'SALES'.
03 FILLER PIC X(15) VALUE SPACES.
03 FILLER PIC X(5) VALUE 'DAILY'.
02 HEADER-LINE3.
03 FILLER PIC X(1) VALUE SPACES.
03 FILLER PIC X(6) VALUE 'NUMBER'.
03 FILLER PIC X(4) VALUE SPACES.
03 FILLER PIC X(6) VALUE 'NUMBER'.
03 FILLER PIC X(9) VALUE SPACES.
03 FILLER PIC X(5) VALUE 'OWNER'.
03 FILLER PIC X(17) VALUE SPACES.
03 FILLER PIC X(8) VALUE 'CATEGORY'.
03 FILLER PIC X(13) VALUE SPACES.
03 FILLER PIC X(5) VALUE 'SALES'.
01 TOTAL-LINES.
02 TOTAL-LINE1.
03 FILLER PIC X(36) VALUE SPACES.
03 FILLER PIC X(23)
VALUE 'TOTAL SALES - DISTRICT '.
03 DISTRICT-TOTAL PIC ZZZ9.
03 FILLER PIC X(3) VALUE SPACES.
03 OUT-TOTAL-DISTRICT-SALES PIC ZZ,ZZZ.99.
03 FILLER PIC X(1) VALUE '*'.
02 TOTAL-LINE2.
03 FILLER PIC X(36) VALUE SPACES.
03 FILLER PIC X(28)
VALUE 'FINAL TOTAL - ALL DISTRICTS '.
03 OUT-TOTAL-SALES PIC $ZZZ,ZZZ.99.
03 FILLER PIC X(2) VALUE '**'.
PROCEDURE DIVISION.
MAIN-LINE.
PERFORM OPEN-FILES.
PERFORM READ-RECORD.
IF EOF-SWITCH = 'YES'
PERFORM INITIALIZE-COMPARE-FIELD
PERFORM PRINT-HEADER-LINES
PERFORM PROCESS-RECORD UNTIL EOF-SWITCH = 'NO '
PERFORM PRINT-TOTAL-LINE2
ELSE
PERFORM PRINT-ERROR-MESSAGE-LINE.
PERFORM CLOSE-FILES.
STOP RUN.
OPEN-FILES.
OPEN INPUT IN-FILE OUTPUT OUT-FILE.
READ-RECORD.
READ IN-FILE AT END MOVE 'NO ' TO EOF-SWITCH.
INITIALIZE-COMPARE-FIELD.
MOVE IN-DISTRICT-NUMBER TO COMPARE-DISTRICT-NUMBER.
PRINT-HEADER-LINES.
ACCEPT WORK-DATE FROM DATE.
MOVE WORK-MONTH TO OUT-MONTH.
MOVE WORK-DAY TO OUT-DAY.
MOVE WORK-YEAR TO OUT-YEAR.
MOVE PAGE-COUNTER TO OUT-PAGE-COUNTER.
WRITE OUT-BUFFER FROM HEADER-LINE1
AFTER ADVANCING PAGE.
WRITE OUT-BUFFER FROM HEADER-LINE2
AFTER ADVANCING 2 LINES.
WRITE OUT-BUFFER FROM HEADER-LINE3
AFTER ADVANCING 1 LINES.
ADD 4 TO LINE-COUNTER.
PROCESS-RECORD.
PERFORM MOVE-IN-OUT.
PERFORM WRITE-RECORD.
PERFORM READ-RECORD.
MOVE-IN-OUT.
MOVE SPACES TO OUT-RECORD.
MOVE IN-DISTRICT-NUMBER TO OUT-DISTRICT-NUMBER.
IF IN-DISTRICT-NUMBER IS NOT EQUAL TO
COMPARE-DISTRICT-NUMBER
PERFORM PRINT-TOTAL-LINE1.
MOVE IN-FRANCHISE-NUMBER TO OUT-FRANCHISE-NUMBER.
MOVE IN-FRANCHISE-OWNER TO OUT-FRANCHISE-OWNER.
MOVE SALE-TABLE (IN-SALES-CODE) TO OUT-SALES-CATEGORY.
MOVE IN-DAILY-SALES TO OUT-DAILY-SALES.
PERFORM CALCULATE-COUNTERS-TOTALS.
PRINT-TOTAL-LINE1.
MOVE COMPARE-DISTRICT-NUMBER TO DISTRICT-TOTAL.
MOVE TOTAL-DISTRICT-SALES TO OUT-TOTAL-DISTRICT-SALES.
WRITE OUT-BUFFER FROM TOTAL-LINE1
AFTER ADVANCING 2 LINES.
ADD 2 TO LINE-COUNTER.
COMPUTE TOTAL-DISTRICT-SALES = 0.
MOVE IN-DISTRICT-NUMBER TO COMPARE-DISTRICT-NUMBER.
CALCULATE-COUNTERS-TOTALS.
COMPUTE LINE-COUNTER = LINE-COUNTER + 2.
COMPUTE TOTAL-DISTRICT-SALES = TOTAL-DISTRICT-SALES
+ IN-DAILY-SALES.
COMPUTE TOTAL-SALES = TOTAL-SALES + IN-DAILY-SALES.
IF LINE-COUNTER > 52
ADD 1 TO PAGE-COUNTER
PERFORM PRINT-HEADER-LINES
COMPUTE LINE-COUNTER = 0.
WRITE-RECORD.
WRITE OUT-BUFFER FROM OUT-RECORD
AFTER ADVANCING 2 LINES.
PRINT-TOTAL-LINE2.
PERFORM PRINT-TOTAL-LINE1.
MOVE TOTAL-SALES TO OUT-TOTAL-SALES.
WRITE OUT-BUFFER FROM TOTAL-LINE2
AFTER ADVANCING 2 LINES.
PRINT-ERROR-MESSAGE-LINE.
WRITE OUT-BUFFER FROM ERROR-LINE
AFTER ADVANCING PAGE.
CLOSE-FILES.
CLOSE IN-FILE OUT-FILE.
* DATA FILE: ONE.DAT *
100101410ALBERS, STEVEN FRONT DISC BRAKES 422034031045
100101561CANATERRA, CANDY HEAD LIGHTS 163045075105
100101765CHENEY, MAXINE NYLON GAS PEDALS 114034007016
100101813CRAIG, MARY LOU BUCKET SEAT 243457010005
100301887DUFFY, MARCUS 1" TRAILER HITCH 122356002010
100301914EPPLY, DERVIS TOWQUE WRENCHES 413056110213
100301957FIEDLER, FERN 4 PLY RADIAL TIRES 150345056075
100502045GARCIA, FRANCIS 6" JUMPER CABLES 221233004011
100502076KOON, BARNEY L. SETS OF 4 HEX NUTS 310340005017
100502189KOWALSKI, PATRICK 5" WINDSHIELD BLADES330567023020
100502201LICHFIELD, SANDRA PLASTIC FLOOR MATS 660450047192
100502250LUBNER, SALLY R. WOOD STEERING WHEELS545459102365
100602275MARQUARDT, MICHAEL POINTS AND PLUGS 613455002078
100602323MARTIN, JUSTIN B. LOCK DE-ICER 230983010045
100602357MCGILL, MARTIN J. MOTORALL 10W30 OIL 345676023056
100602789MEEGAN, JULIE R. GENERATORS 365678090900
100603578MUFFINS, ROGERT L. 1/2" VACUUM LINES 116787004098
100603971NAPOLITAN, SHEILA R.METRIC SOCKET SETS 450123103134
100703898NOWICKI, OZZIE L. FLOOR CLEANER 623456004021
100704456PEACOCK, GERALD M. 2 TON CAR RAMPS 610045010024
100704692PEREZ, MARTINIQUE A.TRANSMISSION KITS 250173080076
100704789POSTEN, THOMAS E. OIL PANS 541234011078
100704987REESES, LAURA W. OPERATORS MANUALS 522894001099
100705139RENO, STEVEN B. HI/LO DIMMER SWITCH 610639010020
100705983ROGHCHILD, RUTH C. RACING STRIPE KITS 133404045089
100805999SAMMS, CARLA P. OIL CHANGE KIT 669234090100
100806134SCHMIDT, CHUCK H. INTERIOR LIGHT BULBS312302004050
100806297SHARP, CRAIG I. SET OF 2 FOG LIGHTS 237809001008
100806356SHORT, BRENDA B. DISTRIBUTOR CAPS 429834010023
100806489SKINNER, CARL S. TIMING GEARS 250789110023
100806598SPRINGSTEIN, ALBERT SECURITY SYSTEM 460929010067
100806701STROH, ALEXIS M. CRUISE CONTROLS 342856055067
200107980SWEENEY, ROGER W. SET OF 4 HUB CAPS 350345067078
200108379TEEPLE, THOMAS T. AXLE GREASE (GALLON)512347001023
200108567TOMCHUCK, FREDERICK NO-WIPE CAR POLISH 130375004056
200108673TOMLIN, PETER S. CAR WAXERS 269845090020
200108674TOWNLEY, ASTIN R. GREASE-B-GONE WASHER455628034056
200108732TOWNS, BEVERLY SUNNY SUNROOF KIT 422345011045
200308845TRAKSO, ALLEN R. ROAD MAPS 610304001005
200308913TRUSKOWSKI, MIKE 2-WAY OIL FILTER 123040010052
200308957TURNER, CHARLES A. ENGINE BLOCKS 540378402098
200308975TYLER, MARY M. TRANSMISSION FLUID 530923045056
200509003ULMER, FRED F. NO-SLIP BRAKE FLUID 240450050067
200509156URMY, AMY A. NO-LEAK RADIATORS 419340120344
200509245VARTY, VERNON S. SPARKLES PAINT 620098009009
200509347VINCENT, BOBBY L. CHROME POLISH 362984019090
200709467WADHAM, LARRY L. VINYL TOP KITS 140086087078
200709610WALKER, JERRY F. 6" ROUND HEADLIGHTS 655870087090
200709763WENDT, WENDY Y. NO-FUZZ FUZZ BUSTER 424598030030
200709908ZELLER, ARTHUR GLASS WINDOWS 118890200230
* OUTFILE: PROG7.OUT *
03/05/99 FAST FOOD SALES PAGE 1
DISTRICT FRANCHISE FRANCHISE SALES DAILY
NUMBER NUMBER OWNER CATEGORY SALES
1001 410 ALBERS, STEVEN OVER 2 MILLION SOLD 310.45
1001 561 CANATERRA, CANDY OVER 6 MILLION SOLD 751.05
1001 765 CHENEY, MAXINE OVER 1 MILLION SOLD 70.16
1001 813 CRAIG, MARY LOU OVER 4 MILLION SOLD 100.05
TOTAL SALES DISTRICT 1001 1,231.71*
1003 887 DUFFY, MARCUS OVER 2 MILLION SOLD 20.10
1003 914 EPPLY, DERVIS OVER 1 MILLION SOLD 1,102.13
1003 957 FIEDLER, FERN OVER 5 MILLION SOLD 560.75
TOTAL SALES DISTRICT 1003 1,682.98*
1005 045 GARCIA, FRANCIS OVER 2 MILLION SOLD 40.11
1005 076 KOON, BARNEY L. OVER 1 MILLION SOLD 50.17
1005 189 KOWALSKI, PATRICK OVER 3 MILLION SOLD 230.20
1005 201 LICHFIELD, SANDRA OVER 6 MILLION SOLD 471.92
1005 250 LUBNER, SALLY R. OVER 4 MILLION SOLD 1,023.65
TOTAL SALES DISTRICT 1005 1,816.05*
1006 275 MARQUARDT, MICHAEL OVER 1 MILLION SOLD 20.78
1006 323 MARTIN, JUSTIN B. OVER 3 MILLION SOLD 100.45
1006 357 MCGILL, MARTIN J. OVER 4 MILLION SOLD 230.56
1006 789 MEEGAN, JULIE R. OVER 6 MILLION SOLD 909.00
1006 578 MUFFINS, ROGERT L. OVER 1 MILLION SOLD 40.98
1006 971 NAPOLITAN, SHEILA R. OVER 5 MILLION SOLD 1,031.34
TOTAL SALES DISTRICT 1006 2,333.11*
1007 898 NOWICKI, OZZIE L. OVER 2 MILLION SOLD 40.21
1007 456 PEACOCK, GERALD M. OVER 1 MILLION SOLD 100.24
03/05/99 FAST FOOD SALES PAGE 2
DISTRICT FRANCHISE FRANCHISE SALES DAILY
NUMBER NUMBER OWNER CATEGORY SALES
1007 692 PEREZ, MARTINIQUE A. OVER 5 MILLION SOLD 800.76
1007 789 POSTEN, THOMAS E. OVER 4 MILLION SOLD 110.78
1007 987 REESES, LAURA W. OVER 2 MILLION SOLD 10.99
1007 139 RENO, STEVEN B. OVER I MILLION SOLD 100.20
1007 983 ROGHCHILD, RUTH C. OVER 3 MILLION SOLD 450.89
TOTAL SALES DISTRICT 1007 1,614.07*
1008 999 SAMMS, CARLA P. OVER 6 MILLION SOLD 901.00
1008 134 SCHMIDT, CHUCK H. OVER 1 MILLION SOLD 40.50
1008 297 SHARP, CRAIG I. OVER 3 MILLION SOLD 10.08
1008 356 SHORT, BRENDA B. OVER 2 MILLION SOLD 100.23
1008 489 SKINNER, CARL S. OVER 5 MILLION SOLD 1,100.23
1008 598 SPRINGSTEIN, ALBERT OVER 6 MILLION SOLD 100.67
1008 701 STROH, ALEXIS M. OVER 4 MILLION SOLD 550.67
TOTAL SALES DISTRICT 1008 2,803.38*
2001 980 SWEENEY, ROGER W. OVER 5 MILLION SOLD 670.78
2001 379 TEEPLE, THOMAS T. OVER 1 MILLION SOLD 10.23
2001 567 TOMCHUCK, FREDERICK OVER 3 MILLION SOLD 40.56
2001 673 TOMLIN, PETER S. OVER 6 MILLION SOLD 900.20
2001 674 TOWNLEY, ASTIN R. OVER 5 MILLION SOLD 340.56
2001 732 TOWNS, BEVERLY OVER 2 MILLION SOLD 110.45
TOTAL SALES DISTRICT 2001 2,072.78*
2003 845 TRAKSO, ALLEN R. OVER 1 MILLION SOLD 10.05
2003 913 TRUSKOWSKI, MIKE OVER 2 MILLION SOLD 100.52
2003 957 TURNER, CHARLES A. OVER 4 MILLION SOLD 4,020.98
2003 975 TYLER, MARY M. OVER 3 MILLION SOLD 450.56
TOTAL SALES DISTRICT 2003 4,582.11*
2005 003 ULMER, FRED F. OVER 4 MILLION SOLD 500.67
03/05/99 FAST FOOD SALES PAGE 3
DISTRICT FRANCHISE FRANCHISE SALES DAILY
NUMBER NUMBER OWNER CATEGORY SALES
2005 156 URMY, AMY A. OVER 1 MILLION SOLD 1,203.44
2005 245 VARTY, VERNON S. OVER 2 MILLION SOLD 90.09
2005 347 VINCENT, BOBBY L. OVER 6 MILLION SOLD 190.90
TOTAL SALES DISTRICT 2005 1,985.10*
2007 467 WADHAM, LARRY L. OVER 4 MILLION SOLD 870.78
2007 610 WALKER, JERRY F. OVER 5 MILLION SOLD 870.90
2007 763 WENDT, WENDY Y. OVER 2 MILLION SOLD 300.30
2007 908 ZELLER, ARTHUR OVER 1 MILLION SOLD 2,002.30
TOTAL SALES DISTRICT 2007 $4,044.28*
FINAL TOTAL ALL DISTRICTS $24,165.57**
BACK TO CIS165 PAGE.