- 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
- Write Ruby code with statements that practice conditional logic, using
if
,elsif
, andelse
when appropriate - Write Ruby code with statements that practice loops, like
while
anduntil
when appropriate - Write Ruby code that takes in user input using
gets.chomp
- Practice creating, storing, and modifying variables
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.
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:
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.
- 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
toelephant
?
- What happens if the user input is
- Make your program know when it needs to return an integer versus a float.
- Add support for parentheticals, i.e.
10 / (5 + 5) = 1
.