Description:
Creating a Personal Wallet Using C++ with Bank-Like Transactions
Design Patterns used: Bridge, Validator, Observer, Template.
Concepts used: Abstract classes, Multiple inheritances, Polymorphism, Exceptions, I/O files, Modifying the behavior of default operators (iostream, comparators, …).
The program creates a file that represents your wallet. Once you insert a new transaction, the program will preview its outcomes on your wallet so you can decide whether to confirm it or not. Only after your confirmation will the transaction be saved in the file. This method allows a permanently stored balance and transaction history even after closing the program. You can make different operations to your wallet, including:
Command list
Instead of giving a + command you can use other type of commands, here’s the list:
- + -> Add a sum
- – -> Subtract a sum
- save -> save the transactions
- reset -> erase all the transactions
- report -> Print a report (report–all, report–incomefirst and report–outcomefirst are the sorted versions)
- stop -> Finish the execution of the program
Screenshots
Wallet

Transaction


Comparator

Main


I am very proud of the work I have done on this project. I learned a lot about object-oriented programming and C++. I also gained valuable experience in designing and implementing complex software systems.
I am especially grateful to my professor at the University of Metropolia for his guidance and support throughout the project. He helped me to overcome challenges and to produce the best possible work. Also my grade was 10/10 🙂
I believe that object-oriented programming is a powerful paradigm for designing and implementing complex software systems. I’ll remember to apply this paradigm to other projects in the future.
Version:
1.0
Date:
17 Dec 2022
Client:
University of Metropolia
Project Duration:
1 month
Place:
Helsinki, Finland
Language:
English

