Está en la página 1de 6

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA DE SISTEMAS


INGENIERA EN SISTEMAS INFORMTICOS Y DE COMPUTACIN
Tarea N3
Curso: Programacin Gr1.
Materia: Programacin II
Nombre: Beln Quispi
Texto del Ejercicio: crear una clase que nos permita calcular la suma de dos ecuaciones.
Programas fuentes

Clase Ecuacion
package com.epn;

import java.util.StringTokenizer;

import javax.swing.JOptionPane;

public class Ecuacion {
private double a,b,c;
private String constante;

public Ecuacion() {
super();
this.a = 0;
this.b = 0;
this.c = 0;
this.constante = "";
}

public Ecuacion(double a, double b, double c, String constante) {
super();
this.a = a;
this.b = b;
this.c = c;
this.constante = constante;
}

public double getA() {
return a;
}

public void setA(double a) {
this.a = a;
}

public double getB() {
return b;
}

public void setB(double b) {
this.b = b;
}

public double getC() {
return c;
}

public void setC(double c) {
this.c = c;
}

public String getConstante() {
return constante;
}

public void setConstante(String constante) {
this.constante = constante;
}

public void ingresoDatos(String nombreEcuacion)
{
StringTokenizer tokens;
String cadena, termino1, termino2, termino3, signo1,signo2,
signoInicial="";
int sw=0;
do{
try
{
cadena=JOptionPane.showInputDialog("Ingrese la "+
nombreEcuacion+ "\n Ejemplo: 3x^2-2x+4 \n (Si el coeficiente es 1 entonces
1x^2-1x+4 )");
tokens = new StringTokenizer(cadena, "+-",true);
termino1=tokens.nextToken();
signo1=tokens.nextToken();
termino2=tokens.nextToken();
signo2=tokens.nextToken();
termino3=tokens.nextToken();
if(termino1.equals("-"))
{
signoInicial=termino1;
termino1=signo1;
signo1=termino2;
termino2=signo2;
signo2=termino3;
termino3=tokens.nextToken();

}
sw=0;
try
{
this.a=
Double.parseDouble(distribucion(termino1));
this.b=
Double.parseDouble(distribucion(termino2));

this.c=Double.parseDouble(distribucion(termino3));
if(signoInicial.equals("-"))
{
this.a=this.a*-1;
}
if(signo1.equals("-"))
{
this.b=this.b*-1;
}
if(signo2.equals("-"))
{
this.c=this.c*-1;
}
}
catch(NumberFormatException ex)
{
JOptionPane.showMessageDialog(null,
"No ha ingresado correctamente los coeficientes");
sw=1;
}

}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, "No ha ingresado
correctamente los signos de la ecuacion");
sw=1;
}

}while(sw==1);

}

private String distribucion(String termino)
{
String coeficiente;
StringTokenizer tokens;
tokens = new StringTokenizer(termino, "xX");
coeficiente= tokens.nextToken();
return coeficiente;
}
public Ecuacion suma (Ecuacion ecuacion2)
{
Ecuacion ecuacionAuxiliar = new Ecuacion();
ecuacionAuxiliar.a=this.a+ecuacion2.a;
ecuacionAuxiliar.b=this.b+ecuacion2.b;
ecuacionAuxiliar.c=this.c+ecuacion2.c;
return ecuacionAuxiliar;

}

public String toString()
{
if (this.b>=0 && this.c<0)
{
return (this.a + "x^2 "+"+"+this.b+"x "+this.c);
}
if (this.c>=0 && this.b<0)
{
return (this.a + "x^2 "+this.b+"x "+"+"+this.c);
}
if (this.b>=0 && this.c>=0)
{
return (this.a + "x^2 "+"+"+this.b+"x "+"+"+this.c);
}
return (this.a + "x^2 "+this.b+"x "+this.c);
}


}



Clase Aplicacin
package com.epn;

import javax.swing.JOptionPane;

public class Aplicacion {

public static void main(String[] args) {
Ecuacion ecuacion1=new Ecuacion();
Ecuacion ecuacion2=new Ecuacion();
Ecuacion ecuacionResultado=new Ecuacion();
String salida="";
int opcion;

do{
ecuacion1.ingresoDatos("primera Ecuacion");
ecuacion2.ingresoDatos("segunda Ecuacion");

ecuacionResultado=ecuacion1.suma(ecuacion2);
salida+=("El resultado de la suma de: " +"\n
"+ecuacion1.toString()+"\n + "+ecuacion2.toString()+"\nes :
"+ecuacionResultado.toString());
salida+="\n\n";
opcion=JOptionPane.showConfirmDialog(null, "Desea sumar
otras ecuaciones", "Opcion",JOptionPane.YES_NO_OPTION );

}while(opcion==JOptionPane.YES_OPTION);

JOptionPane.showMessageDialog(null, salida);
}

}

Resultados












Qu aprend.
Aprend: a definir correctamente una clase, instanciar los objetos
necesarios para la solucin del problema, realizar ciclos
consecutivos de ingresos de datos por teclado utilizando la clase
JOptionPane, utilizacin de StringTokenizer para separar una
cadena en Strings que pueden ser pasados a nmeros, aplicacin
de la instruccin try-catch para validar los datos al momento del
ingreso de los datos. Tambin se aprendi a usar toString para
imprimir datos, y a realizar operaciones directamente entre los
atributos de cada uno de los objetos.

Bibliografa
Todos los conocimientos aplicados fueron dados en clases.