       IDENTIFICATION DIVISION.
       PROGRAM-ID. ACCOUNT-BALANCE-CHECKING.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SOURCE-COMPUTER.
       OBJECT-COMPUTER.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT JOURNAL-FILE ASSIGN TO DISK
           ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD  JOURNAL-FILE
           LABEL RECORDS ARE STANDARD
           VALUE OF FILE-ID IS "JOURNAL.TXT"
           DATA RECORD IS JOUR-REC.
       01  JOUR-REC.
           02 TRAN-DATE PIC 99/99/99.
           02 DEBIT-AC      PIC X(20).
           02 CREDIT-AC     PIC X(20).
           02 TRAN-AMOUNT   PIC 9(10)V99.
       WORKING-STORAGE SECTION.
       77  TOT-DR-AMOUNT    PIC 9(10)V99.
       77  TOT-CR-AMOUNT    PIC 9(10)V99.
       77  BALANCE          PIC S9(10)V99.
       77  DR-BALANCE       PIC 9(10)V99.
       77  CR-BALANCE       PIC 9(10)V99.
       77  E-TOT-DR-AMOUNT  PIC Z(9)9.99.
       77  E-TOT-CR-AMOUNT  PIC Z(9)9.99.
       77  E-BALANCE        PIC Z(9)9.99CR.
       77  E-DR-BALANCE     PIC Z(9)9.99.
       77  E-CR-BALANCE     PIC Z(9)9.99.
       77  AC-NAME          PIC X(20).
       77  OPTION           PIC X.
       77  FLAG             PIC X.
       PROCEDURE DIVISION.
       MAIN-PARA.
           OPEN INPUT JOURNAL-FILE.
           DISPLAY (01 01) ERASE.
           DISPLAY (03 10) "Enter an Account Name : ".
           ACCEPT (03 34) AC-NAME.
           PERFORM INIT-PARA.
       READ-PARA.
           READ JOURNAL-FILE RECORD AT END GO TO CLOSE-PARA.
           IF AC-NAME = DEBIT-AC
              COMPUTE TOT-DR-AMOUNT = TOT-DR-AMOUNT + TRAN-AMOUNT
              MOVE "Y" TO FLAG.
           IF AC-NAME = CREDIT-AC
              COMPUTE TOT-CR-AMOUNT = TOT-CR-AMOUNT + TRAN-AMOUNT
              MOVE "Y" TO FLAG.
           GO TO READ-PARA.
       CLOSE-PARA.
           CLOSE JOURNAL-FILE.
           IF FLAG = "Y"
              PERFORM RESULT-DISP-PARA
           ELSE
              PERFORM NOT-FOUND-PARA.
           DISPLAY (10 10) "=====================================".
           DISPLAY (15 10) "Enter Y/y to check the next A/C : ".
           ACCEPT (15 44) OPTION.
           IF OPTION = "Y" OR OPTION = "y"
              GO TO MAIN-PARA.
           STOP RUN.
       RESULT-DISP-PARA.
           MOVE TOT-DR-AMOUNT TO E-TOT-DR-AMOUNT.
           MOVE TOT-CR-AMOUNT TO E-TOT-CR-AMOUNT.
           COMPUTE BALANCE = TOT-DR-AMOUNT - TOT-CR-AMOUNT.
           IF TOT-DR-AMOUNT > TOT-CR-AMOUNT
              COMPUTE DR-BALANCE = TOT-DR-AMOUNT - TOT-CR-AMOUNT
           ELSE
              COMPUTE CR-BALANCE = TOT-CR-AMOUNT - TOT-DR-AMOUNT.
           MOVE BALANCE TO E-BALANCE.
           MOVE DR-BALANCE TO E-DR-BALANCE.
           MOVE CR-BALANCE TO E-CR-BALANCE.
           DISPLAY (04 10) "-------------------------------------".
           DISPLAY (05 10) " Total Debit Amount : " E-TOT-DR-AMOUNT.
           DISPLAY (06 10) "Total Credit Amount : " E-TOT-CR-AMOUNT.
           DISPLAY (07 10) "            Balance : " E-BALANCE.
           DISPLAY (08 10) "      Debit Balance : " E-DR-BALANCE.
           DISPLAY (09 10) "     Credit Balance : " E-CR-BALANCE.
       NOT-FOUND-PARA.
           DISPLAY (11 14) "Account Not Found In The File".
           DISPLAY (12 10) "-------------------------------------".
       INIT-PARA.
           MOVE "N" TO FLAG.
           MOVE 0 TO TOT-DR-AMOUNT.
           MOVE 0 TO TOT-CR-AMOUNT.
           MOVE 0 TO BALANCE.
           MOVE 0 TO DR-BALANCE.
           MOVE 0 TO CR-BALANCE.

