public static void Main(string[] args) { Assembly a = Assembly.LoadFrom("Calc.dll"); Console.WriteLine("Classes and Methods in Calc.dll"); foreach (Type t in a.GetTypes()) { Console.WriteLine("Class Name : " + t.Name); Console.WriteLine("Methods in " + t.Name + ":"); foreach (MethodInfo method in t.GetMethods()) { Console.WriteLine(method); } Console.WriteLine(" "); } string choicecalculator, simpcalc, complcalc; do { Console.WriteLine("Select 1 for simple calculator, 2 for complex calculator and 3 to quit"); choicecalculator = Console.ReadLine(); if (choicecalculator == "1") { Console.WriteLine("Simple Calculator was selected"); Console.WriteLine("Select 1 for add, 2 for sub, 3 to mult and 4 to div"); simpcalc = Console.ReadLine(); int c, d; if (simpcalc == "1") { Console.WriteLine("enter in the first int:"); string first = Console.ReadLine(); Console.WriteLine("enter in the second int:"); string second = Console.ReadLine(); c = int.Parse(first); d = int.Parse(second); SimpleCalc myClassObj = new SimpleCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("add"); object[] mParam = new object[] { c, d }; Console.Write("Result: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } if (simpcalc == "2") { Console.WriteLine("enter in the first int:"); string first = Console.ReadLine(); Console.WriteLine("enter in the second int:"); string second = Console.ReadLine(); c = int.Parse(first); d = int.Parse(second); SimpleCalc myClassObj = new SimpleCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("sub"); object[] mParam = new object[] { c, d }; Console.Write("Result: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } if (simpcalc == "3") { Console.WriteLine("enter in the first int:"); string first = Console.ReadLine(); Console.WriteLine("enter in the second int:"); string second = Console.ReadLine(); c = int.Parse(first); d = int.Parse(second); SimpleCalc myClassObj = new SimpleCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("mult"); object[] mParam = new object[] { c, d }; Console.Write("Result: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } if (simpcalc == "4") { double x, y; Console.WriteLine("enter in the first int:"); string first = Console.ReadLine(); Console.WriteLine("enter in the second int:"); string second = Console.ReadLine(); x = double.Parse(first); y = double.Parse(second); SimpleCalc myClassObj = new SimpleCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("div"); object[] mParam = new object[] { x, y }; Console.Write("Result: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } } if (choicecalculator == "2") { Console.WriteLine("Complex Calculator was selected"); Console.WriteLine("Select 1 for add, 2 for sub, 3 to mult and 4 to div"); complcalc = Console.ReadLine(); int c, d, e, f; if (complcalc == "1") { Console.WriteLine("enter in the first real int:"); string firstreal = Console.ReadLine(); Console.WriteLine("enter in the first imaginary int:"); string firstim = Console.ReadLine(); c = int.Parse(firstreal); d = int.Parse(firstim); Console.WriteLine("enter in the second real int:"); string secondreal = Console.ReadLine(); Console.WriteLine("enter in the second imaginary int:"); string secondim = Console.ReadLine(); e = int.Parse(secondreal); f = int.Parse(secondim); ComplexCalc myClassObj = new ComplexCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("addreal"); object[] mParam = new object[] { c, e }; Console.Write("Real: " + myMethodInfo.Invoke(myClassObj, mParam)); myMethodInfo = myTypeObj.GetMethod("addim"); mParam = new object[] { d, f }; Console.Write("im: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } if (complcalc == "2") { Console.WriteLine("enter in the first real int:"); string firstreal = Console.ReadLine(); Console.WriteLine("enter in the first imaginary int:"); string firstim = Console.ReadLine(); c = int.Parse(firstreal); d = int.Parse(firstim); Console.WriteLine("enter in the second real int:"); string secondreal = Console.ReadLine(); Console.WriteLine("enter in the second imaginary int:"); string secondim = Console.ReadLine(); e = int.Parse(secondreal); f = int.Parse(secondim); ComplexCalc myClassObj = new ComplexCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("subreal"); object[] mParam = new object[] { c, e }; Console.Write("Real: " + myMethodInfo.Invoke(myClassObj, mParam)); myMethodInfo = myTypeObj.GetMethod("subim"); mParam = new object[] { d, f }; Console.Write("im: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } if (complcalc == "3") { Console.WriteLine("enter in the first real int:"); string firstreal = Console.ReadLine(); Console.WriteLine("enter in the first imaginary int:"); string firstim = Console.ReadLine(); c = int.Parse(firstreal); d = int.Parse(firstim); Console.WriteLine("enter in the second real int:"); string secondreal = Console.ReadLine(); Console.WriteLine("enter in the second imaginary int:"); string secondim = Console.ReadLine(); e = int.Parse(secondreal); f = int.Parse(secondim); ComplexCalc myClassObj = new ComplexCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("multreal"); object[] mParam = new object[] { c, e }; Console.Write("Real: " + myMethodInfo.Invoke(myClassObj, mParam)); myMethodInfo = myTypeObj.GetMethod("multim"); mParam = new object[] { d, f }; Console.Write("im: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } if (complcalc == "4") { double p, l, o, k; Console.WriteLine("enter in the first real int:"); string firstreal = Console.ReadLine(); Console.WriteLine("enter in the first imaginary int:"); string firstim = Console.ReadLine(); p = double.Parse(firstreal); l = double.Parse(firstim); Console.WriteLine("enter in the second real int:"); string secondreal = Console.ReadLine(); Console.WriteLine("enter in the second imaginary int:"); string secondim = Console.ReadLine(); o = int.Parse(secondreal); k = int.Parse(secondim); ComplexCalc myClassObj = new ComplexCalc(); Type myTypeObj = myClassObj.GetType(); MethodInfo myMethodInfo = myTypeObj.GetMethod("divreal"); object[] mParam = new object[] { p, o }; Console.Write("Real: " + myMethodInfo.Invoke(myClassObj, mParam)); myMethodInfo = myTypeObj.GetMethod("divim"); mParam = new object[] { l, k }; Console.Write("im: " + myMethodInfo.Invoke(myClassObj, mParam) + " \n"); } } }while(choicecalculator != "3"); }
private void Calculate(object sender, RoutedEventArgs e) { Button b = (Button)sender; if (b.Name == "SinT") { SimpleCalc s = new SimpleCalc(); try { Result.Text = "Result: " + s.sin(Convert.ToSingle(Num1.Text)); } catch (FormatException) { Result.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "CosT") { SimpleCalc s = new SimpleCalc(); try { Result.Text = "Result: " + s.cos(Convert.ToSingle(Num1.Text)); } catch (FormatException) { Result.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "TanT") { SimpleCalc s = new SimpleCalc(); try { Result.Text = "Result: " + s.tan(Convert.ToSingle(Num1.Text)); } catch (FormatException) { Result.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "SimplePlus") { SimpleCalc s = new SimpleCalc(); try { SimpleResult.Text = "Result: " + s.add(Convert.ToSingle(SimpleNum1.Text), Convert.ToSingle(SimpleNum2.Text)); } catch (FormatException) { SimpleResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "SimpleMinus") { SimpleCalc s = new SimpleCalc(); try { SimpleResult.Text = "Result: " + s.subtract(Convert.ToSingle(SimpleNum1.Text), Convert.ToSingle(SimpleNum2.Text)); } catch (FormatException) { SimpleResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "SimpleMultiply") { SimpleCalc s = new SimpleCalc(); try { SimpleResult.Text = "Result: " + s.multiply(Convert.ToSingle(SimpleNum1.Text), Convert.ToSingle(SimpleNum2.Text)); } catch (FormatException) { SimpleResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "SimpleDivide") { SimpleCalc s = new SimpleCalc(); try { SimpleResult.Text = "Result: " + s.divide(Convert.ToSingle(SimpleNum1.Text), Convert.ToSingle(SimpleNum2.Text)); } catch (FormatException) { SimpleResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "SimplePower") { SimpleCalc s = new SimpleCalc(); try { SimpleResult.Text = "Result: " + s.pow(Convert.ToSingle(SimpleNum1.Text), Convert.ToSingle(SimpleNum2.Text)); } catch (FormatException) { SimpleResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "SimpleModulous") { SimpleCalc s = new SimpleCalc(); try { SimpleResult.Text = "Result: " + s.mod(Convert.ToSingle(SimpleNum1.Text), Convert.ToSingle(SimpleNum2.Text)); } catch (FormatException) { SimpleResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "ComplexPlus") { ComplexCalc c = new ComplexCalc(); try { cFloat num1 = new cFloat(Convert.ToSingle(ComplexReal1.Text), Convert.ToSingle(ComplexImg1.Text)); cFloat num2 = new cFloat(Convert.ToSingle(ComplexReal2.Text), Convert.ToSingle(ComplexImg2.Text)); cFloat res = c.add(num1, num2); ComplexResult.Text = "Result: (" + res.getReal() + "," + res.getImg() + ")"; } catch (FormatException) { ComplexResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "ComplexMinus") { ComplexCalc c = new ComplexCalc(); try { cFloat num1 = new cFloat(Convert.ToSingle(ComplexReal1.Text), Convert.ToSingle(ComplexImg1.Text)); cFloat num2 = new cFloat(Convert.ToSingle(ComplexReal2.Text), Convert.ToSingle(ComplexImg2.Text)); cFloat res = c.subtract(num1, num2); ComplexResult.Text = "Result: (" + res.getReal() + "," + res.getImg() + ")"; } catch (FormatException) { ComplexResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "ComplexMultiply") { ComplexCalc c = new ComplexCalc(); try { cFloat num1 = new cFloat(Convert.ToSingle(ComplexReal1.Text), Convert.ToSingle(ComplexImg1.Text)); cFloat num2 = new cFloat(Convert.ToSingle(ComplexReal2.Text), Convert.ToSingle(ComplexImg2.Text)); cFloat res = c.multiply(num1, num2); ComplexResult.Text = "Result: (" + res.getReal() + "," + res.getImg() + ")"; } catch (FormatException) { ComplexResult.Text = "Please Enter Valid Numbers"; } } else if (b.Name == "ComplexDivide") { ComplexCalc c = new ComplexCalc(); try { cFloat num1 = new cFloat(Convert.ToSingle(ComplexReal1.Text), Convert.ToSingle(ComplexImg1.Text)); cFloat num2 = new cFloat(Convert.ToSingle(ComplexReal2.Text), Convert.ToSingle(ComplexImg2.Text)); cFloat res = c.divide(num1, num2); ComplexResult.Text = "Result: (" + res.getReal() + "," + res.getImg() + ")"; } catch (FormatException) { ComplexResult.Text = "Please Enter Valid Numbers"; } } }