# 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
## 🧭 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;