[JAVA] Ejercicio: Celular (actualizado)

A continuación les dejo la clase plano que hice para el ejercicio Celular, faltaría hacer el App el cual lo pondré mas adelante en este mismo post.

No coloqué los métodos get y set por motivos obvios. Se supone que ya todos saben hacerlos, así se ahorra espacio.

Cualquier duda ya saben, sólo comenten y les respondo.

------------------------------

Actualización: Modifiqué la clase plano y agregué el App del ejercicio.

Modifiqué el tipo de dato de tipoPlan de char a String por motivos de correcto funcionamiento del programa. No sé porque motivo tuve problemas con el char al pedir el dato TipoPlan en el App. El programa se quedaba colgado. Cambiándolo a String se solucionó el problema.

Volví a cambiar de String a char el atributo tipoPlan. En la clase de hoy (06 de mayo) el profesor explicó el problema por el cual se quedaba colgado el programa.

Para los que no vinieron tienen que cambiar lo siguiente en la clase Leer:


System.in.skip(1000);

Busquen esa línea de código y modifiquen el 1000 por 1. Debería quedar así:

System.in.skip(1);


Otro cambio que hice fue en los if. Si bien recuerdan Java diferencia ente mayúsculas y minúsculas, por lo que tuve que agregar nuevas condiciones en los if de los métodos cambioPlan(), totalAlto() y totalBajo(). De este modo, si el usuario ingresa una A, B o C minúscula o mayúscula da lo mismo, el programa la reconocerá como corresponde.

Para poder llegar y copiar el código tienen que hacer clic donde dice "view plain" justo arriba de la línea número uno de cada código. Al hacer clic se abrirá una nueva ventana con el texto sin tratar y podrán copiarlo sin problemas

Clase plano

class Celular{

private int numeroTelefono, minutosBajo, minutosAlto;
private char tipoPlan;

Celular(int numeroTelefono, int minutosBajo, int minutosAlto, char tipoPlan){

this.numeroTelefono=numeroTelefono;
this.minutosBajo=minutosBajo;
this.minutosAlto=minutosAlto;
this.tipoPlan=tipoPlan;

}

void cambioPlan(){

/* Ojo con las comillas!
* Se utilizan comillas simples '' en este caso y no dobes ""
* Por el simple hecho de que estamos trabajando con char
* Si fuese String serian dobles ""
*/

if(tipoPlan=='A' || tipoPlan=='a'){

tipoPlan='B';

} else if(tipoPlan=='B' || tipoPlan=='b'){

tipoPlan='C';

} else {

tipoPlan='A';

}

}

int totalAlto(int minutos){

if(tipoPlan=="'A' || tipoPlan=='a'){

return 55*minutos;

} else if(tipoPlan=='B' || tipoPlan=='b'){

return 85*minutos;

} else {

return 130*minutos;

}

}

int totalBajo(int minutos){

if(tipoPlan=='A' || tipoPlan=='a'){

return 10*minutos;

} else if(tipoPlan=='B' || tipoPlan=='b'){

return 35*minutos;

} else {

return 55*minutos;

}

}

int pagoCelular(int minutosAlto, int minutosBajo){

int total;

total=totalAlto(minutosAlto)+totalBajo(minutosBajo);

return (int)((total*0.19)+total);

}

}


App


class AppCelular{

static public void main(String[]arg){

int numeroTelefono, minutosBajo, minutosAlto, habladoAlto, op;
char tipoPlan;

// OBJETO NUMERO UNO //
System.out.println("Numero Telefono: ");
numeroTelefono=Leer.datoInt();
System.out.println("Minutos Horario Bajo: ");
minutosBajo=Leer.datoInt();
System.out.println("Minutos Horario Alto: ");
minutosAlto=Leer.datoInt();
System.out.println("Tipo Plan:");
tipoPlan=Leer.datoChar();

Celular uno=new Celular(numeroTelefono, minutosBajo, minutosAlto, tipoPlan);

// OBJETO NUMERO DOS //
System.out.println("");
System.out.println("Numero Telefono: ");
numeroTelefono=Leer.datoInt();
System.out.println("Minutos Horario Bajo: ");
minutosBajo=Leer.datoInt();
System.out.println("Minutos Horario Alto: ");
minutosAlto=Leer.datoInt();
System.out.println("Tipo Plan: ");
tipoPlan=Leer.datoChar();

Celular dos=new Celular(numeroTelefono, minutosBajo, minutosAlto, tipoPlan);

// Pedimos que celular desea ver //
System.out.println("");
System.out.println("Que celular desea ver: ");
System.out.println("");
System.out.println("[1] Primer Celular");
System.out.println("[2] Segundo Celular");
op=Leer.datoInt();
System.out.println("");

// Se muestran los datos segun el celular seleccionado //
switch(op){

case 1:
System.out.println("Numero Telefono: "+uno.getNumeroTelefono());
System.out.println("Tipo Plan: "+uno.getTipoPlan());
System.out.println("Minutos Horario Alto: "+uno.getMinutosAlto()+" / Minutos Horario Bajo: "+uno.getMinutosBajo());
System.out.println("Pago Total Celular: $"+uno.pagoCelular(uno.getMinutosAlto(), uno.getMinutosBajo()));
System.out.println("");
System.out.println("Cambiar Plan a: - El plan actual es: "+uno.getTipoPlan()+" -");
tipoPlan=Leer.datoChar();
uno.setTipoPlan(tipoPlan); // Modificamos el plan
break;

case 2:
System.out.println("Numero Telefono: "+dos.getNumeroTelefono());
System.out.println("Tipo Plan: "+dos.getTipoPlan());
System.out.println("Minutos Horario Alto: "+dos.getMinutosAlto()+" / Minutos Horario Bajo: "+dos.getMinutosBajo());
System.out.println("Pago Total Celular: $"+dos.pagoCelular(dos.getMinutosAlto(), dos.getMinutosBajo()));
System.out.println("");
System.out.println("Cambiar Plan a: - El plan actual es: "+dos.getTipoPlan()+" -");
tipoPlan=Leer.datoChar();
dos.setTipoPlan(tipoPlan); // Modificamos el plan
break;

default: System.out.println("Opcion no valida");

}

// Se imprimen los resultados de los 2 celulares(objetos) //
System.out.println("[Celular 1] Numero: "+uno.getNumeroTelefono()+" / Plan: "+uno.getTipoPlan()+" / Mins. Horario Alto: "+
uno.getMinutosAlto()+" / Mins. Horario Bajo: "+uno.getMinutosBajo()+" / Pago Total Celular: $"+
uno.pagoCelular(uno.getMinutosAlto(), uno.getMinutosBajo()));
System.out.println("[Celular 2] Numero: "+dos.getNumeroTelefono()+" / Plan: "+dos.getTipoPlan()+" / Mins. Horario Alto: "+
dos.getMinutosAlto()+" / Mins. Horario Bajo: "+dos.getMinutosBajo()+" / Pago Total Celular: $"+
dos.pagoCelular(dos.getMinutosAlto(), dos.getMinutosBajo()));

}

}

Etiquetas Etiquetas: , |

0 comentarios: