Skip to content

About

This my University Project In c++ programming

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏦 Centralized Banking System

A comprehensive Console-based Banking Management System built in C++ that simulates real-world banking operations with multi-bank support, account management, and transaction processing capabilities.

πŸ“‹ Table of Contents

✨ Features

πŸ›οΈ Bank Management

  • Multi-Bank Support: Manage multiple banks (National Bank, United Bank, Habib Bank)
  • Branch Management: Add and display bank branches with location and balance details
  • Gold Reserve Management: Track and manage bank gold reserves in tons
  • Employee Management: View and manage bank employees with designations

πŸ‘€ Account Management

  • Customer Registration: Create new customer accounts with complete details
  • Account Viewing: Display all customer accounts filtered by bank
  • Account Editing: Update customer information
  • Account Deletion: Remove customer accounts from the system
  • Account Search: Search accounts by account number or customer name

πŸ’° Transaction Operations

  • Balance Inquiry: Check current account balance
  • Cash Deposit: Add funds to customer accounts
  • Cash Withdrawal: Withdraw funds with automatic service charge (PKR 1 for balances > PKR 100)
  • Fund Transfer: Transfer money between accounts
  • Interest Calculation: Automatic monthly interest calculation (6% annual rate)
  • Account Status: Active/Inactive status based on minimum balance (PKR 25)

πŸ” Security Features

  • Dual Authentication System: Separate login for administrators and users
    • Admin: Username: admin, Password: admin
    • User: Username: user, Password: user
  • Unique User ID Generation: Random 10-digit user ID for each account
  • Session Tracking: Login/logout timestamp recording

πŸ’» System Requirements

  • Operating System: Windows (uses Windows-specific libraries)
  • Compiler: Any C++ compiler supporting C++11 or later (MinGW, Visual Studio, etc.)
  • Libraries Required:
    • <iostream>
    • <windows.h> (for console manipulation)
    • <conio.h> (for keyboard input)
    • <fstream> (for file operations)
    • <vector> (for data structures)
    • <ctime> (for timestamp)

πŸš€ Installation

Step 1: Clone the Repository

git clone https://github.com/yourusername/Centralized-Banking-System.git
cd Centralized-Banking-System

Step 2: Compile the Program

Using MinGW (g++):

g++ "Centralized Banking System.cpp" -o BankingSystem.exe

Using Visual Studio:

  1. Open Visual Studio
  2. Create a new C++ Console Application project
  3. Add the Centralized Banking System.cpp file to the project
  4. Build the solution (Ctrl+Shift+B)

Step 3: Run the Program

./BankingSystem.exe

πŸ“– Usage

Main Menu Navigation

Upon launching the program, you'll see the main menu:

1. BANK MANAGEMENT
2. ACCOUNT MANAGEMENT
3. EXIT

Bank Management Module

Access comprehensive bank operations:

  • Bank Management: Add/view bank branches
  • Employee Management: View employee list
  • Gold Reserve Management: Manage gold reserves
    • Display current reserves
    • Deposit gold
    • Withdraw gold

Account Management Module

Choose your role:

  • Administrator: Full access to all account operations
  • User: Access to transaction operations only

Administrator Functions

  1. View Customer Accounts (filtered by bank)
  2. Customer Account Registration
  3. Edit Customer Account
  4. Delete Customer Account
  5. Search Customer Account (by number or name)
  6. Transaction Operations
  7. Log Out

User Functions

  1. Balance Inquiry
  2. Cash Deposit
  3. Cash Withdrawal
  4. Fund Transfer
  5. Exit

πŸ“ Project Structure

Centralized-Banking-System/
β”‚
β”œβ”€β”€ Centralized Banking System.cpp    # Main source code
β”œβ”€β”€ record.bin                         # Binary file storing customer records
β”œβ”€β”€ new.bin                           # Temporary file for record updates
β”œβ”€β”€ Branches.txt                      # Text file storing branch information
└── README.md                         # This file

πŸ”§ Core Functionalities

Classes and OOP Concepts

1. Bank Class

  • Manages gold reserves
  • Deposit/withdraw gold operations
  • Display reserve information

2. Branch/Branch1 Class

  • Store branch details (name, address, city, balance)
  • Constructor initialization

3. record Class

  • Customer data structure
  • Fields: name, account number, phone, address, email, citizenship, balance, user ID, bank name

4. bms Class (Banking Management System)

  • Encapsulation: Protected user credentials
  • Data Hiding: Private member variables
  • Abstraction: Public interface methods
  • Core banking operations implementation

5. CentralizedBank Class

  • Branch file management
  • Add/display branches from file
  • CSV parsing utility

6. Employee Class

  • Employee information storage
  • Display employee details

File Operations

  • Binary File Handling: Customer records stored in record.bin
  • Text File Handling: Branch information in Branches.txt
  • CRUD Operations: Create, Read, Update, Delete on customer records

Key Algorithms

  1. Account Verification: chkacc() function validates account existence
  2. Interest Calculation: Monthly interest = Balance Γ— (6% / 12)
  3. Service Charge: PKR 1 deducted for withdrawals when balance > PKR 100
  4. Random ID Generation: 10-digit unique user ID using rand()

πŸ‘₯ User Roles

Administrator Access

  • Username: admin
  • Password: admin
  • Privileges: Full system access including account creation, modification, deletion, and transactions

User Access

  • Username: user
  • Password: user
  • Privileges: Transaction operations only (balance inquiry, deposit, withdrawal, transfer)

πŸ› οΈ Technical Details

Data Persistence

  • Customer records stored in binary format for efficient storage and retrieval
  • Branch information stored in CSV format in text file
  • Temporary file mechanism for safe record updates

Console UI Features

  • Color Scheme: Custom color coding using system("color f9")
  • Cursor Positioning: gotoxy() function for precise text placement
  • Design Elements: ASCII art borders using design() function
  • User Input: Combination of cin, scanf, and getch() for various input types

Error Handling

  • Account existence validation
  • Insufficient balance checks
  • Invalid input handling
  • File operation error checking

πŸ“Έ Screenshots

Add screenshots of your application here showing:

  • Main menu
  • Login screen
  • Account registration
  • Transaction operations
  • Bank management interface

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/YourFeature)
  3. Commit your changes (git commit -m 'Add some feature')
  4. Push to the branch (git push origin feature/YourFeature)
  5. Open a Pull Request

Suggested Improvements

  • Cross-platform compatibility (remove Windows-specific dependencies)
  • Database integration (MySQL/SQLite)
  • Enhanced security (password encryption)
  • GUI implementation (Qt/wxWidgets)
  • Multi-currency support
  • Transaction history and reporting
  • Backup and restore functionality

πŸ“„ License

This project is open-source and available under the MIT License.

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

Your Name

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped improve this project
  • Inspired by real-world banking systems
  • Built as an educational project to demonstrate OOP concepts in C++

Note: This is a console-based educational project. For production use, implement proper security measures, database integration, and comprehensive error handling.

πŸ“ž Support

If you encounter any issues or have questions, please:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Contact the maintainer

⭐ Star this repository if you find it helpful!

About

This my University Project In c++ programming

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages