A C++ console application that manages client records in a banking system. It allows users to view, add, update, and delete client information, as well as perform transactions like deposits, withdrawals, and balance checks. The system includes user login functionality with different access levels .
- User Authentication: Login system with different permission levels for users
- View Client List: Display a list of all clients
- Add New Client: Add a new client to the system by providing details such as account number, pin code, name, phone, and account balance
- Delete Client: Delete an existing client by providing the client's account number
- Update Client: Modify the information of an existing client
- Find Client: Search for a client by account number
- Transactions: Perform banking transactions including deposits and withdrawals
- User Management: Manage system users and their permissions
The client data is stored in a text file (data/data.txt
) where each client record is stored on a separate line. The fields in each client record are separated by the string #//#
. The fields are:
- Account Number
- Pin Code
- Client Name
- Phone Number
- Account Balance
12345#//#1234#//#John Doe#//#123-456-7890#//#5000.00
-
Login Screen: The program starts with a login screen where users must authenticate:
=========================================== Login Screen =========================================== Please enter Username? Admin Please enter Password?
-
Main Menu: After successful login, the main menu is displayed with options based on user permissions:
=========================================== Main Menue Screen =========================================== [1] Show Client List. [2] Add New Client. [3] Delete Client. [4] Update Client Info. [5] Find Client. [6] Transactions. [7] Manage Users. [8] LogOut. =========================================== Choose what do you want to do? [1 to 8]?
-
Transactions Menu: When selecting Transactions, a sub-menu is displayed:
=========================================== Transactions Menue Screen =========================================== [1] Deposit. [2] Withdraw. [3] Total Balances. [4] Main Menue. =========================================== Choose what do you want to do? [1 to 4]?
The system implements role-based access control:
- Different users have different permission levels
- For example, some users may only have access to find clients but not add or modify them
- Administrative users have full access to all system functions
- Login system verification
- User permission management
ShowMainMenue()
: Displays the main menu where the user selects an operationSplitString()
: Splits a string by a delimiter into a vector of substringsConvertLinetoRecord()
: Converts a string record from the file into asClient
structureConvertRecordToLine()
: Converts asClient
structure back into a string format for saving to the fileClientExistsByAccountNumber()
: Checks if a client with a specific account number already exists in the fileReadNewClient()
: Prompts the user to input information for a new client and returns thesClient
structureLoadCleintsDataFromFile()
: Loads all client records from the file into a vector ofsClient
structuresPrintClientRecordLine()
: Prints the details of a client in a formatted lineShowAllClientsScreen()
: Displays all client recordsPrintClientCard()
: Prints the details of a specific clientFindClientByAccountNumber()
: Finds a client by account number from the vector of clientsChangeClientRecord()
: Allows the user to change the details of an existing clientMarkClientForDeleteByAccountNumber()
: Marks a client for deletion by account numberSaveCleintsDataToFile()
: Saves the updated client data back to the fileAddDataLineToFile()
: Adds a new client record to the fileAddNewClient()
: Prompts the user to add a new client and saves it to the fileAddNewClients()
: Allows the user to add multiple clientsDeleteClientByAccountNumber()
: Deletes a client by account number after user confirmationUpdateClientByAccountNumber()
: Updates a client by account number after user confirmationReadClientAccountNumber()
: Prompts the user for a client's account number
- Deposit money into client accounts
- Withdraw money from client accounts
- View total account balances
This project is licensed under the MIT License - see the LICENSE file for details.
For inquiries or further information, you can contact the project maintainer:
Email: [email protected]