CIS 200  Machine Problem 1
 
     For your first programming assignment you are to design 
and implement a program that will act as an interactive 
calculator capable of handling very large integers (1 to 20 
digits long). This calculator will need to perform only the 
operations of addition, subtraction, and multiplication. I 
would prefer that you work on this program in teams of 2 or 
3 people.

     The input to your program will be lines containing 
expressions of the form

  num1 op num2

and the output should look like

     num1
  op num2
  -------
     num3

Where num1 and num2 are integers 1 to 20 digits long, op is 
a single character (-, +, or *), and num3 is the integer (1 
to 20 digit) result of the calculation.

     Design your program carefully. You will need to include 
the following in your design:

  1. a data structure to hold numbers (e.g. array of int) 
  2. a function to read in numbers (ignoring leading zeros)
  3. a function to write numbers (skipping leading zeros)
  4. functions to add, subtract, and multiply numbers
  5. check for arithmetic overflow (> 20 digits in answer)
  6. reasonable error processing for invalid input

     Your final solution will need to be written using any 
implementation of C++ you have access to. You will need to 
turn in your:

  1. proof of compilation
  2. pseudocode versions of your algorithms
  3. a module structure chart
  4. a list of your input test data
  5. the output using your test data
  6. 3 to 5 pages of external program documentation
     (e.g. a program specification document and test summary) 

     Your code must be well commented, written using good 
style, and use parameters to pass any information to the 
program's functions. Programs without functions won't be 
graded. This program is worth 30 points and is due two weeks 
from today.