{"id":27874185,"url":"https://github.com/fizzymo/modular-c-calculator","last_synced_at":"2025-05-05T01:31:48.442Z","repository":{"id":251023606,"uuid":"836155025","full_name":"FizzyMo/Modular-C-Calculator","owner":"FizzyMo","description":"C++ project demonstrating basic calculator functionality, input validation, and code organization across multiple files.","archived":false,"fork":false,"pushed_at":"2024-08-16T20:52:57.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-16T21:56:21.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://youtu.be/W8NV80-eHzU","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FizzyMo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-31T09:05:43.000Z","updated_at":"2024-08-16T20:53:00.000Z","dependencies_parsed_at":"2024-08-05T04:55:40.018Z","dependency_job_id":null,"html_url":"https://github.com/FizzyMo/Modular-C-Calculator","commit_stats":null,"previous_names":["fizzymo/c-calculator","fizzymo/modular-c-calculator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FizzyMo%2FModular-C-Calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FizzyMo%2FModular-C-Calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FizzyMo%2FModular-C-Calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FizzyMo%2FModular-C-Calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FizzyMo","download_url":"https://codeload.github.com/FizzyMo/Modular-C-Calculator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252423208,"owners_count":21745560,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-05T01:31:33.646Z","updated_at":"2025-05-05T01:31:48.412Z","avatar_url":"https://github.com/FizzyMo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003eC++ Calculator\u003c/h2\u003e\n\n### Description\nThis is a C++ calculator software that runs on the console. It provides a simple interface for conducting fundamental mathematical operations like addition, subtraction, multiplication, and division. The calculator is built to withstand a range of input circumstances, ensuring a smooth user experience through rigorous error management and input validation. It is a fantastic explanation of important programming principles including object-oriented design, string manipulation, and error handling in C++.\n***\n## Table of Contents\n* [Features](#features)\n* [Wiki](#wiki)\n* [Steps To Run](#steps-to-run)\n* [Error Handling](#error-handling)\n* [Technologies](#technologies)\n* [Project Structure](#project-structure)\n* [Author](#author)\n* [Contact](#contact)\n***\n### Features\n- **Basic Arithmetic Operations:**\n  - Supports addition, subtraction, multiplication, and division.\n- **Flexible Input:**\n  - Accepts both single-line equations (e.g., \"6 + 3\") and step-by-step input of operands and operators.\n- **Robust Error Handling:**\n  - Prevents invalid input and calculations, including:\n    - Division by zero\n    - Incorrect number formats\n    - Empty or whitespace\n- **Multiple Calculations:**\n  - Allows users to perform consecutive calculations in a single session.\n- **Clear Screen Option:**\n  - Users can choose to clear the screen between calculations.\n\n### Wiki\nThis project is thoroughly documented in the [Wiki](https://github.com/FizzyMo/Modular-C-Calculator/wiki), which provides detailed insights into the software development process, including problem analysis, design, implementation, and testing.\n### Steps To Run\n1. **Clone the repository:**\n   - Open your terminal or Git Bash.\n   - Navigate to the directory where you want to clone the repository.\n   - Use the following command to clone the repository:\n``\n   git clone https://github.com/your-username/calculator.git ``\n   - This will download the project files to your local machine.\n1. **Using Visual Studio 2022**\n   - Open Visual Studio 2022.\n   - Go to \"Open\" -\u003e \"Project or Solution\"\n   - Navigate to the directory where you cloned the repository.\n2. **Build the Project:**\n   - Press **Ctrl+Shift+B** or go to \"Build\" -\u003e \"Build Solution\" to compile the project.\n3. **Run the Project:**\n   - Press **F5** or go to \"Debug\" -\u003e \"Start Debugging\" to run the calculator program.\n4. **Use the Calculator:**\n   - The calculator will launch in a console window.\n   - Follow the on-screen prompts to enter equations or numbers and perform calculations.\n  \n### Error Handling\nThe calculator is built with extensive error handling to guide the user and prevent unexpected behavior:\n - **Input Validation:**\n   - Ensures that only valid non-negative numbers, operators, and equation formats are accepted.\n- **Division by Zero Prevention:**\n   - Catches attempts to divide by zero and displays an error message.\n- **User-Friendly Messages:**\n   - Provides clear and informative messages to guide the user in case of incorrect input.\n\n### Technologies \n- **C++:**\n   - The core programming language used for implementing the calculator logic. This structure promotes code organization, readability, and reusability of components.\n- **Standard Template Library (STL):**\n   - Used for string manipulation (`std::string`, `std::stringstream`), input/output (`std::cin`, `std::cout`), and exception handling (`std::exception`, `std::invalid_argument`).\n- **Visual Studio 2022:**\n   - The IDE (Integrated Development Environment) used for creating, compiling, and running the project.\n\n### Project Structure\nThe project is organized into multiple files:\n- **`calculator.h`:**\n   - Contains the declaration of the `Calculator` class, outlining its member functions.\n- **`calculator.cpp`:**\n   - Provides the implementation (definitions) for the member functions of the `Calculator` class, including the core calculator logic.\n- **`main.cpp`:**\n   - Contains the `main()` function, which is the entry point of the program. It creates an instance of the `Calculator` class and starts the calculator's execution.\n\n### Author\n**Carisa Saenz-Videtto**\n\n### Contact\ncarisasaenz@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffizzymo%2Fmodular-c-calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffizzymo%2Fmodular-c-calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffizzymo%2Fmodular-c-calculator/lists"}