# lucas **Repository Path**: kpb5300/lucas ## Basic Information - **Project Name**: lucas - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-24 - **Last Updated**: 2025-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Chinese name:寇鹏博 id:2023901562 English name:lucas # 🏦 Simple Bank System
A Basic Bank System for Learning & Demonstration

Language: C++ Platform: Console Status: Learning

## 🧭 Navigation * [✨ Key Features](#key-features) * [📂 File Overview](#file-overview) * [🏛️ System Architecture](#system-architecture) * [⚙️ Design Principles](#design-principles) * [🎯 Summary and Future Work](#summary-and-future-work) ## ✨ Key Features * **User Management**: Register new customers and assign bank accounts. * **Account Management**: Supports Savings Accounts and Checking Accounts. * **Fund Operations**: Implement deposit, withdrawal, and inter-account transfer functionalities. * **Transaction History**: Detailed logging of all bank transactions. * **Report Generation**: Generate customer and global transaction reports. * **Simple & User-Friendly**: Console-based user interface for straightforward interaction. * **Object-Oriented**: Employs a clear object-oriented design pattern. ## 📂 File Overview | File Name | 📜 Description | | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `main.cpp` | 🚪 **Entry Point**: The starting point of the program, responsible for initializing and running the console user interface. | | `console_ui.cpp` / `.hh` | 🗣️ **User Interface**: Implements the `ConsoleUI` class, handling user interaction logic and calling backend `Bank` services. | | `bank.cpp` / `.hh` | 🏦 **Core Logic**: Implements the `Bank` class, managing the core business processes of the bank, including customer, account, and transaction management. | | `bank_account.hh` | Abstract Base Class 🧱 **Account Foundation**: Defines the common interface and attributes for all types of bank accounts. | | `savings_account.cpp` / `.hh` | 💰 **Savings Account**: Implements the `SavingsAccount` class, inheriting from `BankAccount`, defining specific behaviors for savings accounts (restricted direct access). | | `checking_account.cpp` / `.hh` | 🧾 **Checking Account**: Implements the `CheckingAccount` class, inheriting from `BankAccount`, defining specific behaviors for checking accounts (allows direct access). | | `customer.cpp` / `.hh` | 👤 **Bank Customer**: Implements the `Customer` class, storing customer information and managing the list of bank accounts they own. | | `transaction.cpp` / `.hh` | 📝 **Transaction Record**: Implements the `Transaction` class, used to record detailed information for each bank transaction. | | `utils.cpp` / `.hh` | 🛠️ **Utility Tools**: Provides various helper functions, such as ID generation, currency formatting, and date-time handling. | ## 🏛️ System Architecture ```mermaid graph LR A[main.cpp] --> B(ConsoleUI); B -- Calls --> C(Bank); C -- Manages --> D(Customer); C -- Manages --> E(BankAccount); E -- Inherits from --> F(SavingsAccount); E -- Inherits from --> G(CheckingAccount); C -- Records --> H(Transaction); B -- Uses --> I(Utils); C -- Uses --> I; E -- Uses --> I;