Está en la página 1de 11

Ejercicio Alcancía

Martin Morales

/**

* @author FIX

*/

public class Alcancia {

// -----------------------------------------------------------------

// Atributos

// -----------------------------------------------------------------

/**

* Número de monedas de $50 que hay en la alcancía.

*/

private int numeroMonedas50;

/**

* Número de monedas de $100 que hay en la alcancía.

*/

private int numeroMonedas100;

/**

* Número de monedas de $200 que hay en la alcancía.

*/

private int numeroMonedas200;

/**

* Número de monedas de $500 que hay en la alcancía.

*/

private int numeroMonedas500;


/**

* Número de monedas de $1000 que hay en la alcancía.

*/

private int numeroMonedas1000;

/**

* Estado de la alcancía. <br>

* 0 indica que no está rota. <br>

* 1 indica que está rota.

*/

private int estado;

// -----------------------------------------------------------------

// Métodos

// -----------------------------------------------------------------

/**

* Construye la alcancía. <br>

* <b>post: </b> El número de monedas de 50, número de monedas de 100, número de


monedas de 200, número de monedas de 500, número de monedas de 1000 <br>

* y el estado fueron inicializados en 0.

*/

private double interes;

public Alcancia( )

numeroMonedas50 = 0;

numeroMonedas100 = 0;

numeroMonedas200 = 0;

numeroMonedas500 = 0;

numeroMonedas1000 = 0;

estado = 0;
interes = 0;

/**

* Retorna el número de monedas de $50 que hay en la alcancía.

* @return Número de monedas de $50 en la alcancía.

*/

public int darNumeroMonedas50( )

return numeroMonedas50;

/**

* Retorna el número de monedas de $100 que hay en la alcancía.

* @return Número de monedas de $100 en la alcancía.

*/

public int darNumeroMonedas100( )

return numeroMonedas100;

/**

* Retorna el número de monedas de $200 que hay en la alcancía.

* @return Número de monedas de $200 en la alcancía.

*/

public int darNumeroMonedas200( )

return numeroMonedas200;

/**
* Retorna el número de monedas de $500 que hay en la alcancía.

* @return Número de monedas de $500 en la alcancía.

*/

public int darNumeroMonedas500( )

return numeroMonedas500;

/**

* Retorna el número de monedas de $1000 que hay en la alcancía.

* @return Número de monedas de $1000 en la alcancía.

*/

public int darNumeroMonedas1000( )

return numeroMonedas1000;

/**

* Informa si la alcancía está rota o no.

* @return Retorna 1 si está rota, 0 en caso contrario.

*/

public int darEstado( )

return estado;

/**

* Retorna el total de dinero que hay en la alcancía.

* @return Total de dinero que hay en la alcancía.

*/

public int calcularTotalDinero( )


{

return numeroMonedas1000 * 1000 + numeroMonedas50 * 50 + numeroMonedas100 *


100 + numeroMonedas200 * 200 + numeroMonedas500 * 500;

/**

* Retorna el estado de la alcancía. <br>

* <b>pre: </b> La alcancía no está rota.

* @return Cadena que informa la cantidad de monedas que había en la alcancía y la


cantidad total de dinero.

*/

public String darEstadoAlcancia( )

int totalDinero = calcularTotalDinero( );

return "La alcancía tenía: \n " + numeroMonedas50 + " moneda(s) de $50 \n " +
numeroMonedas100 + " moneda(s) de $100 \n " + numeroMonedas200 + " moneda(s) de
$200 \n " + numeroMonedas500 + " moneda(s) de $500 \n " + numeroMonedas1000

+ " moneda(s) de $1000 \n " + "Para un total de $" + totalDinero + " pesos.";

/**

* Agrega una moneda de $50 a la alcancía. <br>

* <b>pre: </b> La alcancía no está rota. <br>

* <b>post: </b> Aumentó en uno la cantidad de monedas de $50 en la alcancía.

*/

public void agregarMoneda50( )

interes = interes-(calcularTotalDinero()*0.01);

numeroMonedas50 = numeroMonedas50 + 1;

}
/**

* Agrega una moneda de $100 a la alcancía. <br>

* <b>pre: </b> La alcancía no está rota. <br>

* <b>post: </b> Aumentó en uno la cantidad de monedas de $100 en la alcancía.

*/

public void agregarMoneda100( )

numeroMonedas100 = numeroMonedas100 + 1;

/**

* Agrega una moneda de $200 a la alcancía. <br>

* <b>pre: </b> La alcancía no está rota. <br>

* <b>post: </b> Aumentó en uno la cantidad de monedas de $200 en la alcancía.

*/

public void agregarMoneda200( )

numeroMonedas200 = numeroMonedas200 + 1;

/**

* Agrega una moneda de $500 a la alcancía. <br>

* <b>pre: </b> La alcancía no está rota. <br>

* <b>post: </b> Aumentó en una la cantidad de monedas de $500 en la alcancía.

*/

public void agregarMoneda500( )

numeroMonedas500 = numeroMonedas500 + 1;

/**
* Agrega una moneda de $1000 a la alcancía. <br>

* <b>pre: </b> La alcancía no está rota. <br>

* <b>post: </b> Aumentó en uno la cantidad de monedas de $1000 en la alcancía.

*/

public void agregarMoneda1000( )

interes = interes+30;

numeroMonedas1000 = numeroMonedas1000 + 1;

/**

* Rompe la alcancía. <br>

* <b>pre: </b> La alcancía no está rota. <br>

* <b>post: </b> La alcancía está rota.

*/

public void romperAlcancia( )

estado = 1;

// -----------------------------------------------------------------

// Puntos de Extensión

// -----------------------------------------------------------------

/**

* Método para la extensión 1.

* @return Respuesta 1.

*/

public String metodo1( )

return "El valor de los intereses en la alcancia es: " +interes;


}

/**

* Método para la extensión 2.

* @return Respuesta 2.

*/

public String metodo2( )

return "El valor ahorrado es de: " +(calcularTotalDinero()+interes);

package ejercicio.alcancia;

import java.util.Scanner;

/**

* @author FIX

*/

public class PrincipalAlcancia {

public static void main(String[] args) {

int accion;

Scanner sc = new Scanner(System.in);

Alcancia cerdito = new Alcancia ();

do{

System.out.println("1. Agregar una moneda.");

System.out.println("2. Mostrar cantidad de monedas por denominación.");

System.out.println("3. Mostrar el total de dinero en la alcancia.");

System.out.println("4. Romper alcancia.");

System.out.println("5. Crear una nueva alcancia.");

System.out.println("6. Salir");

accion = sc.nextInt();

switch (accion){
case 1: {

int pDenominacion = 0;

if( cerdito.darEstado( ) == 0 ){

System.out.println("Ingrese la denominacion de la moneda:");

System.out.println("50");

System.out.println("100");

System.out.println("200");

System.out.println("500");

System.out.println("1000");

pDenominacion = sc.nextInt();

switch (pDenominacion) {

case 1000:

cerdito.agregarMoneda1000( );

break;

case 50:

cerdito.agregarMoneda50( );

break;

case 100:

cerdito.agregarMoneda100( );

break;

case 200:

cerdito.agregarMoneda200( );

break;

case 500:

cerdito.agregarMoneda500( );

break;

default:
System.out.println("Opcion Incorrecta");

break;}

}else

System.out.println("Cerdito Roto");

break;

case 2: {

System.out.println("Cantidad de monedas de 50: " +


cerdito.darNumeroMonedas50());

System.out.println("Cantidad de monedas de 100: " +


cerdito.darNumeroMonedas100());

System.out.println("Cantidad de monedas de 200: " +


cerdito.darNumeroMonedas200());

System.out.println("Cantidad de monedas de 500: " +


cerdito.darNumeroMonedas500());

System.out.println("Cantidad de monedas de 1000: " +


cerdito.darNumeroMonedas1000());

break;

case 3: {

System.out.println("" + cerdito.darEstadoAlcancia());

break;

case 4: {

if (cerdito.darEstado()== 0){

cerdito.romperAlcancia();

System.out.println("Ha roto el cerdito");

break;

case 5: {

Alcancia cerdito2 = new Alcancia();

System.out.println("Se ha creado una alcancia");


break;

case 6:{

System.exit(0);

default:

System.out.println("Accion Invalida");

}while (accion !=6);

También podría gustarte