Numero Complejo en Java- POO

package numeroImaginario; import java.util.Scanner; /** * * @author DAVID RICO */ public class numeroComplejo { //Atributos private double parteReal; private double parteImaginaria; //Constructores public numeroComplejo() { //parteReal = 0.0; //parteImaginaria = 0.0; } public numeroComplejo(double parteReal, double parteImaginaria) { this.parteReal = parteReal; this.parteImaginaria = parteImaginaria; } //getters public double getParteReal() { return parteReal; } public double getParteImaginaria() { return parteImaginaria; } //setters public void setParteReal(double parteReal) { this.parteReal = parteReal; } public void setParteImaginaria(double parteImaginaria) { this.parteImaginaria = parteImaginaria; } @Override public String toString() { if (parteImaginaria < 0) { return parteReal + "" + parteImaginaria + "i"; } if (parteImaginaria == 0.0) { return "" + parteReal; } return parteReal + "+i" + parteImaginaria; } //operaciones con metodo miembro public numeroComplejo suma(numeroComplejo other) { double ncReal = this.parteReal + other.parteReal; double ncImaginaria = this.parteImaginaria + other.parteImaginaria; return new numeroComplejo(ncReal, ncImaginaria); } public numeroComplejo resta(numeroComplejo other) { double ncReal = this.parteReal - other.parteReal; double ncImaginaria = this.parteImaginaria - other.parteImaginaria; return new numeroComplejo(ncReal, ncImaginaria); } public numeroComplejo multiplica(numeroComplejo other) { double ncReal = (this.parteReal * other.parteReal) - (this.parteImaginaria * other.parteImaginaria); double ncImaginaria = this.parteImaginaria * other.parteReal + this.parteReal * other.parteImaginaria; return new numeroComplejo(ncReal, ncImaginaria); } public numeroComplejo divide(numeroComplejo other) { double ncReal = this.parteReal * other.parteReal + this.parteImaginaria * other.parteImaginaria; double ncImaginaria = this.parteImaginaria * other.parteReal - this.parteReal * other.parteImaginaria; double division = other.parteReal * other.parteReal + other.parteImaginaria * other.parteImaginaria; return new numeroComplejo(ncReal / division, ncImaginaria / division); } //metodos estaticos public static numeroComplejo suma(numeroComplejo nc1, numeroComplejo nc2) { double ncReal = nc1.parteReal + nc2.parteReal; double ncImaginaria = nc1.parteImaginaria + nc2.parteImaginaria; return new numeroComplejo(ncReal, ncImaginaria); } public static numeroComplejo resta(numeroComplejo nc1, numeroComplejo nc2) { double ncReal = nc1.parteReal - nc2.parteReal; double ncImaginaria = nc1.parteImaginaria - nc2.parteImaginaria; return new numeroComplejo(ncReal, ncImaginaria); } public static numeroComplejo multiplica(numeroComplejo nc1, numeroComplejo nc2) { double ncReal = (nc1.parteReal * nc2.parteReal) - (nc1.parteImaginaria * nc2.parteImaginaria); double ncImaginaria = nc1.parteImaginaria * nc2.parteReal + nc1.parteReal * nc2.parteImaginaria; return new numeroComplejo(ncReal, ncImaginaria); } public static numeroComplejo divide(numeroComplejo nc1, numeroComplejo nc2) { double ncReal = nc1.parteReal * nc2.parteReal + nc1.parteImaginaria * nc2.parteImaginaria; double ncImaginaria = nc1.parteImaginaria * nc2.parteReal - nc1.parteReal * nc2.parteImaginaria; double division = nc2.parteReal * nc2.parteReal + nc2.parteImaginaria * nc2.parteImaginaria; return new numeroComplejo(ncReal / division, ncImaginaria / division); } public static void main2(String[] args) { numeroComplejo nc1 = new numeroComplejo(3.0, 2.0), nc2 = new numeroComplejo(1.0, -2.0), nc3 = new numeroComplejo(3.4, 2.8); System.out.println("nc1 = " + nc1); System.out.println("nc2 = " + nc2); System.out.println("nc3 = " + nc3); System.out.println("nc1+nc2 = " + nc1.suma(nc2)); System.out.println("nc1-nc2 = " + nc1.resta(nc2)); System.out.println("nc1*nc2 = " + nc1.multiplica(nc2)); System.out.println("nc1/nc2 = " + nc1.divide(nc2)); System.out.println("nc1+nc3 = " + suma(nc1, nc3)); System.out.println("nc1-nc3 = " + resta(nc1, nc3)); System.out.println("nc1*nc2 = " + multiplica(nc1, nc2)); System.out.println("nc1/nc2 = " + divide(nc1, nc2)); } public static void main(String[] args) { Scanner in = new Scanner(System.in); String resp = ""; do { System.out.print("Ingresa la parte real del numero complejo 1: "); double nc1Real = in.nextDouble(); System.out.print("Ingresa la parte imaginaria del numero complejo 1 : "); double nc1Img = in.nextDouble(); System.out.print("Ingresa la parte real de numero complejo 2: "); double nc2Real = in.nextDouble(); System.out.print("Ingrese la parte imaginaria del numero complejo 2 :"); double nc2Img = in.nextDouble(); numeroComplejo nc1 = new numeroComplejo(nc1Real, nc1Img); numeroComplejo nc2 = new numeroComplejo(nc2Real, nc2Img); System.out.print("1-Suma \n2-Resta \n3-Multiplicacion \4-Division" + "\n¿Que operacion desera realizar?: "); int opcion = in.nextInt(); while (!(opcion <= 4 && opcion > 0)) { System.out.println("1-Suma \n2-Resta \n3-Multiplicacion \4-Division" + "\n¿Que operacion desera realizar?: "); opcion = in.nextInt(); } switch (opcion) { case 1: System.out.println("la suma de tus dos numeros complejos es: " + suma(nc1, nc2)); break; case 2: System.out.println("la resta de tus dos numeros complejos es: " + resta(nc1, nc2)); break; case 3: System.out.println("la multiplicacion de tus dos numeros complejos es: " + multiplica(nc1, nc2)); break; case 4: System.out.println("la division de tus dos numeros complejos es: " + divide(nc1, nc2)); break; } System.out.print("Deseas continuar ? s/n: "); resp = in.nextLine(); } while (resp.charAt(0) == 's' || resp.charAt(0) == 'S'); } }
Alguien seria tan amable de decirme por que cuando se hace el ciclo de la linea 154 despues de que me realizo alguna de las operaciones anteriores se salta a la linea 177 y no me deja ingresar la opcion? si no que me marca error y termina todo en vez de que me diga si "s/n"?

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.