Monday, 23 May 2011

COBOL EBIL PROGRAM


       IDENTIFICATION DIVISION.
       PROGRAM-ID. EBIL.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT EBIL ASSIGN TO DISK.

       DATA DIVISION.
       FILE SECTION.
       FD EBIL
           VALUE OF FILE-ID "EBIL.TXT"
           LABEL RECORDS ARE STANDARD.
       01 RECO.
         02 NAME PIC A(30).
         02 TYPE PIC X.
         02 CNUM PIC X(4).
         02 CITY PIC A(12).
         02 COSP PIC 9(7).
       WORKING-STORAGE SECTION.
       01 CH PIC 9.
       01 J PIC X.
       01 EOF PIC A VALUE IS "N".
     
       PROCEDURE DIVISION.
       START-PROG.
           PERFORM MMENU.
           STOP RUN.

       MMENU.
           DISPLAY (1, 1) ERASE.
           DISPLAY (1, 24)  "************************************".
           DISPLAY (2, 24)  "²²        ELECTRICITY BILL        ²²".
           DISPLAY (3, 24)  "************************************".
           DISPLAY (5, 35)  "²² MAIN MENU ²²".
           DISPLAY (7, 24)  "|----------------------------------|".
           DISPLAY (8, 24)  "|                                  |".
           DISPLAY (9, 24)  "|   PRESS 1 TO MAKE NEW FILE.      |".
           DISPLAY (10, 24) "|                                  |".
           DISPLAY (11, 24) "|   PRESS 2 TO VIEW LIST.          |".
           DISPLAY (12, 24) "|                                  |".
           DISPLAY (13, 24) "|   PRESS 3 TO VIEW DETAILED BILL. |".
           DISPLAY (14, 24) "|                                  |".
           DISPLAY (15, 24) "|   PRESS 4 TO APPEND DATA.        |".
           DISPLAY (16, 24) "|                                  |".
           DISPLAY (17, 24) "|   PRESS 5 TO EXIT THE PROGRAM.   |".
           DISPLAY (18, 24) "|                                  |".
           DISPLAY (19, 24) "|----------------------------------|".
           DISPLAY (21, 24) "ENTER YOUR CHOICE: ", ACCEPT (21, 45) CH.

           IF CH = 1
              PERFORM ADDDATA
              GO TO MMENU
           ELSE IF CH = 2
              PERFORM MVIEW
           ELSE IF CH = 3
              PERFORM DSHOW
           ELSE IF CH = 4
              PERFORM APPDATA
           ELSE IF CH = 5
              PERFORM MEXIT
           ELSE
              DISPLAY (1, 1) ERASE
              DISPLAY (15, 20) "YOUR ENTERED CHOICE IS NOT VALID"
              ACCEPT J.
              GO TO MMENU.

       ADDDATA.
           DISPLAY (1, 1) ERASE.
           DISPLAY (2, 27) "²² ADD DATA TO NEW FILE ²²".
           OPEN OUTPUT EBIL.
           DISPLAY (6, 2)  "CUSTOMER'S NAME        : ".
           ACCEPT (6, 35) NAME.
           DISPLAY (8, 2)  "CUSTOMER TYPE          : ".
           DISPLAY (9, 3)  "TYPE 1 - INDUSTRIAL".
           DISPLAY (10, 3) "TYPE 2 - EDUCATIONAL".
           DISPLAY (11, 3) "TYPE 3 - GOVERNMENT".
           DISPLAY (12, 3) "TYPE 4 - HOUSHOLD".
           ACCEPT (8, 35) TYPE.
           DISPLAY (14, 2) "CUSTOMER NUMBER        : ".
           ACCEPT (14, 35) CNUM.
           DISPLAY (16, 2) "CUSTOMER'S CITY        : ".
           ACCEPT (16, 35) CITY.
           DISPLAY (18, 2) "CONSUMPTION (UNITS)    : ".
           ACCEPT (18, 35) COSP.
           WRITE RECO.
           CLOSE EBIL.

       MVIEW.
           DISPLAY (1, 1) ERASE.
           DISPLAY (2, 27) "²²    TYPEWISE VIEW     ²²".
           DISPLAY (4, 2) "==========================================";
           "====================================".
           DISPLAY (5, 2)  "NAME".
           DISPLAY (5, 25) "TYPE".
           DISPLAY (5, 40) "NO.".
           DISPLAY (5, 45) "CITY".
           DISPLAY (5, 60) "CONSUMPTION".
           DISPLAY (6, 2) "------------------------------------------";
           "------------------------------------".
           MOVE "N" TO EOF.
           OPEN INPUT EBIL.
           MOVE 7 TO LIN.
           PERFORM MSHOW UNTIL EOF = "Y".
           CLOSE EBIL.
           ACCEPT J.

       MSHOW.
           READ EBIL RECORDS AT END MOVE "Y" TO EOF.
           IF EOF = "N"
                DISPLAY (LIN, 2) NAME
                PERFORM MVS
                DISPLAY (LIN, 40) CNUM
                DISPLAY (LIN, 45) CITY
                DISPLAY (LIN, 60) COSP
                ADD 1 TO LIN.
             
       MVS.
                IF TYPE = "1"
                   DISPLAY (LIN, 25) "INDUSTRIAL"
                ELSE IF TYPE = "2"
                   DISPLAY (LIN, 25) "EDUCATIONAL"
                ELSE IF TYPE = "3"
                   DISPLAY (LIN, 25) "GOVERNMENTAL"
                ELSE IF TYPE = "4"
                   DISPLAY (LIN, 25) "HOUSEHOLD" .

       APPDATA.
           DISPLAY (1, 1) ERASE.
           DISPLAY (2, 27) "²² ADD DATA TO OLD FILE ²²".
           OPEN EXTEND EBIL.
           DISPLAY (6, 2)  "CUSTOMER'S NAME        : ".
           ACCEPT (6, 35) NAME.
           DISPLAY (8, 2)  "CUSTOMER TYPE          : ".
           DISPLAY (9, 3)  "TYPE 1 - INDUSTRIAL".
           DISPLAY (10, 3) "TYPE 2 - EDUCATIONAL".
           DISPLAY (11, 3) "TYPE 3 - GOVERNMENT".
           DISPLAY (12, 3) "TYPE 4 - HOUSHOLD".
           ACCEPT (8, 35) TYPE.
           DISPLAY (14, 2) "CUSTOMER NUMBER        : ".
           ACCEPT (14, 35) CNUM.
           DISPLAY (16, 2) "CUSTOMER'S CITY        : ".
           ACCEPT (16, 35) CITY.
           DISPLAY (18, 2) "CONSUMPTION (UNITS)    : ".
           ACCEPT (18, 35) COSP.
           WRITE RECO.
           CLOSE EBIL.

       DSHOW.
           DISPLAY (1, 1) ERASE.
           DISPLAY (2, 27) "²²    DETAILED VIEW     ²²".

       MEXIT.
           DISPLAY (1, 1) ERASE.
           DISPLAY (12, 22) "²²²² THANKS FOR USING THE PROGRAM ²²²²".
           STOP RUN.

No comments:

Post a Comment