Курсовая калькулятор C#

Узнай цену своей работы

Формулировка задачи:

Помогите написать курсовую работу, калькулятор на C#

Решение задачи: «Курсовая калькулятор C#»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication1
{
    static class Calculate
    {
        private static Dictionary<char, Func<double[], double>> operations = 
            new Dictionary<char, Func<double[], double>>();
 
 
        static Calculate()
        {
            InitCalcStandartFunctional();
        }
 
 
        private static double Calc( char sign, params double[] param )
        {
            return operations[sign]( param );
        }
 
        private static void InitCalcStandartFunctional()
        {
            operations.Add( '+', delegate( double[] args )
                {
                    double result = 0;
                    foreach ( double arg in args ) result += arg;
 
                    return result;
                } );
 
            operations.Add( '-', delegate( double[] args )
                {
                    double result = args[0];
                    for ( int i = 1; i < args.Length; i++ ) result -= args[i]; 
 
                    return result;
                } );
 
            operations.Add( '*', delegate( double[] args )
                {
                    double result = 1;
                    foreach ( double arg in args ) result *= arg;
 
                    return result;
                } );
 
            operations.Add( '/', delegate( double[] args )
                {
                    double result = args[0];
                    for ( int i = 1; i < args.Length; i++ ) result /= args[i];
 
                    return result;
                } );
        }
 
 
        public static void AddFunctions( char sign, Func<double[], double> f )
        {
            if ( operations.ContainsKey( sign ) )
                throw new InvalidOperationException( "Дубликат знака операции." );
            else operations.Add( sign, f );
        }
 
        public static void AddFunctions( KeyValuePair<char, Func<double[], double>> f )
        {
            AddFunctions( f.Key, f.Value );
        }
 
        public static double Parse( string str )
        {
            string[] param = str.Split( new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries );
            char sign = param[0][0];
 
            double[] resParam = new double[param.Length - 1];
            for ( int i = 1; i < param.Length; i++ )
                resParam[i - 1] = double.Parse( param[i] );
 
            return Calc( sign, resParam );
        }
    }
 
    class Program
    {
        static void Main()
        {
            Console.Write( Calculate.Parse( "+ 1 2 3 4 5 6 7 8 9 10" ) );
            Console.ReadKey( true );
        }
    }
}

Оцени полезность:

10   голосов , оценка 4.3 из 5