Sergio Andrés Sepúlveda
Sthefany Blanco
Juan David Franco
Para el primer avance de la calculadora científica desarrollamos una clase simple que contiene los métodos para operar 2 números ya sea sumándolos, restándolos, multiplicándolos o dividiéndolos, además se establecen dominios para los números tales como naturales, enteros, racionales, complejos y reales.
¿que se ha implementado hasta el momento?
por ahora se tiene implementado los métodos de suma, resta, multiplicación y división dentro de los dominios de naturales, enteros y racionales dentro de los cuales se manejan las restricciones de números negativos en los números naturales y la división por 0 en los demás.
¿que falta?
falta el manejo de los números complejos y reales y hacer la validación al momento de ingresar los números y las opciones en el menú.
Diagrama de clase:
Código fuente:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CalculadoraCientifica{class Calculadora{//Métodos de operacion con naturalespublic static int SumaNatural(int x, int y){if (x < 0 || y < 0)//verifica si los números ingresados están dentro del rango de los naturales{throw new SystemException();}else{int suma = x + y;return suma;}}public static int RestaNatural(int x, int y){if (x < 0 || y < 0)//verifica si los números ingresados están dentro del rango de los naturales{throw new SystemException();}else if (x < y)//verifica si el segundo numero es mayor que el primero ya que esto produce que el resultado esté fuera de los numeros naturales{throw new SystemException();}else{int resta = x - y;return resta;}}public static int MultiplicacionNatural(int x, int y){if (x < 0 || y < 0)//verifica si los números ingresados están dentro del rango de los naturales{throw new SystemException();}else{int multi = x * y;return multi;}}public static int DivisionNatural(int x, int y){if (x < 0 || y < 0)//verifica si los números ingresados están dentro del rango de los naturales{throw new SystemException();}else if (y == 0)//verifica si el segundo número ingresado es 0 ya que la división por 0 no existe{throw new DivideByZeroException();}else{int div = x / y;return div;}}//Métodos de operacion de enterospublic static int SumaEntero(int x, int y){int suma = x + y;return suma;}public static int RestaEntero(int x, int y){int resta = x - y;return resta;}public static int MultiplicacionEntero(int x, int y){int multi = x * y;return multi;}public static int DivisionEntero(int x, int y){if (y == 0)//verifica si el segundo número ingresado es 0 ya que la división por 0 no existe{throw new DivideByZeroException();}else{int div = x / y;return div;}}//Métodos de operacion de racionalespublic static double SumaRacional(double x, double y){double suma = x + y;return suma;}public static double RestaRacional(double x, double y){double resta = x - y;return resta;}public static double MultiplicacionRacional(double x, double y){double multi = x * y;return multi;}public static double DivisionRacional(double x, double y){if (y == 0)//verifica si el segundo número ingresado es 0 ya que la división por 0 no existe{throw new DivideByZeroException();}else{double div = x / y;return div;}}// Menu principalstatic void Main(string[] args){//variables para los operadoresint a, b; //naturales y enterosdouble c, d; //racionalesConsole.WriteLine("Seleccione el dominio de números para trabajar:\n1.Naturales\n2.Enteros\n3.Racionales\n4.Reales\n5.Complejos\n6.Salir\n");int menu = int.Parse(Console.ReadLine());switch(menu){//menu números naturalescase 1:Console.WriteLine("\nEscriba el primer valor: ");a = int.Parse(Console.ReadLine());Console.WriteLine("\nEscriba el segundo valor: ");b = int.Parse(Console.ReadLine());Console.WriteLine("\nRecuerde que los numeros naturales no comprenden los números negativos\n ni los que tienen parte decimal");Console.WriteLine("\nSeleccione la operación:\n1.Suma\n2.Resta\n3.Multiplicación\n4.División\n5.Salir\n");int menunatural = int.Parse(Console.ReadLine());switch (menunatural){case 1:try{Console.WriteLine("\nSuma = " + SumaNatural(a, b));}catch (SystemException e){Console.WriteLine("\nEn los números naturales no entran los numeros negativos");}break;case 2:try{Console.WriteLine("\nResta = " + RestaNatural(a, b));}catch (SystemException e){Console.WriteLine("\nEn los números naturales no entran los numeros negativos");}break;case 3:try{Console.WriteLine("\nMultiplicación = " + MultiplicacionNatural(a, b));}catch (SystemException e){Console.WriteLine("\nEn los números naturales no entran los numeros negativos");}break;case 4:try{Console.WriteLine("\nDivisión = " + DivisionNatural(a, b));}catch (DivideByZeroException e){Console.WriteLine("\nNo existe la división por 0");}catch (SystemException e){Console.WriteLine("\nEn los números naturales no entran los numeros negativos");}break;case 5:System.Environment.Exit(0);break;default:Console.WriteLine("\nEscriba un numero de 1 a 5");break;}break;//menu números enteroscase 2:Console.WriteLine("\nEscriba el primer valor: ");a = int.Parse(Console.ReadLine());Console.WriteLine("\nEscriba el segundo valor: ");b = int.Parse(Console.ReadLine());Console.WriteLine("\nRecuerde que los números enteros no comprenden los números\n que tienen parte decimal");Console.WriteLine("\nSeleccione la operación:\n1.Suma\n2.Resta\n3.Multiplicación\n4.División\n5.Salir\n");int menuentero = int.Parse(Console.ReadLine());switch (menuentero){case 1:Console.WriteLine("\nSuma = " + SumaEntero(a,b));break;case 2:Console.WriteLine("\nResta = " + RestaEntero(a, b));break;case 3:Console.WriteLine("\nMultiplicación = " + MultiplicacionEntero(a, b));break;case 4:try{Console.WriteLine("\nDivisión = " + DivisionEntero(a, b));}catch (DivideByZeroException e){Console.WriteLine("\nNo existe la división por 0");}break;case 5:System.Environment.Exit(0);break;default:Console.WriteLine("\nEscriba un numero de 1 a 5");break;}break;//menu números racionalescase 3:Console.WriteLine("\nEscriba el primer valor: ");c = double.Parse(Console.ReadLine());Console.WriteLine("\nEscriba el segundo valor: ");d = double.Parse(Console.ReadLine());Console.WriteLine("\nSeleccione la operación:\n1.Suma\n2.Resta\n3.Multiplicación\n4.División\n5.Salir\n");int menuracional = int.Parse(Console.ReadLine());switch (menuracional){case 1:Console.WriteLine("\nSuma = " + SumaRacional(c, d));break;case 2:Console.WriteLine("\nResta = " + RestaRacional(c, d));break;case 3:Console.WriteLine("\nMultiplicación = " + MultiplicacionRacional(c, d));break;case 4:try{Console.WriteLine("\nDivisión = " + DivisionRacional(c, d));}catch (DivideByZeroException e){Console.WriteLine("\nNo existe la división por 0");}break;case 5:System.Environment.Exit(0);break;default:Console.WriteLine("\nEscriba un numero de 1 a 5");break;}break;case 4:Console.WriteLine("\nNo implementado aun");break;case 5:Console.WriteLine("\nNo implementado aun");break;case 6:System.Environment.Exit(0);break;default:Console.WriteLine("\nEscriba un numero de 1 a 6");break;}Console.ReadLine();}}}
No hay comentarios:
Publicar un comentario