gnucobol-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[open-cobol-list] PLEASE HELP new to coboL PROGRAMMING


From: rathin
Subject: [open-cobol-list] PLEASE HELP new to coboL PROGRAMMING
Date: Mon, 20 Dec 2010 17:49:43 +0530

SIR,
       I AM NEW TO COBOL PROGRAMMING . IT WOULD BE VERY KIND OF YOU IF
IT BE TAUGHT BY EXAMPLE BELOW IS A PROGRAM TAKEN FROM THE NET. SO SIR
IF YOU CAN KINDLY PUT IT IN THE OPEN COBOL FORMAT THAN IT WOULD BE EASIER FOR ME TO UNDERSTAND.
I SUCCESSFULLY INSTALLED OPEN COBOL 1.0 AND THE COBC HAS BEEN SUCCESSFULLY COMPILED.
SIR KINDLY CHANGE IT TO OPEN COBOL FORMAT SO THAT I CAN IDENTIFY THE DIFFERENCE AND LEARN IT STEP BY STEP
THANKING YOU

RATHINDRA NATH KARMAKAR






The Cobol Program shown below calculates employee payroll information given the tax deduction table for the employee.

IDENTIFICATION DIVISION.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT TAX-TABLE-FILE ASSIGN TO  "INPUT-FILE"
                                    ORGANIZATION IS LINE SEQUENTIAL.
           SELECT SALARY-FILE ASSIGN TO "INPUT-FILE"
                  ORGANIZATION IS LINE SEQUENTIAL.
           SELECT SALARY-REPORT ASSIGN TO "OUTPUT-FILE"
                  ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
      *
       FD  TAX-TABLE-FILE
           LABEL RECORDS ARE STANDARD.
       01  TAX-TABLE-REC.
           05  T-MAX-TAX-INCOME             PIC 9(06).
           05  T-FED-TAX                    PIC V9(3).
           05  T-STATE-TAX                  PIC V9(3).
           05                               PIC X(68).
       FD  SALARY-FILE
           LABEL RECORDS ARE STANDARD.
       01  SALARY-FILE-REC.
           05  EMPLOYEE-NO                  PIC 9(05).
           05  EMPLOYEE-NAME                PIC X(20).
           05                               PIC X(03).
           05  ANNUAL-SALARY                PIC 9(05).
           05                               PIC X(08).
           05  NO-DEPENDENTS                PIC 9(01).
           05                               PIC X(38).
       FD  SALARY-REPORT
           RECORD CONTAINS 80 CHARACTERS.
       01  SALARY-REPORT-REC                PIC X(80).
      *
       WORKING-STORAGE SECTION.
       01  WORKING-ITEMS.
           05  MORE-RECS                    PIC X(01).
           05  X1                           PIC 9(02).
           05  MORE-TABLE-RECS              PIC X(01)  VALUE 'Y'.
           05  FED-TAX-DEDUCTION            PIC 9(05).
           05  STATE-TAX-DEDUCTION          PIC 9(05).
           05  MONTHLY-TAKE-HOME-PAY        PIC 9(05)V9(02).
           05  FOUND-MATCH                  PIC X(01)  VALUE 'N'.
           05  TEMP-INCOME                  PIC 9(06)  VALUE ZEROES.
       01  WS-DATE.
           05  WS-DATE-YEAR                 PIC 9(02).
           05  WS-DATE-MONTH                PIC 9(02).
           05  WS-DATE-DAY                  PIC 9(02).
       01  WS-REPORT-DATE.
           05  RD-MONTH                     PIC 9(02).
           05                               PIC X(01)  VALUE '/'.
           05  RD-DAY                       PIC 9(02).
           05                               PIC X(01)  VALUE '/'.
           05  RD-YEAR                      PIC 9(02).
       01  TAX-TABLE.
           05  TABLE-ENTRIES OCCURS 6 TIMES.
               10  WS-MAX-TAX-INCOME        PIC 9(06).
               10  WS-FED-TAX               PIC V9(3).
               10  WS-STATE-TAX             PIC V9(3).
       01  HEADER-1.
           05                               PIC X(12).
           05                               PIC X(21)  VALUE
                           'MONTHLY SALARY REPORT'.
           05                               PIC X(03).
           05  DATE-OUT                     PIC 99/99/99.
           05                               PIC X(02).
      *    05                               PIC X(04)  VALUE
      *                    'PAGE'.
      *    05  PAGE-OUT                     PIC 9(02).
       01  HEADER-2.
           05                               PIC X(08)  VALUE
                           'EMPLOYEE'.
           05                               PIC X(19).
           05                               PIC X(17)  VALUE
                           'MONTHLY TAKE HOME'.
       01  HEADER-3.
           05                               PIC X(02).
           05                               PIC X(04)  VALUE
                           'NAME'.
           05                               PIC X(28).
           05                               PIC X(03)  VALUE
                           'PAY'.
       01  LIST-LINE-1.
           05  EMPLOYEE-NAME-OUT            PIC X(20).
           05                               PIC X(11).
           05  MONTHLY-TAKE-HOME-PAY-OUT    PIC $ZZ,ZZZ.99.
       01  LIST-LINE-2.
           05                               PIC X(05).
           05                               PIC X(35) VALUE
                           'NO MATCH WAS FOUND IN THE TAX TABLE'.
       PROCEDURE DIVISION.
       000-MAIN-RTN.
           PERFORM 100-INITIALIZE-RTN
           PERFORM 200-TABLE-ENTRY
           PERFORM 300-PROCESS-RTN
                       UNTIL MORE-RECS = 'N'
           PERFORM 900-CLOSE-FILES-RTN.
       100-INITIALIZE-RTN.
           OPEN INPUT  TAX-TABLE-FILE
                       SALARY-FILE
                OUTPUT SALARY-REPORT
           MOVE 'Y' TO MORE-RECS
           PERFORM 110-SET-DATE-RTN
           PERFORM 120-WRITE-HEADERS-RTN.
       110-SET-DATE-RTN.
           ACCEPT WS-DATE FROM DATE
           MOVE WS-DATE-YEAR TO RD-YEAR
           MOVE WS-DATE-MONTH TO RD-MONTH
           MOVE WS-DATE-DAY TO RD-DAY
           MOVE WS-REPORT-DATE TO DATE-OUT.
       120-WRITE-HEADERS-RTN.
           WRITE SALARY-REPORT-REC FROM HEADER-1
                         AFTER ADVANCING 5 LINES
           WRITE SALARY-REPORT-REC FROM HEADER-2
                         AFTER ADVANCING 2 LINES
           WRITE SALARY-REPORT-REC FROM HEADER-3
                          AFTER ADVANCING 1 LINE.
       200-TABLE-ENTRY.
           PERFORM VARYING X1 FROM 1 BY 1
                           UNTIL X1 > 7 OR MORE-TABLE-RECS = 'N'
               READ TAX-TABLE-FILE
                   AT END
                       MOVE 'N' TO MORE-TABLE-RECS
                   NOT AT END
                       PERFORM 250-TABLE-LOAD
               END-READ
           END-PERFORM
           IF X1 < 7
               DISPLAY 'TOO FEW RECORDS IN THE FILE'
           END-IF
           IF MORE-TABLE-RECS NOT = 'N'
               DISPLAY 'TOO MANY RECORDS IN THE FILE'
           END-IF.
       250-TABLE-LOAD.
           MOVE T-MAX-TAX-INCOME TO WS-MAX-TAX-INCOME (X1)
           MOVE T-FED-TAX TO WS-FED-TAX (X1)
           MOVE T-STATE-TAX TO WS-STATE-TAX (X1).
       300-PROCESS-RTN.
           READ SALARY-FILE
               AT END
                   MOVE 'N' TO MORE-RECS
               NOT AT END
                   PERFORM 350-COMPARE-RTN
           END-READ.
       350-COMPARE-RTN.
           MOVE 1 TO X1
           PERFORM 353-INCREMENT-SUBSCRIPT-RTN
                          UNTIL FOUND-MATCH = 'Y' OR X1 > 7
           IF X1 > 7 AND FOUND-MATCH = 'N'
               THEN WRITE SALARY-REPORT-REC FROM LIST-LINE-2
               CONTINUE
           END-IF
           PERFORM 356-CALCULATE-RTN
           PERFORM 359-WRITE-RTN
           MOVE 'N' TO FOUND-MATCH
           MOVE ZEROES TO TEMP-INCOME.
       353-INCREMENT-SUBSCRIPT-RTN.
           IF ANNUAL-SALARY > TEMP-INCOME AND <= WS-MAX-TAX-INCOME (X1)
               THEN MOVE 'Y' TO FOUND-MATCH
           ELSE
               MOVE WS-MAX-TAX-INCOME (X1) TO TEMP-INCOME
               ADD 1 TO X1
           END-IF.
       356-CALCULATE-RTN.
           COMPUTE FED-TAX-DEDUCTION =
                      ANNUAL-SALARY * WS-FED-TAX (X1)
           COMPUTE STATE-TAX-DEDUCTION =
                      ANNUAL-SALARY * WS-STATE-TAX (X1)
           COMPUTE MONTHLY-TAKE-HOME-PAY = (ANNUAL-SALARY -
                        (FED-TAX-DEDUCTION + STATE-TAX-DEDUCTION))/12.
       359-WRITE-RTN.
           MOVE EMPLOYEE-NAME TO EMPLOYEE-NAME-OUT
           MOVE MONTHLY-TAKE-HOME-PAY TO MONTHLY-TAKE-HOME-PAY-OUT
           WRITE SALARY-REPORT-REC FROM LIST-LINE-1
                            AFTER ADVANCING 1 LINE.
       900-CLOSE-FILES-RTN.
           CLOSE TAX-TABLE-FILE
                 SALARY-FILE
                 SALARY-REPORT
           STOP RUN.

"The information contained in this electronic message and any attachments to this 
message are intended for exclusive use of the addressee(s) and may contain 
confidential or privileged information. If you are not the intended recipient, please 
notify the sender at LIC OF INDIA or address@hidden immediately and 
destroy all copies of this message and any attachments. The views expressed in 
this E-mail message / Attachments, are those of the individual sender."

reply via email to

[Prev in Thread] Current Thread [Next in Thread]