Project Overview

As part of my Programming in C++ Class, we were tasked to use the knowledge we gained throughout the course to create a cumulative final project. My group decided to create a four-function and scientific calculator, as the Windows calculator was having a bug at the time that caused it to be unusable for many users. Though it seems like a very simple project at first, there is a lot of architecture required to ensure that all edge cases are handled properly. We built a responsive and visually appealing calculator with all the functionalities of the Windows calculator (both the four function and scientific calculators). Some functionality includes basic arithmetic, backspace, memory button, formula parsing with parentheses, etc. The video above shows me demonstrating some of the functionality of the four-function calculator.

GitHub Link

Technologies Used
What I Worked On

I was mostly responsible for the View and Controller portions of the Model-View-Controller pattern that we employed. My teammates built the model (essentially the back-end logic) for the four-function and scientific calculators, while I handled dealing with the visuals, the SDL graphics libraries, the handling of user input, and the integration between the front-end and back-end.

What I Learned

The main thing I learned from this project was the difficulty of building something from scratch in C++. However, I also learned that C++ can be incredibly efficient and powerful and gives developers much more control over how the computer processors run their code (e.g. through memory management, pointers, etc.). I also learned that my C# knowledge (which is my strongest language) translated fairly well into C++, and I just had to learn a few more things to get accustomed to C++.