Making a Calculator
Below is the complete code for the Making a Calculator Try It Out! problem.
The Basic Solution
This solution meets the basic requirements of the problem. Compare also, to the next section, which is a bit more user friendly, but uses some techniques that will be learned in the upcoming chapters.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CSharpBook.Examples.Calculator { class Program { static void Main(string[] args) { // Get the different pieces we need. Console.WriteLine("Enter the first number: "); int number1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter the second number: "); int number2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter the operation (+, -, *, /, %, or ^):"); string operation = Console.ReadLine(); // This will store the result eventually. int result; // Do something different depending on the operator that the user // typed. switch (operation) { case "+": result = number1 + number2; break; case "-": result = number1 - number2; break; case "*": result = number1 * number2; break; case "/": result = number1 / number2; break; case "%": result = number1 % number2; break; case "^": result = (int)Math.Pow(number1, number2); break; default: // This is a catch-all, if the operator is unknown. Console.WriteLine("Unrecognized operator: " + operation); result = 0; break; } Console.WriteLine(number1 + " " + operation + " " + number2 + " = " + result); Console.ReadKey(); } } }
The Advanced Solution
This uses some things we will learn over the next few chapters to allow the user to enter their math problem all at once (as in "5 + 5") and it also allows the calculator to run repeatedly for doing multiple problems in a row.
If you're going through the book sequentially, this example will include a few concepts that you haven't seen yet.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace CSharpBook.Examples.Calculator { class Program { static void Main(string[] args) { // Print instructions. Console.WriteLine("Enter equation separated by spaces (ex. 5 + 5)."); // Just keep looping. Perhaps better than this would be to allow // the user to type "exit" and break out of the loop then. while (true) { // Get input from the user, split it up into the three pieces // (separated by spaces), to be ready to do the calculation. Console.Write(">>>"); string text = Console.ReadLine(); string[] parts = text.Split(' '); int number1 = Convert.ToInt32(parts[0]); string operation = parts[1]; int number2 = Convert.ToInt32(parts[2]); // The result will be stored in this variable. int result; // Do a different operation depending on the text the user // supplied. switch (operation) { case "+": result = number1 + number2; break; case "-": result = number1 - number2; break; case "*": result = number1 * number2; break; case "/": result = number1 / number2; break; case "%": result = number1 % number2; break; case "^": result = (int)Math.Pow(number1, number2); break; default: Console.WriteLine("Unrecognized operator: " + operation); result = 0; break; } // Print out the results. Console.WriteLine(number1 + " " + operation + " " + number2 + " = " + result); } } } }