Курсовая калькулятор 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 ); } } }