Category: Projects

  • Loan EMI Calculator

    Calculate monthly EMI for a loan.
    COMPUTE, ACCEPT, DISPLAY.

    Formula: EMI=P×R×(1+R)N(1+R)N−1EMI = \frac{P \times R \times (1+R)^N}{(1+R)^N – 1}EMI=(1+R)N−1P×R×(1+R)N​

    Where:

    • P = Principal Loan Amount
    • R = Monthly Interest Rate
    • N = Number of Months

  • Employee Database

    Store employee records and display them.
    FILE handling, WRITE/READ, PERFORM.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. EMPLOYEE-DB.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT EMP-FILE ASSIGN TO 'EMPLOYEE.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).
          05 EMP-SAL    PIC 9(6).
       WORKING-STORAGE SECTION.
       01 WS-EOF PIC X VALUE "N".
       PROCEDURE DIVISION.
           OPEN OUTPUT EMP-FILE
               MOVE 1001 TO EMP-ID
               MOVE "ALICE" TO EMP-NAME
               MOVE 50000 TO EMP-SAL
               WRITE EMP-REC
               MOVE 1002 TO EMP-ID
               MOVE "BOB" TO EMP-NAME
               MOVE 60000 TO EMP-SAL
               WRITE EMP-REC
           CLOSE EMP-FILE
           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.

    Explanation:

    • Writes employee data into a file EMPLOYEE.DAT.
    • Then reads back and displays the stored records.
    • Simulates a small HR employee database.

  • Sales Billing System

    Calculate total bill with discount and tax.
    Arithmetic operations, COMPUTE, ACCEPT/DISPLAY.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. BILLING.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 ITEM-NAME    PIC A(20).
       01 PRICE        PIC 9(5)V99.
       01 QUANTITY     PIC 9(3).
       01 TOTAL        PIC 9(6)V99.
       01 DISCOUNT     PIC 9(6)V99.
       01 NET-AMOUNT   PIC 9(6)V99.
       PROCEDURE DIVISION.
           DISPLAY "ENTER ITEM NAME: " ACCEPT ITEM-NAME
           DISPLAY "ENTER PRICE: " ACCEPT PRICE
           DISPLAY "ENTER QUANTITY: " ACCEPT QUANTITY
           COMPUTE TOTAL = PRICE * QUANTITY
           IF TOTAL > 5000
               COMPUTE DISCOUNT = TOTAL * 0.10
           ELSE
               COMPUTE DISCOUNT = TOTAL * 0.05
           END-IF
           COMPUTE NET-AMOUNT = TOTAL - DISCOUNT
           DISPLAY "ITEM: " ITEM-NAME
           DISPLAY "TOTAL: " TOTAL
           DISPLAY "DISCOUNT: " DISCOUNT
           DISPLAY "NET AMOUNT: " NET-AMOUNT
           STOP RUN.

    Explanation:

    • Accepts price & quantity, calculates bill.
    • Applies discount based on purchase amount.
    • Simulates a retail billing system.
  • ATM Simulation Project

    Mimic ATM operations (deposit, withdraw, check balance, exit).

    PERFORM loops, IF-ELSE, arithmetic.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. ATM.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 BALANCE     PIC 9(6)V99 VALUE 5000.00.
       01 AMOUNT      PIC 9(6)V99.
       01 CHOICE      PIC 9.
       01 EXIT-FLAG   PIC X VALUE "N".
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM UNTIL EXIT-FLAG = "Y"
               DISPLAY "1. CHECK BALANCE"
               DISPLAY "2. DEPOSIT"
               DISPLAY "3. WITHDRAW"
               DISPLAY "4. EXIT"
               ACCEPT CHOICE
               EVALUATE CHOICE
                   WHEN 1 DISPLAY "BALANCE: " BALANCE
                   WHEN 2
                        DISPLAY "ENTER DEPOSIT: " ACCEPT AMOUNT
                        ADD AMOUNT TO BALANCE
                        DISPLAY "UPDATED BALANCE: " BALANCE
                   WHEN 3
                        DISPLAY "ENTER WITHDRAWAL: " ACCEPT AMOUNT
                        IF AMOUNT > BALANCE
                            DISPLAY "INSUFFICIENT FUNDS"
                        ELSE
                            SUBTRACT AMOUNT FROM BALANCE
                            DISPLAY "UPDATED BALANCE: " BALANCE
                        END-IF
                   WHEN 4 MOVE "Y" TO EXIT-FLAG
                   WHEN OTHER DISPLAY "INVALID CHOICE"
               END-EVALUATE
           END-PERFORM.
           STOP RUN.

    Explanation:

    • PERFORM UNTIL → creates a menu-driven system.
    • EVALUATE → works like switch-case in modern languages.
    • Handles deposits, withdrawals, exit.
  • Marksheet Processing System

    Input marks of students and calculate grade.
    IF-ELSE, arithmetic, ACCEPT/DISPLAY.

           IDENTIFICATION DIVISION.
    
       PROGRAM-ID. MARKSHEET.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 STUDENT-NAME PIC A(20).
       01 MARKS        PIC 9(3).
       01 GRADE        PIC A.
       PROCEDURE DIVISION.
           DISPLAY "ENTER STUDENT NAME: "
           ACCEPT STUDENT-NAME
           DISPLAY "ENTER MARKS (0-100): "
           ACCEPT MARKS
           IF MARKS >= 90
               MOVE "A" TO GRADE
           ELSE IF MARKS >= 75
               MOVE "B" TO GRADE
           ELSE IF MARKS >= 50
               MOVE "C" TO GRADE
           ELSE
               MOVE "F" TO GRADE
           END-IF
           DISPLAY "STUDENT: " STUDENT-NAME
           DISPLAY "GRADE  : " GRADE
           STOP RUN.

    Explanation:

    • Uses conditions to assign grades A, B, C, F.
    • Simple logic but reflects real-world evaluation.
  • 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.