You are on page 1of 3

000100************************************************************

000200*
IDENTIFICATION DIVISION
*
000300************************************************************
000400 IDENTIFICATION DIVISION.
000500 PROGRAM-ID.
PROGRAM5.
000600 AUTHOR.
GHOUSE.
000700 DATE-WRITTEN. 10/08/11.
000800 DATE-COMPILED. 10/08/11.
001000************************************************************
001100*
ENVIRONMENT DIVISION
*
001200************************************************************
001300 ENVIRONMENT DIVISION.
001400************************************************************
001500* THE INPUT-OUTPUT SECTION IDENTIFIES THE FILE NAMES USED *
001600* BY THE SYSTEM, SPECIFIES HOW THE PROGRAM ACCESSES THE *
001700* FILES AND WHAT INPUT-OUTPUT DEVICE IS USED FOR EACH
*
001800* FILE.
*
001900************************************************************
002000 INPUT-OUTPUT SECTION.
002100 FILE-CONTROL.
002110
SELECT PRODFILE ASSIGN TO PRODUCT.
002130************************************************************
002140*
DATA DIVISION
*
002150************************************************************
002160 DATA DIVISION.
002170 FILE SECTION.
002180 FD PRODFILE
002190
LABEL RECORDS ARE STANDARD
002200
BLOCK CONTAINS 0 RECORDS
002300
RECORD CONTAINS 24 CHARACTERS
002400
DATA RECORD IS PROD-REC.
002500 01 PROD-REC PIC X(24).
002700************************************************************
002800*
WORKING STORAGE SECTION
*
002900************************************************************
003000 WORKING-STORAGE SECTION.
003200************************************************************
003300*
RECORD LAYOUTS
*
003400************************************************************
003500************************************************************
003600*
EMPLOYEE RECORD LAYOUT
*
003700************************************************************
003710 01 PRODREC-LAYOUT.
003720
05 PROD-ID
PIC 9(5).
003730
05 PROD-NAME PIC X(15).
003740
05 PROD-COST PIC 9(3)V9(2).
003770************************************************************
003780*
REPORT LINES AND HEADINGS
*
003790************************************************************
004200************************************************************
004300*
FLAGS/SWITCHES
*
004400************************************************************
004500 01 FLAGS.
004510
05 PROD-FILE-FLAG PIC X.
004520
88 PROD-FILE-END
VALUE 'Y'.
004530
88 PROD-FILE-NOT-END VALUE 'N'.
004540************************************************************
004550*
COUNTERS AND ACCUMULATORS
*
004560************************************************************
004561 01 PROD-TABLE.

00010000
00020000
00030000
00040000
00050000
00060000
00070000
00080000
00100000
00110000
00120000
00130000
00140000
00150000
00160000
00170000
00180000
00190000
00200000
00210000
00211000
00213000
00214000
00215000
00216000
00217000
00218000
00219000
00220000
00230000
00240000
00250000
00270000
00280000
00290000
00300000
00320000
00330000
00340000
00350000
00360000
00370000
00371000
00372000
00373000
00374000
00377000
00378000
00379000
00420000
00430000
00440000
00450000
00451000
00452000
00453000
00454000
00455000
00456000
00456100

004562
05 PROD-ENTRIES OCCURS 50 TIMES
004563
ASCENDING KEY IS PROD-TBL-ID
004564
INDEXED BY P1.
004565
10 PROD-TBL-ID
PIC 9(5).
004566
10 PROD-TBL-NAME PIC X(15).
004567
10 PROD-TBL-COST PIC 9(3)V9(2).
004580************************************************************
004590*
CONSTANTS AND LITERALS
*
004600************************************************************
004700
004800************************************************************
004900*
SCRATCH AREA
*
005000************************************************************
005200
005300************************************************************
005400*
PROCEDURE DIVISION
*
005500************************************************************
005600 PROCEDURE DIVISION.
005800************************************************************
005900*
1000 MAINLINE PARAGRAPH
*
006000*
*
006100* THE MAINLINE PARAGRAPH CONTROLS THE ORDER IN WHICH THE *
006200* OTHER THREE MAJOR PARAGRAPHS ARE PROCESSED.
*
006300************************************************************
006400 1000-MAINLINE.
006500
PERFORM 2000-HOUSEKEEPING
006600
THRU 2000-HOUSEKEEPING-EXIT
006700
006900
PERFORM 3000-PROCESS
007000
THRU 3000-PROCESS-EXIT
007100
007200
PERFORM 8000-WRAP-UP
007300
THRU 8000-WRAP-UP-EXIT
007400
007600
STOP RUN.
007800************************************************************
007900*
2000 HOUSEKEEPING PARAGRAPH
*
008000*
*
008100* THE HOUSEKEEPING PARAGRAPH HANDLES ALL THE NECESSARY
*
008200* STEPS TO PREPARE THE PROGRAM FOR PROCESSING. THESE
*
008300* STEPS MAY INCLUDE OPENING FILES, INITIALIZING COUNTERS *
008400* AND ACCUMULATORS, READING THE FIRST RECORD, AND SO
*
008500* FORTH.
*
008600************************************************************
008700 2000-HOUSEKEEPING.
008800
SET PROD-FILE-NOT-END TO TRUE.
008810
OPEN INPUT PRODFILE.
008900
PERFORM 2100-PRODFILE-READ.
009100 2000-HOUSEKEEPING-EXIT.
009200
EXIT.
009300************************************************************
009310* OPENING AND READING FIRST RECORD
009320************************************************************
009330 2100-PRODFILE-READ.
009350
READ PRODFILE
009360
AT END SET PROD-FILE-END TO TRUE.
009380************************************************************
009390*
3000 PROCESS PARAGRAPH
*
009400*
*
009500* THE PROCESS PARAGRAPH PROCESSES THE INPUT DATA TO
*

00456200
00456300
00456400
00456500
00456600
00456700
00458000
00459000
00460000
00470000
00480000
00490000
00500000
00520000
00530000
00540000
00550000
00560000
00580000
00590000
00600000
00610000
00620000
00630000
00640000
00650000
00660000
00670000
00690000
00700000
00710000
00720000
00730000
00740000
00760000
00780000
00790000
00800000
00810000
00820000
00830000
00840000
00850000
00860000
00870000
00880000
00881000
00890000
00910000
00920000
00930000
00931000
00932000
00933000
00935000
00936000
00938000
00939000
00940000
00950000

009600* PRODUCE THE REQUIRED OUTPUT.


*
009700************************************************************
009800 3000-PROCESS.
009900
PERFORM VARYING P1 FROM 1 BY 1 UNTIL PROD-FILE-END
009910
PERFORM 3100-POPULATE-PROD-TABLE
009920
PERFORM 3200-DISPLAY-PROD-TABLE
009930
PERFORM 2100-PRODFILE-READ
010000
END-PERFORM.
010200 3000-PROCESS-EXIT.
010300
EXIT.
010400************************************************************
010500* POPULATING PRODUCT TABLE
010510************************************************************
010520 3100-POPULATE-PROD-TABLE.
010530
MOVE PROD-REC TO PRODREC-LAYOUT.
010540
MOVE PROD-ID TO PROD-TBL-ID(P1).
010550
MOVE PROD-NAME TO PROD-TBL-NAME(P1).
010560
MOVE PROD-COST TO PROD-TBL-COST(P1).
010594************************************************************
010595* DISPLAYING PRODUCT TABLE
010596************************************************************
010597 3200-DISPLAY-PROD-TABLE.
010599
DISPLAY 'PRODUCT ID : ', PROD-TBL-ID(P1).
010600
DISPLAY 'PRODUCT NAME : ', PROD-TBL-NAME(P1).
010601
DISPLAY 'PRODUCT COST : ', PROD-TBL-COST(P1).
010610************************************************************
010700*
8000 WRAP-UP PARAGRAPH
*
010800*
*
010900* THE WRAP-UP PARAGRAPH HANDLES THE CLEANING UP FUNCTIONS *
011000* SUCH AS CLOSING THE FILES USED BY THE PROGRAM.
*
011100************************************************************
011200 8000-WRAP-UP.
011300
CLOSE PRODFILE.
011500 8000-WRAP-UP-EXIT.
011600
EXIT.

00960000
00970000
00980000
00990000
00991000
00992000
00993000
01000000
01020000
01030000
01040000
01050000
01051000
01052000
01053000
01054000
01055000
01056000
01059400
01059500
01059600
01059700
01059900
01060000
01060100
01061000
01070000
01080000
01090000
01100000
01110000
01120000
01130000
01150000
01160000

You might also like