How pardha55/calculator works
This is a modular, console-based Java calculator. The user-facing loop starts in Main: it gathers input through CalculatorUI, dispatches arithmetic through CalculatorEngine and the selected Operation, displays the result, and records it with HistoryManager; menu choices also view or clear history. The operation classes implement six arithmetic choices, while the UI handles numeric-input validation and Main handles invalid choices. History is held in memory. Relationships are based on the provided excerpts or README; unsampled behavior is not inferred.
Main entry points: CalculatorEngine.java Operation selector · Operation.java Operation contract · Main.java Application loop · Addition.java Addition
Components 12
Console interaction
- Application loop
src/main/java/Main.java - Console UI
src/main/java/CalculatorUI.java
Calculation dispatch
- Operation selector
src/main/java/CalculatorEngine.java - Operation contract
src/main/java/Operation.java - Addition
src/main/java/Addition.java - Subtraction
src/main/java/Subtraction.java - Multiplication
src/main/java/Multiplication.java - Division
src/main/java/Division.java - Modulus
src/main/java/Modulus.java - Power
src/main/java/Power.java
History management
- History manager
src/main/java/HistoryManager.java
Other components
- Calculator user
Connections 17
- Calculator user → Application loop: starts
README.md - Application loop → Console UI: reads and displays
src/main/java/Main.java - Application loop → Operation selector: selects operation
src/main/java/Main.java - Application loop → Operation contract: executes and formats
src/main/java/Main.java - Application loop → History manager: records and manages
src/main/java/Main.java - Operation selector → Addition: dispatches
src/main/java/CalculatorEngine.java - Operation selector → Subtraction: dispatches
src/main/java/CalculatorEngine.java - Operation selector → Multiplication: dispatches
src/main/java/CalculatorEngine.java - Operation selector → Division: dispatches
src/main/java/CalculatorEngine.java - Operation selector → Modulus: dispatches
src/main/java/CalculatorEngine.java - Operation selector → Power: dispatches
src/main/java/CalculatorEngine.java - Addition → Operation contract: extends
src/main/java/Addition.java - Subtraction → Operation contract: extends
src/main/java/Subtraction.java - Multiplication → Operation contract: extends
src/main/java/Multiplication.java - Division → Operation contract: extends
src/main/java/Division.java - Modulus → Operation contract: extends
src/main/java/Modulus.java - Power → Operation contract: extends
src/main/java/Power.java