This is our large project to build a simple banking apps in C++, with core functionalities such as create/delete account, query balance, deposit/transfer/withdraw money,... Using only DSA-related stuffs.
- C++11–compatible compiler (e.g. g++ 7+, clang 5+, MSVC 2017+)
- CMake 3.10+
- (Optional) Ninja or Make
-
First Clone this project to your local device. Use
Mainbranch, selectCode -> Download ZIPor use with your Github Desktop. -
If you are just a beginner wants to try our project, go to
build\CMakeFilesand runbank_management.exe. -
If you want to explore more: Should you change the code, you must rebuild the exe using
-
cd buildif you are not inbuildfolder -
add new .cpp file to
CMakeLists.txtif you create new .cpp file -
use CMakeTools
cmake --build .orninjato rebuild.
-
-
CSV can be manually created if you are lazy to create through GUI. Following the syntax:
id,name,balance,pin,locked,created,modifiedfor accounts.txtoriginId,type,destId,amount,origBal,destBal,timestampfor transactions.txt
-
Create/update/lock account, query balance and information, deposit/transfer/withdraw money.
-
Admin account has previlege to see all accounts, transactions; has the rights to delete account and requested transactions.
-
Program has an easy-to-use GUI so you can just pick the action you want to do.
-
Quick Demo:
=== Bank Management ===
- Add Account
- Display Account Info ... Choose an option: 1
Enter unique account ID: 101 Enter account holder name: Alice Set account PIN: 1234 Add another? (y/n): n
Enter 0 to return to main menu: 0 …
-
Account and Transaction Class.
-
Structures: List (to store AccountID in order), Linked-list (to manage Account and Transaction hitsory).
-
Algorithm: Quick Sort, Binary Search (to find appropriate AccountID), functions on linked-list.
What we wants to implement if having more time:
-
CSV external import/export
-
Role-based access control
-
Automated test suite
-
Integration with a real database
Special thanks to @Letatducmanh (initial Account and Transaction structures) and @yuhle-qug (Binary Search contributors) for the project.
Please open an issue or submit a pull request.
Feel free to suggest new features or report bugs!
I dont't know