Most calculators dictate the way you enter expressions. Let's imagine I do a calculation 4 + 5. (for sake of simplicity, I would do that mentally) and I want to know the square root of the sum. A lot of calculators won't let you enter that because you have to enter the square root first. You're forced to enter the whole expression at once. You could say that's waterfall calculation.
The Windows calculator is a bit different. You must enter the square root afterward. It does not let you enter it beforehand. Therefore, it still dictates the way you enter the expression.
This is what I did differently. With my MathInterpreter you decide how you enter an expression.
This is achieved by using what I call open expressions. An open expression is an expression with a number missing which is filled by the last result. E.g. " + 1", any calculator can do that. More interesting are the ones open at the end like "1 - " which is handy for converse probability, or "1 / " for the multiplicative inverse, or just "-" for the additive inverse. Of course "-" is a bit ambiguous but that's the whole point of the software. It takes keyboard input and interprets it as well as possible, instead of constantly throwing errors.
Expression with many steps
I used this project to learn C#. I believe the best way to learn a programming language is not by reading a book or watching a tutorial - that kind of thing can get you started - but by doing a project in that language. You will naturally look up the things you need for your project and instantly apply them. This way you learn the language and it won't feel like the bad kind of learning most people do in school.