Giter Site home page Giter Site logo

calculator's Introduction

Calculator Exercise

At a Glance

  • Build a calculator command line interface (CLI) that allows a user to perform simple arithmetic.
  • Individual, stage 1 project
  • Due August 8th, 2018, 10 AM. We will go over in class how to submit the project

Learning Goals

  • Write Ruby code with statements that practice conditional logic, using if, elsif, and else when appropriate
  • Write Ruby code with statements that practice loops, like while and until when appropriate
  • Write Ruby code that takes in user input using gets.chomp
  • Practice creating, storing, and modifying variables

Baseline

You should write your program as a series of statements within a file calculator.rb. Anyone with this file should be able to run the command $ ruby calculator.rb to run the program. The program should ask the user for an operation (as a string symbol) and two numbers.

Primary Requirements

The program should use the input operation and two numbers to provide the result of applying the operation to the two numbers.

  • The program should have support for these four operations: addition, subtraction, multiplication, and division.
  • The program should accept both the name (add) and the symbol (+) for each possible operation.
  • The program should handle unexpected user input

Here is an example of what your program could look like. It does not have to look like this: example screenshot of a calculator proram

Test & Verify

Before you submit your work it's important to test your program and ensure it's working properly. Later we will teach you nifty ways to automate this testing, but for now we'll do things the old fashioned way.

To make sure your program works you will need to run your program and ensure:

  • The program adds numbers with both add and +
  • The program subtracts numbers with both subtract and -
  • The program adds numbers with both multiply and *
  • The program adds numbers with both divide and /
  • The program handles divide when attempting to divide by zero.
  • The program handles erroneous input. For example the user might enter clown when asked to enter a number.
    • The program also needs to handle erroneous operators.

Optional Enhancements

  • Print out the formula in addition to the result, i.e. 2 + 2 = 4
  • Add support for computing exponents (2^4 = 2 * 2 * 2 * 2 = 16).
  • Add support for the modulo operator (10 % 3 = 1).
  • Gracefully handle unexpected user input:
    • What happens if the user input is nil (i.e., the user just pressed enter)?
    • What happens if the user tries to add hotdog to elephant?
  • Make your program know when it needs to return an integer versus a float.
  • Add support for parentheticals, i.e. 10 / (5 + 5) = 1.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.