Inspiration
We wanted a tough project to learn more about C++. This project uses libraries that we have not encountered before, such as map, unordered_map, istringsteams, pairs, vectors, and more.
What it does
It is a base class that needs to be inherited. The programmer overrides the functions and calls the Parse function to parse a string. By parsing a string, it means something doing similar to Wolfram. It takes a string that is an equation, and simplifies it until it can no longer find an operator.
We also made a matrix class.
How I built it
C++ in Visual Studio 2015 with the ResharperC++ extension. Two person team.
Challenges I ran into
- Determining if there were operators in the string
- Defining which operators should be looked for and their functions.
- Evaluating the function in a way that can be done in a user-indicated amount of steps
- Parenthesis
- Operator Precedence (PEMDAS)
- Templating
- Using the correct C++ standard libraries
- Recursion
We also rebuilt this from the ground up 3 times: one time for a regular integer parser, one time to make it into a template class, and one time to make it extensible.
Accomplishments that I'm proud of
Accomplishing all of the challenges in the given timespan.
We did not know how to approach this project at first, but we learned how to start with one thing and a scale it up.
What I learned
Templates. Standard Libraries. Parsing Strings. How to use pairs. Vectors. Searching algorithms.
What's next for Equation Solver
Implementing it with new types!
Log in or sign up for Devpost to join the conversation.