Skip to content

Khansa-Mehmood/Menu-Based-Calculator-Simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Menu-Based Calculator Simulator

A web-based terminal simulator that mimics a classic menu-driven calculator. Built with HTML, CSS, and vanilla JavaScript, it uses a Finite State Machine (FSM) to handle sequential terminal inputs seamlessly within a custom CLI environment.

🚀 Features

  • Terminal UI: Sleek, dark-themed command-line interface with standard window controls and auto-scrolling.
  • FSM Architecture: Structured state transitions (MENUGET_NUM1GET_NUM2) for robust input handling.
  • Arithmetic Logic: Supports addition, subtraction, multiplication, and a specialized division.
  • Input Validation: Error prevention against invalid menu options, out-of-range inputs, and division-by-zero.

💻 Tech Stack

  • HTML5 | CSS3 (Flexbox, Fira Code font) | Vanilla JavaScript (ES6).

📚 Core Concepts Covered

1. Finite State Machine (FSM)

Tracks application execution states programmatically instead of using deeply nested conditions. It cycles sequentially through menu choices and number inputs before executing operations.

2. Low-Level UI Emulation

Mimics traditional text-based, low-level CLI software architectures within a browser context, resetting states and refreshing input buffers automatically.

3. DOM & Event Management

Asynchronously captures keyboard events (Enter key updates) and dynamically generates color-coded system responses while pinning viewport scroll to the latest line.

🛠️ How to Run Locally

Open index.html directly in any modern web browser.

About

A web-based terminal simulator mimicking a classic menu-driven calculator. Built with HTML, CSS, and JS, it uses a Finite State Machine (FSM) to process inputs in a custom CLI environment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors