Skip to content

This program successfully executes in TurboC++.

License

Notifications You must be signed in to change notification settings

vivekjutture/Bank-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bank Management System

πŸ“‹ Project Overview

Bank Management System is a console-based application developed in C++ that simulates basic banking operations. It allows users to create and manage two types of bank accounts (Savings and Current) with essential features like account creation, deposit, withdrawal, and balance inquiry.

This is a beginner-friendly project that demonstrates object-oriented programming (OOP) concepts in C++, including classes, static members, and member functions.


✨ Features

Account Types

  1. Savings Account

    • Minimum opening balance: β‚Ή500
    • Suitable for individual savers
    • Standard savings account features
  2. Current Account

    • Minimum opening balance: β‚Ή1000
    • Designed for business transactions
    • Similar operations as Savings account

Core Operations

  • Account Opening: Create a new account with customer details
  • Deposit: Add funds to an existing account
  • Withdrawal: Withdraw money (with balance validation)
  • Balance Inquiry: Check current account balance
  • Account Management: View account details and transaction history

Customer Information Stored

  • Customer Name
  • Address
  • Phone Number
  • Account Type (Savings/Current)
  • Account Number (auto-generated)
  • Current Balance

πŸ—οΈ Project Architecture

Class Structure

class bank
β”œβ”€β”€ Private Members
β”‚   β”œβ”€β”€ static int acctno (Savings account counter)
β”‚   β”œβ”€β”€ static int acttno (Current account counter)
β”‚   β”œβ”€β”€ char name[20]
β”‚   β”œβ”€β”€ char add[20]
β”‚   └── char ph_no[10]
β”‚
└── Public Methods
    β”œβ”€β”€ static void increment() - Increment savings account number
    β”œβ”€β”€ static void display() - Display account number
    β”œβ”€β”€ static void increse() - Increment current account number
    β”œβ”€β”€ static void show() - Display current account number
    β”œβ”€β”€ void saving() - Handle savings account operations
    └── void curr() - Handle current account operations

Flow Diagram

Main Menu (Savings/Current/Exit)
    ↓
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                         β”‚
β”œβ†’ Savings Account Menu             β”œβ†’ Current Account Menu
β”‚  1. Account Opening                  1. Account Opening
β”‚  2. Deposit                          2. Deposit
β”‚  3. Withdrawal                       3. Withdrawal
β”‚  4. Balance Check                    4. Balance Check
β”‚  5. Back to Main                     5. Back to Main
β”‚                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ”§ Technical Details

Built With

  • Language: C++
  • Platform: Turbo C++ (DOS-based)
  • Compilation Target: Windows (legacy DOS mode)

Dependencies

  • iostream.h - Standard I/O operations
  • conio.h - Console I/O (Turbo C++ specific)
  • stdlib.h - Standard library functions
  • dos.h - DOS-specific functions (delay, etc.)

πŸ“ How to Use

Running the Program

On Turbo C++:

  1. Open Turbo C++
  2. File β†’ New β†’ Edit the file
  3. Copy the code from BANK.CPP
  4. Press Alt+F9 to compile
  5. Press Ctrl+F9 to run

On Modern Compilers (with modifications):

# Using g++ (requires refactoring)
g++ -o bank BANK.CPP
./bank

Using the Application

  1. Start the Program: The welcome screen appears

  2. Select Account Type:

    • Option 1: Access Savings Account menu
    • Option 2: Access Current Account menu
    • Option 3: Exit the application
  3. Perform Transactions:

    • Create an account with minimum balance
    • Deposit money
    • Withdraw money (up to available balance)
    • Check balance and account details
  4. Exit: Select option 3 from main menu to exit

Sample Transactions

1. Create Savings Account (β‚Ή500 minimum)
   - Name: John Doe
   - Address: 123 Main St
   - Phone: 9876543210
   - Initial Deposit: β‚Ή5000

2. Deposit β‚Ή2000
   - New Balance: β‚Ή7000

3. Withdraw β‚Ή3000
   - New Balance: β‚Ή4000

4. Check Balance
   - Account Balance: β‚Ή4000

⚠️ Limitations & Known Issues

  1. No Persistent Storage: All data is lost when the program exits
  2. Single Account Per Session: Only one account can be stored in memory at a time (per account type)
  3. Limited Validation: Basic input validation only
  4. Legacy Code: Uses deprecated headers (Turbo C++ style)
  5. No Interest Calculation: No automated interest application
  6. No Transaction Log: Individual transactions are not recorded
  7. Static Account Numbers: Account numbers reset when program restarts
  8. No Security: No password or authentication system

πŸš€ Future Enhancements

Suggested improvements for modernization and functionality:

  1. Database Integration: Use SQLite or MySQL to persist data
  2. File-Based Storage: Save account details to files
  3. Multi-Account Management: Handle multiple accounts simultaneously
  4. Interest Calculation: Implement interest accrual for savings accounts
  5. Transaction History: Maintain detailed transaction logs
  6. PIN Protection: Add security with PIN/password authentication
  7. Modern C++: Refactor to use modern C++ standards (C++14/17/20)
  8. Cross-Platform: Use standard libraries for broader compatibility
  9. GUI Interface: Develop a graphical user interface
  10. Overdraft Facility: Allow current accounts to have overdraft limits
  11. Cheque Management: Add cheque book functionality
  12. Transfer Between Accounts: Enable account-to-account transfers

πŸ“Š Code Statistics

  • Total Lines: ~400+ lines
  • Classes: 1 (bank)
  • Public Methods: 6
  • Member Functions: 2
  • Main Function: 1 entry point

πŸŽ“ Learning Outcomes

This project demonstrates:

βœ… Object-Oriented Programming

  • Class definition and implementation
  • Public and private access specifiers
  • Static members and methods

βœ… Control Flow

  • Switch-case statements
  • Do-while loops
  • Conditional statements

βœ… User Interface

  • Console-based menu design
  • Input/output operations
  • Screen clearing and formatting

βœ… Data Management

  • Variable declaration and initialization
  • Array usage for strings
  • Data validation

πŸ’‘ Algorithm Explanation

Account Opening Process

1. Auto-generate account number (increment static counter)
2. Display generated account number
3. Take user input (name, address, phone, initial amount)
4. Validate minimum balance requirement
5. Store details in class member variables
6. Set initial balance
7. Display confirmation

Withdrawal Process

1. Request account number from user
2. Validate account number
3. Display current balance
4. Request withdrawal amount
5. Validate amount ≀ balance
6. Deduct from balance
7. Display new balance
8. Show confirmation or error

πŸ” Security Notes

This is an educational project. For production use, implement:

  • Encryption for sensitive data
  • User authentication
  • Transaction logging
  • Audit trails
  • Data backup systems

πŸ“„ License

This is an open-source educational project. Feel free to use, modify, and distribute.


πŸ‘¨β€πŸ’» Note

Created as a learning project to understand C++ fundamentals and banking system logic.


🎯 Conclusion

The Bank Management System is a fundamental project that introduces banking concepts through programming. While it has limitations, it serves as an excellent learning resource for understanding OOP principles, user interface design, and business logic implementation in C++.

Ideal for: Students, beginners in C++, anyone learning about system design and banking operations.


About

This program successfully executes in TurboC++.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages