Back to Projects
TOOLSCOMPLETE▶ PLAYABLE

Scientific Calculator

Full expression parser with Shunting-Yard algorithm, trig functions, and keyboard support — ported from C++ to web.

CO-DEVELOPER  ·  Jun 1, 2024

// LIVE DEMO

A scientific calculator originally built as a C++ wxWidgets application (SWE_App) with a teammate during Full Sail coursework. Features a full expression parser using the Shunting-Yard algorithm, supporting arithmetic, parentheses, trigonometric functions (sin/cos/tan with degree-to-radian conversion), percentage, negation, and chained expressions. Re-implemented as a web app for this portfolio with full keyboard support.

// TECH STACK

LANGC++wxWidgetsLANGJavaScriptLIBReactAlgorithms

Contributions

  • 01Implemented CalculatorProcessor with Shunting-Yard expression parsing
  • 02Built ButtonFactory for modular UI button creation
  • 03Designed tokenizer handling negative numbers and operator precedence
  • 04Ported complete logic to JavaScript for web deployment

Technical Highlights

  • Shunting-Yard algorithm for correct operator precedence
  • Tokenizer with context-aware negative number detection
  • Singleton pattern for calculator processor instance