0% encontró este documento útil (0 votos)
58 vistas18 páginas

Aplicación de Alcancía en POO

1) Se presenta un ejemplo de programación orientada a objetos para implementar una aplicación de una alcancía. 2) La alcancía permitirá guardar monedas de diferentes denominaciones y mostrar el monto total. 3) La aplicación también incluirá la función de romper la alcancía para vaciar su contenido.

Cargado por

Julian Moreno
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas18 páginas

Aplicación de Alcancía en POO

1) Se presenta un ejemplo de programación orientada a objetos para implementar una aplicación de una alcancía. 2) La alcancía permitirá guardar monedas de diferentes denominaciones y mostrar el monto total. 3) La aplicación también incluirá la función de romper la alcancía para vaciar su contenido.

Cargado por

Julian Moreno
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Ejemplo Programación Orientado a Objetos por JCT

Enunciado del problema Implementar la privacidad con la criptografía

Se desea construir una aplicación para manejar una alcancía. La alcancía debe permitir guardar monedas
de las siguientes denominaciones: $50, $100, $200, $500 y $1000. No se guardan ni billetes ni monedas
de otras denominaciones.
La alcancía debe mostrar cuántas monedas tiene de cada denominación en todo momento.
Adicionalmente, permite romper la alcancía, mostrando el valor total que había en ella y vaciando su
contenido.

Interfaz por consola

,
Ejemplo Programación Orientado a Objetos por JCT

Solución con POO

1. Análisis Conceptual

Conocimiento previo de la alcancía


La alcancía (árabe:‫ الكنزية‬, al-kanzíyya, el tesoro oculto),
también conocida como hucha, es una pieza
tradicional alfarera en forma de vasija de perfil ovoide,
culminada en su parte más alta por un remate cónico, y
totalmente cerrada pero que presenta, por lo general en
su parte superior, una estrecha hendidura para guardar
monedas. Las alcancías tradicionales son de barro, y
para recuperar las monedas es necesario romperlas.
También se fabrican modelos en materiales resistentes
o flexibles (plástico o metal, por ejemplo). La alcancía
común y más popular no se vidriaba.1
Tanto los diccionarios generales como los manuales especializados completan este
significado con otros dos estrechamente ligados a la morfología de la pieza y a la violencia de
su final: la alcancía como "bola hueca de barro seco" (al sol), del tamaño de una naranja, que
contiene flores o cenizas y se usaba como arma arrojadiza en los juegos de
alcancías (llamados también correr alcancías). El otro significado, más declaradamente bélico,
se le daba a las ollas que, cargadas de alquitrán u otro tipo de material inflamable, se
utilizaban como arma de guerra

2. Análisis desde Programación Orientada Objetos


2.2 Identificar los aspectos que forman parte de un problema.

Cliente Profesor

Usuario basico
1. Agregar moneda de una denominación dada a la alcancía en
Requerimiento forma aleatoria
funcional 2. Mostrar la cantidad de monedas que hay de cada denominación.
3. Mostrar el total de dinero que hay en la alcancía.
4. Romper la alcancía vaciando su contenido.
5. Crear una nueva alcancía.

Mundo del El ahorro es la acción de separar una parte de


problema los ingresos que obtiene una persona o empresa con el fin de
guardarlo para su uso en el futuro, ya sea para algún gasto
previsto o imprevisto, emergencia económica o una posible
inversión
Ejemplo Programación Orientado a Objetos por JCT

Requerimiento No hay
no funcional

2.3 Requerimientos Funcionales

Requerimientos Funcionales

Nombre:
Resumen: 2. Agregar moneda de una denominación dada a la alcancía en forma
aleatoria
2. Mostrar la cantidad de monedas que hay de cada denominación.
3. Mostrar el total de dinero que hay en la alcancía.
4. Romper la alcancía vaciando su contenido.
5. Crear una nueva alcancía.

Entradas:
Y
Resultado
Ejemplo Programación Orientado a Objetos por JCT

2.4. El Modelo del Mundo del Problema

Entidad Descripción
El ahorro es la acción de separar una parte de los ingresos que obtiene
una persona o empresa con el fin de guardarlo para su uso en el futuro,
Economí ya sea para algún gasto previsto o imprevisto, emergencia económica o
una posible inversión. En términos de teoría económica el ahorro se
ay refiere a la parte de la renta o ingreso no dedicada a consumo, sino a
ahorro otros fines y es un concepto económico importante. Existen diversas
modalidades de ahorro así como diversos
instrumentos financieros destinados para incrementar el ahorro que se
pretende realizar.

2.4 Los Requerimientos no Funcionales

ninguno

2.5. Identificar las clases .

Se desea construir una aplicación para manejar una alcancía. La alcancía debe permitir guardar monedas
de las siguientes denominaciones: $50, $100, $200, $500 y $1000. No se guardan ni billetes ni monedas
de otras denominaciones.
La alcancía debe mostrar cuántas monedas tiene de cada denominación en todo momento.
Adicionalmente, permite romper la alcancía, mostrando el valor total que había en ella y vaciando su
contenido.

Sustantivos y frases nominales en el documento de requerimientos del


Programa
Una aplicacion alcancia
denominaciones
Fig. 1.5 Diagrama Sustantivos y frases nominales

Se crean clases sólo para los sustantivos y frases nominales que tengan
importancia en el sistema.

programa por Cifrado Representa el modelo o mundo


consola
Aplicación programa
Alcancía main
denominacion variables
Ejemplo Programación Orientado a Objetos por JCT

La clase Main la clase principal y en este caso la controladora. Los demás


sustantivos o frases nominales no son relevantes.

a) Definir campos de entradas

Atributo Tipo de Atributo Posibles valores


X Int, double Numeros reales
Uno int, double Numeros reales
dos int Numeros reales
Tres int, Numeros reales
cuatro int Numeros reales
Fig. 1.8 Diagrama campos de entrada

b) Definir variables de salidas

Atributo Tipo de Posibles valores


Atributo
x int Numeros reales
Fig. 1.9 Diagrama campos de salida

2.7 Identificación de las operaciones o comportamientos de las clases


Se desea construir una aplicación para manejar una alcancía. La alcancía debe permitir guardar monedas
de las siguientes denominaciones: $50, $100, $200, $500 y $1000. No se guardan ni billetes ni monedas
de otras denominaciones.
La alcancía debe mostrar cuántas monedas tiene de cada denominación en todo momento.
Adicionalmente, permite romper la alcancía, mostrando el valor total que había en ella y vaciando su
contenido.

Verbos y frases verbales en el documento de requerimientos del FISICA


Enviar Transmitir
escribir Leer un numero entero
cifrar Introducido por usuario
reemplazar Sumar
Obtener residuo Intercambiar
Ejemplo Programación Orientado a Objetos por JCT

Figura 1.16 modelado de posibles métodos


3.6 métodos de las clases
Enviar No tiene sentido
reemplazar No tiene sentido
Obtener total Main()
Leer un numero entero Main()
Introducido por usuario Main()
Sumar Main()
Intercambiar Main()
Interfaz Vista()

2.8 Definir signatura de los métodos

Nombre: Alcancia()

Descripción: No retorna nada, es el main.

Parámetros: X, uno, dos, tres, cuatro

Retorno: ninguno

Cuerpo del /*
método
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package monedaaa;

import [Link];

/**
Ejemplo Programación Orientado a Objetos por JCT

*
* @author Julian
*/
public class Alcancia {
public static void main(String[] args) {
int opcion=1, cont=0;
int moneda=0, valor=0, valort=0,
moneda50=0,moneda100=0,moneda200=0,moneda500=0,moned
a1000=0, totalm=0, totald=0;
Scanner input = new Scanner([Link]);
Vista b= new Vista();
Monedas x = new Monedas();
[Link]();
while(opcion==1){
cont++;

[Link](moneda50, moneda100, moneda200, moneda1000,


moneda500, totald, totalm);
[Link]("Ingrese un numero del menu de alcancia");
int y = [Link]();
if (cont==1 && (y==0 || y==6)){
[Link]("la alcacia esta vacia, no es necesario crear
otra");
opcion=1;
}else{
switch(y){
case 1:
{
moneda50=+[Link](moneda50);
valor=50;
valort=[Link](moneda, valor);
Ejemplo Programación Orientado a Objetos por JCT

break;
}
case 2:
{
moneda100=+[Link](moneda100);
valor=100;
valort= [Link](moneda, valor);

break;
}
case 3:
{
moneda200=+[Link](moneda200);
valor=200;
valort= [Link](moneda, valor);
break;
}
case 4:
{
moneda500=+[Link](moneda500);
valor=500;
valort= [Link](moneda, valor);
break;
}
case 5:
moneda1000=+[Link](moneda1000);
valor=1000;
valort=[Link](moneda, valor);
{
break;
Ejemplo Programación Orientado a Objetos por JCT

case 0:
{

moneda50=0;
moneda100=0;
moneda200=0;
moneda500=0;
moneda1000=0;

break;
}
default: [Link]("Opcion errada");
}
totalm=[Link](moneda50, moneda100,
moneda200, moneda500, moneda1000);
totald=[Link](moneda50, moneda100,
moneda200, moneda500, moneda1000);
}
[Link]("si desea ingresar de nuevo al menu digite 1,
si desea romper la alcancia digite otra tecla");
opcion=[Link]();
}
if(opcion!=1)
{
[Link]("Total de monedas en la alcancia [%d]\n",
totalm);
[Link]("Total de dinero de la alcancia [$%d]\n",
totald);
}
Ejemplo Programación Orientado a Objetos por JCT

}
}

Figura 1.17 Signatura calcularAltura ()

Nombre: Moneda()

Descripció Hace las operaciones de las monedas


n:

Parámetro Int moneda=0, valor=0, valort=0,


s: moneda50=0,moneda100=0,moneda200=0,moneda500=0,moned
a1000=0, totalm=0, totald=0;

Retorno: Calculo, monedas

Cuerpo del public class Monedas {


método
public int recibirMoneda(int Monedas )
{

Monedas++;
return Monedas;

public int calcularMoneda(int Monedas, int Valor )


{
int calculo;
calculo = Monedas * Valor;
return calculo;
}

public int calcularTotalDinero(int Monedas50, int Monedas100,


int Monedas200, int Monedas500, int Monedas1000)
Ejemplo Programación Orientado a Objetos por JCT

{
return ((Monedas50 * 50) + (Monedas100 * 100) +
(Monedas200 * 200) + (Monedas500 * 500) + (Monedas1000 *
1000));
}

public int calcularTotalMonedas(int Monedas50, int


Monedas100, int Monedas200, int Monedas500, int
Monedas1000)
{
return Monedas50 + Monedas100 + Monedas200 +
Monedas500 + Monedas1000;
}
}

Figura 1.18 Signatura calcularAltura ()

Nombre: Vista()

Descripci Muestra la institución, programa y nombre del programa


ón:

Parámetr ninguno
os:

Retorno: void
Ejemplo Programación Orientado a Objetos por JCT

Cuerpo
del
método

3. Diseño del programa UML

3.1 Diagramas de caso-uso Ahora se presenta el primero de varios


diagramas de UML en el caso de estudio. Se crea un diagrama de caso-uso
para modelar las interacciones entre los clientes de un sistema

Fig. 1.4 Diagrama de caso-uso para el sistema Física, desde la perspectiva del
usuario
Ejemplo Programación Orientado a Objetos por JCT

La figura 1.4 muestra el diagrama de caso-uso para nuestro sistema Física La


figura humana representa a un actor, el cual define los roles que desempeña una
entidad externa (como una persona u otro sistema) cuando interactúa con el
sistema. Para nuestro sistema Física, el actor es un Usuario que puede ver la
altura, y la velocidad del Programa de Fisica.

3.2 Diagramas de clases

Fig. 1.6 Representación de una clase Main o alcancia en UML mediante un


diagrama de clases.

Fig. 1.7 Representación de una clase Vista en UML mediante un diagrama


de clases.

Fig. 1.7 Representación de una clase Descifrado en UML mediante un


diagrama de clases.

3.3 Diagrama de Relaciones entre clases.


Ejemplo Programación Orientado a Objetos por JCT

Fig. 1.9 Representación la relación entre las clases Menu, Vista y Calculo
UML mediante un diagrama de clases.

4. Implementación

6.1Implementación en lenguaje Java

Implementación

//Clase monedas
public class Monedas {
public int recibirMoneda(int Monedas )
{

Monedas++;
return Monedas;

}
Ejemplo Programación Orientado a Objetos por JCT

public int calcularMoneda(int Monedas, int Valor )


{
int calculo;
calculo = Monedas * Valor;
return calculo;
}

public int calcularTotalDinero(int Monedas50, int Monedas100, int Monedas200, int


Monedas500, int Monedas1000)
{
return ((Monedas50 * 50) + (Monedas100 * 100) + (Monedas200 * 200) + (Monedas500 *
500) + (Monedas1000 * 1000));
}

public int calcularTotalMonedas(int Monedas50, int Monedas100, int Monedas200, int


Monedas500, int Monedas1000)
{
return Monedas50 + Monedas100 + Monedas200 + Monedas500 + Monedas1000;
}
}
}//fin de la clase Monedas

public class Vista {


public class Vista {
public void Vista(){
[Link]("*************************************************************************");
[Link]("* *");
[Link]("* UNIVERSIDAD FRANCISCO JOSE DE CALDAS
*");
[Link]("* PROGRAMA CURRICULAR: INGENIERIA ELECTRONICA
*");
[Link]("* ALCANCIA *");
[Link]("* *");
[Link]("*************************************************************************");
}
public void Menu(int c50, int c100,int c200, int c1000,int c500,int totald, int totalm ){
[Link]("Menu de alcancia \n");
[Link]("[Link] moneda de $50 [%d]\n",c50);
[Link]("[Link] moneda de $100 [%d]\n",c100);
[Link]("[Link] moneda de $200 [%d]\n",c200);
[Link]("[Link] moneda de $500 [%d]\n",c500);
[Link]("[Link] monedade $1000 [%d]\n",c1000);
[Link]("[Link] nueva alcancia \n\n");
[Link]("*************************************************************************");
[Link]("Total de monedas en la alcancia [%d]\n", totalm);
[Link]("Total actual de la alcancia [$%d]\n", totald);
[Link]("*************************************************************************");

}
}
Ejemplo Programación Orientado a Objetos por JCT

//Clase Alcancia
package monedaaa;

import [Link];

/**
*
* @author Julian
*/
public class Alcancia {
public static void main(String[] args) {
int opcion=1, cont=0;
int moneda=0, valor=0, valort=0,
moneda50=0,moneda100=0,moneda200=0,moneda500=0,moneda1000=0, totalm=0, totald=0;
Scanner input = new Scanner([Link]);
Vista b= new Vista();
Monedas x = new Monedas();
[Link]();
while(opcion==1){
cont++;

[Link](moneda50, moneda100, moneda200, moneda1000, moneda500, totald, totalm);


[Link]("Ingrese un numero del menu de alcancia");
int y = [Link]();
if (cont==1 && (y==0 || y==6)){
[Link]("la alcacia esta vacia, no es necesario crear otra");
opcion=1;
}else{
switch(y){
case 1:
{
moneda50=+[Link](moneda50);
valor=50;
valort=[Link](moneda, valor);

break;
}
case 2:
{
moneda100=+[Link](moneda100);
valor=100;
valort= [Link](moneda, valor);

break;
}
case 3:
{
moneda200=+[Link](moneda200);
valor=200;
valort= [Link](moneda, valor);
Ejemplo Programación Orientado a Objetos por JCT

break;
}
case 4:
{
moneda500=+[Link](moneda500);
valor=500;
valort= [Link](moneda, valor);
break;
}
case 5:
moneda1000=+[Link](moneda1000);
valor=1000;
valort=[Link](moneda, valor);
{
break;
}

case 0:
{

moneda50=0;
moneda100=0;
moneda200=0;
moneda500=0;
moneda1000=0;

break;
}
default: [Link]("Opcion errada");
}
totalm=[Link](moneda50, moneda100, moneda200, moneda500,
moneda1000);
totald=[Link](moneda50, moneda100, moneda200, moneda500, moneda1000);
}
[Link]("si desea ingresar de nuevo al menu digite 1, si desea romper la alcancia
digite otra tecla");
opcion=[Link]();
}
if(opcion!=1)
{
[Link]("Total de monedas en la alcancia [%d]\n", totalm);
[Link]("Total de dinero de la alcancia [$%d]\n", totald);
}

}
}
}//fin de la clase

4. Testeo
Ejemplo Programación Orientado a Objetos por JCT

También podría gustarte