81. Programar una clase de nombre TarjetaPrepago que permita interactuar con la información de una tarjeta de telefonía móvil de prepago. Esta clase tendrá las siguientes propiedades, métodos y constructores:
Propiedades privadas:
- numeroTeléfono, nif de tipo String.
- saldo de tipo double (en euros).
- consumo de tipo Tiempo. Tiempo es una clase que hay que declarar, y que solamente tendrá 2 propiedades de tipo int con los nombres minutos y segundos.
Constructores:
- Constructor por defecto que no haga nada
- Constructor al que se le pasen como argumentos valores para las propiedades numeroTelefono, nif y saldo.
Métodos públicos:
- ingresarSaldo: le añade al saldo una cantidad de dinero.
- enviarMensaje: se le pasa como argumento un int que representa un número de mensajes, y se le restará al saldo a un valor de 9 céntimos el mensaje.
- llamadaRealizada: se le pasa un int que representa el número de segundos hablados. Se le restará al saldo la cantidad correspondiente calculada en base a 15 céntimos por establecimiento de llamada y 1 céntimo por segundo. También se actualizará la propiedad consumo.
- consultarTelefono, consultarNif……. devolverá cada uno de ellos el valor de su propiedad.
- establecerTelefono, establecerNif, establecerSaldo: asignará cada uno de ellos el valor de su propiedad.
- consultarNúmero: visualizará todos los datos del cliente.
package unidad2ejercicio81;
/**
*
* @author Juan
*/
public class Unidad2Ejercicio81 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
TarjetaPrepago mitarjeta;
Tiempo t = new Tiempo();
mitarjeta = new TarjetaPrepago("988988988","11111111A",100);
System.out.println("___________________________________");
System.out.println("Datos Iniciales:");
mitarjeta.consultarNumero();
mitarjeta.enviarMensaje(100);
System.out.println("Enviados 100 mensajes:");
mitarjeta.consultarNumero();
mitarjeta.llamadaRealizada(2000);
System.out.println("LLamada 2000 segundos:");
mitarjeta.consultarNumero();
mitarjeta.ingresarSaldo(100);
System.out.println("Ingresados 100 euros:");
System.out.println(mitarjeta.consultarConsumo());
}
}
package unidad2ejercicio81;
/**
*
* @author Juan
*/
public class Tiempo {
private int minutos;
private int segundos;
public Tiempo(int minutos, int segundos) {
if (minutos>=0) this.minutos=minutos;
else this.minutos = 0;
if (segundos<60 && segundos>=0) this.segundos=segundos;
else this.segundos = 0;
}
public Tiempo() {
minutos=0;
segundos=0;
}
public void visualizaTiempo(){
System.out.println(minutos+":"+segundos);
}
public int getMinutos() {
return minutos;
}
public void setMinutos(int minutos) {
if (minutos>=0) this.minutos=minutos;
else this.minutos = 0;
}
public int getSegundos() {
return segundos;
}
public void setSegundos(int segundos) {
if (segundos<60 && segundos>=0) this.segundos=segundos;
else this.segundos = 0;
}
}
package unidad2ejercicio81;
/**
*
* @author Juan
*/
public class TarjetaPrepago {
private String telf;
private String nif;
private double saldo;
private Tiempo consumo;
public void consultarNumero(){
System.out.println("");
System.out.println("CONSULTA DE NÚMERO");
System.out.println("======== == ======");
System.out.println("Teléfono: "+telf);
System.out.println("NIF: "+nif);
System.out.println("Saldo: "+ saldo);
System.out.println("Consumo: "+consumo.getMinutos()+":"+consumo.getSegundos());
System.out.print("Consumo (con visualiza): ");
consumo.visualizaTiempo();
System.out.println("___________________________________");
}
public TarjetaPrepago() {
}
public TarjetaPrepago(String telf, String nif, double saldo) {
this.telf = telf;
this.nif = nif;
if (saldo<0) this.saldo=0;
else this.saldo = saldo;
consumo= new Tiempo();
}
public double ingresarSaldo(double saldo){
if (saldo>0) this.saldo+=saldo;
return this.saldo;
}
public double enviarMensaje(int cantidad){
if (cantidad>0) saldo=saldo-(cantidad*0.09);
return saldo;
}
/*
* - llamadaRealizada: se le pasa un int que representa el número de
* segundos hablados. Se le restará al saldo la cantidad correspondiente
* calculada en base a 15 céntimos por establecimiento de llamada y
* 1 céntimo por segundo. También se actualizará la propiedad consumo.
*/
public Tiempo llamadaRealizada(int segundosHablados){
int minutos=0, segundos=0;
if (segundosHablados>0)
{
saldo=saldo - (0.15 + segundosHablados/100);
if (segundosHablados>=60)
{
segundos= segundosHablados%60;
minutos=segundosHablados/60;
}
else segundos = segundosHablados;
consumo.setMinutos(consumo.getMinutos()+minutos);
consumo.setSegundos(consumo.getSegundos()+segundos);
}
return consumo;
}
public Tiempo consultarConsumo() {
return consumo;
}
public String consultarNif() {
return nif;
}
public void establecerNif(String nif) {
this.nif = nif;
}
public double consultarSaldo() {
return saldo;
}
public void establecerSaldo(double saldo) {
this.saldo = saldo;
}
public String consultarTelf() {
return telf;
}
public void establecerTelf(String telf) {
this.telf = telf;
}
}
No hay comentarios:
Publicar un comentario