Author: Saim Khalid

  • Library Management System

    Store book records, search books.

    SEARCH, SEARCH ALL, file handling.

  • Inventory Management System

    Manage stock (add items, update stock, display).
    Tables (arrays), loops, PERFORM.

  • Banking Transaction System

    Deposit, withdraw, and check balance.
    IF-ELSE, arithmetic, file storage.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. BANKING.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ACCOUNT-BAL   PIC 9(6)V99 VALUE 1000.00.
       01 AMOUNT        PIC 9(6)V99.
       01 CHOICE        PIC 9.
       PROCEDURE DIVISION.
       MAIN-PARA.
           DISPLAY "1. CHECK BALANCE"
           DISPLAY "2. DEPOSIT"
           DISPLAY "3. WITHDRAW"
           ACCEPT CHOICE
           IF CHOICE = 1
               DISPLAY "BALANCE = " ACCOUNT-BAL
           ELSE IF CHOICE = 2
               DISPLAY "ENTER AMOUNT TO DEPOSIT: "
               ACCEPT AMOUNT
               ADD AMOUNT TO ACCOUNT-BAL
               DISPLAY "UPDATED BALANCE = " ACCOUNT-BAL
           ELSE IF CHOICE = 3
               DISPLAY "ENTER AMOUNT TO WITHDRAW: "
               ACCEPT AMOUNT
               IF AMOUNT > ACCOUNT-BAL
                   DISPLAY "INSUFFICIENT BALANCE"
               ELSE
                   SUBTRACT AMOUNT FROM ACCOUNT-BAL
                   DISPLAY "UPDATED BALANCE = " ACCOUNT-BAL
               END-IF
           END-IF.
           STOP RUN.

    Explanation:

    • Starts with balance = 1000.
    • User can check balance, deposit, or withdraw.
    • Prevents withdrawal if funds are insufficient.
  • Payroll Management System

    Calculate employee salaries with bonuses/deductions.
    Arithmetic operations, conditional logic.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. PAYROLL.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 EMP-NAME       PIC A(20).
       01 BASIC-SALARY   PIC 9(5)V99.
       01 BONUS          PIC 9(5)V99.
       01 DEDUCTION      PIC 9(5)V99.
       01 NET-SALARY     PIC 9(6)V99.
       PROCEDURE DIVISION.
           DISPLAY "ENTER EMPLOYEE NAME: " ACCEPT EMP-NAME
           DISPLAY "ENTER BASIC SALARY: " ACCEPT BASIC-SALARY
           DISPLAY "ENTER BONUS: " ACCEPT BONUS
           DISPLAY "ENTER DEDUCTION: " ACCEPT DEDUCTION
           COMPUTE NET-SALARY = BASIC-SALARY + BONUS - DEDUCTION
           DISPLAY "EMPLOYEE: " EMP-NAME
           DISPLAY "NET SALARY: " NET-SALARY
           STOP RUN.

    Explanation:

    • COMPUTE is used to calculate salary.
    • Accepts employee details, bonus & deductions.
    • Displays final salary.
  • Student Record Management System

    Store and display student details.
    File handling, ACCEPT/DISPLAY, structured records.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. STUDENT-RECORD.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT STUDENT-FILE ASSIGN TO 'STUDENT.DAT'
           ORGANIZATION IS LINE SEQUENTIAL.
       DATA DIVISION.
       FILE SECTION.
       FD STUDENT-FILE.
       01 STUDENT-REC.
          05 STUDENT-ID    PIC 9(4).
          05 STUDENT-NAME  PIC A(20).
          05 STUDENT-AGE   PIC 9(2).
       WORKING-STORAGE SECTION.
       01 WS-CHOICE       PIC 9 VALUE 0.
       01 WS-EOF          PIC X VALUE 'N'.
       PROCEDURE DIVISION.
       MAIN-PARA.
           DISPLAY "1. ADD STUDENT"
           DISPLAY "2. DISPLAY STUDENTS"
           ACCEPT WS-CHOICE
           IF WS-CHOICE = 1
               OPEN OUTPUT STUDENT-FILE
               DISPLAY "ENTER ID: " ACCEPT STUDENT-ID
               DISPLAY "ENTER NAME: " ACCEPT STUDENT-NAME
               DISPLAY "ENTER AGE: " ACCEPT STUDENT-AGE
               WRITE STUDENT-REC
               CLOSE STUDENT-FILE
           ELSE
               OPEN INPUT STUDENT-FILE
               PERFORM UNTIL WS-EOF = 'Y'
                   READ STUDENT-FILE
                       AT END MOVE 'Y' TO WS-EOF
                       NOT AT END DISPLAY STUDENT-REC
                   END-READ
               END-PERFORM
               CLOSE STUDENT-FILE
           END-IF.
           STOP RUN.

    Explanation:

    • STUDENT.DAT stores student records.
    • User can add a student or display all students.
    • File handling (OPEN, WRITE, READ, CLOSE) is demonstrated.
  • What are COBOL’s strengths?

    • Very strong in business data processing.
    • Handles huge amounts of data efficiently.
    • Still used in banking, finance, insurance, government systems.
    • Easy to read (English-like).

  • SEARCH and SEARCH ALL?

    • SEARCH → Linear search, works with unsorted tables.
    • SEARCH ALL → Binary search, requires sorted table, faster.
  • How does COBOL handle files?

    COBOL uses FILE SECTION in DATA DIVISION.

    • Files are processed using OPEN, READ, WRITE, CLOSE.

    Example:

    IDENTIFICATION DIVISION.
    PROGRAM-ID. FILE-DEMO.
    
    ENVIRONMENT DIVISION.
    INPUT-OUTPUT SECTION.
    FILE-CONTROL.
    
    SELECT EMP-FILE ASSIGN TO 'EMP.DAT'
    ORGANIZATION IS LINE SEQUENTIAL.
    DATA DIVISION. FILE SECTION. FD EMP-FILE. 01 EMP-REC. 05 EMP-ID PIC 9(4). 05 EMP-NAME PIC A(20). WORKING-STORAGE SECTION. 01 WS-EOF PIC X VALUE 'N'. PROCEDURE DIVISION.
    OPEN INPUT EMP-FILE
    PERFORM UNTIL WS-EOF = 'Y'
        READ EMP-FILE
            AT END MOVE 'Y' TO WS-EOF
            NOT AT END DISPLAY EMP-REC
        END-READ
    END-PERFORM
    CLOSE EMP-FILE
    STOP RUN.
  • GOBACK, and EXIT PROGRAM?

    STOP RUN → Ends the main program & returns control to OS.

    GOBACK → Returns control to caller (or OS if no caller).

    EXIT PROGRAM → Used in subprograms to return control to calling program.

  • 88 level in COBOL?

    • Level 88 → Conditional variable, used for readability in conditions.

    Example:

    01 STATUS-CODE    PIC 9(1).
       88 SUCCESS     VALUE 1.
       88 FAILURE     VALUE 0.
    
    IF SUCCESS
       DISPLAY "Operation Successful".