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!

Built With

Share this project:

Updates