C#

Калькулятор

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Calculator
{

    public class Program
    {
        static void Main(string[] args)
        {

            ConsoleKeyInfo keyinput;


            try
            {
                do
                {
                    Console.WriteLine("Press : 1,2,3,4,5,6 to choose which arithmetic operation you want.\n1=additon, 2=subtract, 3=product, 4=quotient, 5=square, 6=square root.\nAlso press ESC to quit.");
                    keyinput = Console.ReadKey();

                    if (keyinput.Key == ConsoleKey.Escape)
                    {
                        return;
                        
                    }
                  

                    else if (keyinput.Key != ConsoleKey.Escape)
                    {


                        if (keyinput.Key == ConsoleKey.D1)
                        {
                            Console.WriteLine("\nChoose a left number and press Enter :");
                            double num1 = Convert.ToDouble(Console.ReadLine());
                            Console.WriteLine("Choose a right number and press Enter :");
                            double num2 = Convert.ToDouble(Console.ReadLine());
                            double result = Ops.AddNumbers(num1, num2);
                            
                            Console.WriteLine("Arithmetic operation : {0} + {1} = {2}", num1, num2, result);
                          double  lastOp = Ops.AddNumbers(num1,num2);
                          string opSign = "+";
                            
                            do
                            {

                                Console.WriteLine("\nDo you wish to continue operations with {0}? \nPress Enter to 'Yes' or ESC to 'No' :", result);
                                
                                Console.WriteLine("You can press 'S' to save this operation and run it again later.");
                                
                                
                                keyinput = Console.ReadKey();
                                if (keyinput.Key == ConsoleKey.S)
                                {
                                    
                                    Console.WriteLine("\nThe operation is saved succuessfull!");

                                    keyinput = Console.ReadKey();

                                }
                                
                                 if (keyinput.Key == ConsoleKey.Enter)
                                {
                                    Console.Clear();
                                    Console.WriteLine("Press : 1,2,3,4,5,6 to choose which arithmetic operation \nyou want to do with {0}?\n1=additon, 2=subtract, 3=product, 4=quotient, 5=square, 6=square root.\nYou can press 'R' to run last operation again.\nAlso press ESC to start operations with new numbers.", result);
                                    keyinput = Console.ReadKey();

                                    if (keyinput.Key == ConsoleKey.Escape)
                                    {
                                        continue;
                                    }
                                    if (keyinput.Key == ConsoleKey.R)
                                    {

                                        
                                        Console.Write("\nArithmetic operation : {0} {1} {2} = {3}", num1, opSign, num2, lastOp);
                                    }
                                   

                                    else if (keyinput.Key == ConsoleKey.D1)
                                    {

                                        num1 = result;

                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);
                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.AddNumbers(num1, num2);

                                        Console.WriteLine("{0} + {1} = {2}", num1, num2, result);

                                        lastOp = Ops.AddNumbers(num1,num2);
                                        opSign = "+";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D2)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.SubtractNumbers(num1, num2);

                                        Console.WriteLine("{0} - {1} = {2}", num1, num2, result);
                                        lastOp = Ops.SubtractNumbers(num1,num2);
                                        opSign = "-";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D3)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.ProductNumbers(num1, num2);

                                        Console.WriteLine("{0} * {1} = {2}", num1, num2, result);
                                        lastOp = Ops.ProductNumbers(num1,num2);
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D4)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.DevideNumbers(num1, num2);
                                        if (num1 == 0 || num2 == 0)
                                        {
                                            Console.WriteLine("Whoops there is a problem here, you can't devide by zero!");
                                            throw new DivideByZeroException();
                                        }
                                        Console.WriteLine("{0} : {1} = {2}", num1, num2, result);
                                         lastOp = Ops.DevideNumbers(num1,num2);
                                        opSign = ":";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D5)
                                    {
                                        num1 = result;
                                        result = Ops.square(result);

                                        Console.WriteLine("\nThe square of number {0} is equals to {1}", num1, result);
                                        num2 = num1;
                                        lastOp = Ops.ProductNumbers(num1,num2);
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D6)
                                    {
                                        num1 = result;                  
                                        result = Ops.squareRoot(result);
                                        if (num1 < 0)
                                        {
                                            Console.WriteLine("\nYou just can't get square root from negative number.");
                                            throw new ArithmeticException();
                                        }
                                        Console.WriteLine("\nThe square root of number {0} is equals to {1}", num1, result);
                                        num2 = result;
                                        lastOp = Ops.squareRoot(num1);

                                        opSign = "/";
                                    }


                                    else
                                    {

                                        Console.WriteLine("\nWhoops there is a problem here, you can press here only following : \n1,2,3,4,5,6,ESC.\nPress ESC to quit or any other key to continue :");
                                        keyinput = Console.ReadKey();
                                        if (keyinput.Key == ConsoleKey.Escape)
                                        {
                                            return;

                                        }

                                        continue;
                                    }
                                }
                            } while (keyinput.Key != ConsoleKey.Escape);
                        }

                        else if (keyinput.Key == ConsoleKey.D2)
                        {
                            Console.WriteLine("\nChoose a left number and press Enter :");
                            double num1 = Convert.ToDouble(Console.ReadLine());
                            Console.WriteLine("Choose a right number and press Enter :");
                            double num2 = Convert.ToDouble(Console.ReadLine());
                            double result = Ops.SubtractNumbers(num1, num2);
                            double lastOp = Ops.SubtractNumbers(num1,num2);
                            string opSign = "-";
                            Console.WriteLine("Arithmetic operation : {0} - {1} = {2}", num1, num2, result);

                            do
                            {

                                Console.WriteLine("\nDo you wish to continue operations with {0}? \nPress Enter to 'Yes' or ESC to 'No' :", result);

                                Console.WriteLine("You can press 'S' to save this operation and run it again later.");


                                keyinput = Console.ReadKey();
                                if (keyinput.Key == ConsoleKey.S)
                                {
                                    
                                    Console.WriteLine("\nThe operation is saved succuessfull!");

                                    keyinput = Console.ReadKey();

                                }

                                if (keyinput.Key == ConsoleKey.Enter)
                                {
                                    Console.Clear();
                                    Console.WriteLine("Press : 1,2,3,4,5,6 to choose which arithmetic operation \nyou want to do with {0}?\n1=additon, 2=subtract, 3=product, 4=quotient, 5=square, 6=square root.\nYou can press 'R' to run last operation again.\nAlso press ESC to start operations with new numbers.", result);
                                    keyinput = Console.ReadKey();

                                    if (keyinput.Key == ConsoleKey.Escape)
                                    {
                                        continue;
                                    }
                                    if (keyinput.Key == ConsoleKey.R)
                                    {


                                        Console.Write("\nArithmetic operation : {0} {1} {2} = {3}", num1, opSign, num2, lastOp);
                                    }
                                    

                                    else if (keyinput.Key == ConsoleKey.D1)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.AddNumbers(num1, num2);

                                        Console.WriteLine("{0} + {1} = {2}", num1, num2, result);
                                        lastOp = Ops.AddNumbers(num1,num2);
                                        opSign = "+";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D2)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.SubtractNumbers(num1, num2);

                                        Console.WriteLine("{0} - {1} = {2}", num1, num2, result);
                                        lastOp = Ops.SubtractNumbers(num1,num2);
                                        opSign = "-";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D3)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.ProductNumbers(num1, num2);

                                        Console.WriteLine("{0} * {1} = {2}", num1, num2, result);
                                        lastOp = Ops.ProductNumbers(num1,num2);
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D4)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.DevideNumbers(num1, num2);
                                        if (num1 == 0 || num2 == 0)
                                        {
                                            Console.WriteLine("Whoops there is a problem here, you can't devide by zero!");
                                            throw new DivideByZeroException();
                                        }
                                        Console.WriteLine("{0} : {1} = {2}", num1, num2, result);
                                        lastOp = Ops.DevideNumbers(num1,num2);
                                        opSign = ":";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D5)
                                    {
                                        num1 = result;
                                        result = Ops.square(result);

                                        Console.WriteLine("\nThe square of number {0} is equals to {1}", num1, result);
                                        num2 = num1;
                                        lastOp = Ops.square(num1);
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D6)
                                    {
                                        num1 = result;
                                        result = Ops.squareRoot(result);
                                        if (num1 < 0)
                                        {
                                            Console.WriteLine("\nYou just can't get square root from negative number.");
                                            throw new ArithmeticException();
                                        }
                                        Console.WriteLine("\nThe square root of number {0} is equals to {1}", num1, result);
                                        num2 = result;
                                        lastOp = Ops.squareRoot(num1);
                                        opSign = "/";
                                    }
                                    else
                                    {

                                        Console.WriteLine("\nWhoops there is a problem here, you can press here only following : \n1,2,3,4,5,6,ESC.\nPress ESC to quit or any other key to continue :");
                                        keyinput = Console.ReadKey();
                                        if (keyinput.Key == ConsoleKey.Escape)
                                        {
                                            return;

                                        }


                                        continue;
                                    }
                                }
                            } while (keyinput.Key != ConsoleKey.Escape);
                        }

                        else if (keyinput.Key == ConsoleKey.D3)
                        {
                            Console.WriteLine("\nChoose a left number and press Enter :");
                            double num1 = Convert.ToDouble(Console.ReadLine());
                            Console.WriteLine("Choose a right number and press Enter :");
                            double num2 = Convert.ToDouble(Console.ReadLine());
                            double result = Ops.ProductNumbers(num1, num2);
                            double lastOp = Ops.ProductNumbers(num1,num2);
                            string opSign = "*";

                            Console.WriteLine("Arithmetic operation : {0} * {1} = {2}", num1, num2, result);

                            do
                            {
                                Console.WriteLine("\nDo you wish to continue operations with {0}? \nPress Enter to 'Yes' or ESC to 'No' :", result);

                                Console.WriteLine("You can press 'S' to save this operation and run it again later.");


                                keyinput = Console.ReadKey();
                                if (keyinput.Key == ConsoleKey.S)
                                {

                                    Console.WriteLine("\nThe operation is saved succuessfull!");

                                    keyinput = Console.ReadKey();

                                }

                                if (keyinput.Key == ConsoleKey.Enter)
                                {
                                    Console.Clear();
                                    Console.WriteLine("Press : 1,2,3,4,5,6 to choose which arithmetic operation \nyou want to do with {0}?\n1=additon, 2=subtract, 3=product, 4=quotient, 5=square, 6=square root.\nYou can press 'R' to run last operation again.\nAlso press ESC to start operations with new numbers.", result);
                                    keyinput = Console.ReadKey();

                                    if (keyinput.Key == ConsoleKey.Escape)
                                    {
                                        continue;
                                    }
                                    if (keyinput.Key == ConsoleKey.R)
                                    {


                                        Console.Write("\nArithmetic operation : {0} {1} {2} = {3}", num1, opSign, num2, lastOp);
                                    }
                                    
                                    else if (keyinput.Key == ConsoleKey.D1)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.AddNumbers(num1, num2);

                                        Console.WriteLine("{0} + {1} = {2}", num1, num2, result);
                                        lastOp = Ops.AddNumbers(num1,num2);
                                        opSign = "+";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D2)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.SubtractNumbers(num1, num2);

                                        Console.WriteLine("{0} - {1} = {2}", num1, num2, result);
                                        lastOp = Ops.SubtractNumbers(num1,num2);
                                        opSign = "-";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D3)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.ProductNumbers(num1, num2);

                                        Console.WriteLine("{0} * {1} = {2}", num1, num2, result);
                                        lastOp = Ops.ProductNumbers(num1,num2);
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D4)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.DevideNumbers(num1, num2);
                                        if (num1 == 0 || num2 == 0)
                                        {
                                            Console.WriteLine("Whoops there is a problem here, you can't devide by zero!");
                                            throw new DivideByZeroException();
                                        }
                                        Console.WriteLine("{0} : {1} = {2}", num1, num2, result);
                                        lastOp = Ops.DevideNumbers(num1,num2);
                                        opSign = ":";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D5)
                                    {
                                        num1 = result;
                                        result = Ops.square(result);

                                        Console.WriteLine("\nThe square of number {0} is equals to {1}", num1, result);
                                        num2 = num1;
                                        lastOp = Ops.square(num1) ;
                                        
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D6)
                                    {
                                        num1 = result;
                                        result = Ops.squareRoot(result);
                                        if (num1 < 0)
                                        {
                                            Console.WriteLine("\nYou just can't get square root from negative number.");
                                            throw new ArithmeticException();
                                            
                                        }
                                        Console.WriteLine("\nThe square root of number {0} is equals to {1}", num1, result);
                                        num2 = result;
                                        lastOp = Ops.squareRoot(num1) ;

                                        opSign = "/";
                                    }
                                    else
                                    {

                                        Console.WriteLine("\nWhoops there is a problem here, you can press here only following : \n1,2,3,4,5,6,ESC.\nPress ESC to quit or any other key to continue :");
                                        keyinput = Console.ReadKey();
                                        if (keyinput.Key == ConsoleKey.Escape)
                                        {
                                            return;

                                        }


                                        continue;
                                    }
                                }
                            } while (keyinput.Key != ConsoleKey.Escape);
                        }

                        else if (keyinput.Key == ConsoleKey.D4)
                        {
                            Console.WriteLine("\nChoose a left number and press Enter :");
                            double num1 = Convert.ToDouble(Console.ReadLine());
                            Console.WriteLine("Choose a right number and press Enter :");
                            double num2 = Convert.ToDouble(Console.ReadLine());
                            double lastOp = Ops.DevideNumbers(num1,num2);
                            string opSign = ":";
                            if (num1 == 0 || num2 == 0)
                            {
                                Console.WriteLine("Whoops there is a problem here, you can't devide by zero!");
                                throw new DivideByZeroException();
                            }

                            double result = Ops.DevideNumbers(num1, num2);

                            Console.WriteLine("Arithmetic operation : {0} : {1} = {2}", num1, num2, result);
                            
                            do
                            {

                                Console.WriteLine("\nDo you wish to continue operations with {0}? \nPress Enter to 'Yes' or ESC to 'No' :", result);

                                Console.WriteLine("You can press 'S' to save this operation and run it again later.");


                                keyinput = Console.ReadKey();
                                if (keyinput.Key == ConsoleKey.S)
                                {

                                    Console.WriteLine("\nThe operation is saved succuessfull!");

                                    keyinput = Console.ReadKey();

                                }

                                if (keyinput.Key == ConsoleKey.Enter)
                                {
                                    Console.Clear();
                                    Console.WriteLine("Press : 1,2,3,4,5,6 to choose which arithmetic operation \nyou want to do with {0}?\n1=additon, 2=subtract, 3=product, 4=quotient, 5=square, 6=square root.\nYou can press 'R' to run last operation again.\nAlso press ESC to start operations with new numbers.", result);
                                    keyinput = Console.ReadKey();

                                    if (keyinput.Key == ConsoleKey.Escape)
                                    {
                                        continue;
                                    }
                                    if (keyinput.Key == ConsoleKey.R)
                                    {


                                        Console.Write("\nArithmetic operation : {0} {1} {2} = {3}", num1, opSign, num2, lastOp);
                                    }


                                    else if (keyinput.Key == ConsoleKey.D1)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.AddNumbers(num1, num2);

                                        Console.WriteLine("{0} + {1} = {2}", num1, num2, result);
                                        lastOp = Ops.AddNumbers(num1, num2);
                                        opSign = "+";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D2)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.SubtractNumbers(num1, num2);

                                        Console.WriteLine("{0} - {1} = {2}", num1, num2, result);
                                        lastOp = Ops.SubtractNumbers(num1, num2);
                                        opSign = "-";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D3)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.ProductNumbers(num1, num2);

                                        Console.WriteLine("{0} * {1} = {2}", num1, num2, result);
                                        lastOp = Ops.ProductNumbers(num1, num2);
                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D4)
                                    {

                                        num1 = result;
                                        Console.WriteLine("\nThe left number is {0}, choose a right number and press Enter :", result);

                                        num2 = Convert.ToDouble(Console.ReadLine());
                                        result = Ops.DevideNumbers(num1, num2);
                                        if (num1 == 0 || num2 == 0)
                                        {
                                            Console.WriteLine("Whoops there is a problem here, you can't devide by zero!");
                                            throw new DivideByZeroException();
                                        }
                                        Console.WriteLine("{0} : {1} = {2}", num1, num2, result);
                                        lastOp = Ops.DevideNumbers(num1, num2);
                                        opSign = ":";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D5)
                                    {
                                        num1 = result;
                                        result = Ops.square(result);

                                        Console.WriteLine("\nThe square of number {0} is equals to {1}", num1, result);
                                        num2 = num1;
                                        lastOp = Ops.square(num1);

                                        opSign = "*";
                                    }
                                    else if (keyinput.Key == ConsoleKey.D6)
                                    {
                                        num1 = result;
                                        result = Ops.squareRoot(result);
                                        if (num1 < 0)
                                        {
                                            Console.WriteLine("\nYou just can't get square root from negative number.");
                                            throw new ArithmeticException();

                                        }
                                        Console.WriteLine("\nThe square root of number {0} is equals to {1}", num1, result);
                                        num2 = result;
                                        lastOp = Ops.squareRoot(num1);

                                        opSign = "/";
                                    }
                                    else
                                    {

                                        Console.WriteLine("\nWhoops there is a problem here, you can press here only following : \n1,2,3,4,5,6,ESC.\nPress ESC to quit or any other key to continue :");
                                        keyinput = Console.ReadKey();
                                        if (keyinput.Key == ConsoleKey.Escape)
                                        {
                                            return;

                                        }

                                       
                                        continue;
                                    }
                                }
                            } while (keyinput.Key != ConsoleKey.Escape);
                        }
                        else if (keyinput.Key == ConsoleKey.D5)
                        {
                            Console.WriteLine("\nChoose a number and press Enter :");
                            double num1 = Convert.ToDouble(Console.ReadLine());
                            double result = Ops.square(num1);                         
                            Console.WriteLine("The square of number {0} is equals to {1}", num1, result);
                            
                        }
                        else if (keyinput.Key == ConsoleKey.D6)
                        {
                            Console.WriteLine("\nChoose a number and press Enter :");
                            double num1 = Convert.ToDouble(Console.ReadLine());
                            double result = Ops.squareRoot(num1);
                            if (num1<0)
                            {
                                Console.WriteLine("You just can't get square root from negative number.");
                                throw new ArithmeticException();
                            }
                            Console.WriteLine("The square root of number {0} is equals to {1}", num1, result);
                            
                        }
                       

 
                        else
                        {

                            Console.WriteLine("\nWhoops there is a problem here, you can press here only following : \n1,2,3,4,5,6,ESC.\nPress ESC to quit or any other key to continue :");
                            keyinput = Console.ReadKey();
                            if (keyinput.Key == ConsoleKey.Escape)
                            {
                                return;

                            }

                            Console.Clear();
                            continue;
                        }
                        
                    }

                    Console.WriteLine("\nPress ESC to exit the program or any other key to starts \nnew operations with new numbers :");
                    keyinput = Console.ReadKey();
                    Console.Clear();

                } while (keyinput.Key != ConsoleKey.Escape);
            }
            catch (ArithmeticException z)
            {

                Console.WriteLine(z.Message);
                Console.WriteLine("Press Enter to quit.");    
                Console.ReadLine();
                
            }
            catch (FormatException c)
            {
                Console.WriteLine(c.Message);
                Console.WriteLine("Press Enter to quit.");
                Console.ReadLine();
                
            }
        }    
    }
    public static class  Ops
    {
        
        public static double AddNumbers(double num1, double num2)
        {
            
            return num1 + num2;
        }
        public static double SubtractNumbers(double num1, double num2)
        {
            return num1 - num2;
        }
        public static double ProductNumbers(double num1, double num2)
        {
            return num1 * num2;
        }
        public static double DevideNumbers(double num1, double num2)
        {
            return num1 / num2;
        }
        public static double square(double num1)
        {
            return num1 * num1;
        }
        public static double squareRoot(double num1)
        {
            return Math.Sqrt(num1);          
        }
    

    }
}
Добавлено: 27 Августа 2013 04:22:36 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...