You are on page 1of 51

UNIVERSIDAD POLITCNICA DE TULANCINGO

CARRERA: INGENIERA EN SISTEMAS COMPUTACIONALES


MATERIA: PROGRAMACIN ORIENTADA A OBJETOS.
CATEDRATICO: MTRO.LUIS ROBERTO MORALES MANILLA
PROYECTO: MQUINA DE REFRESCOS.
ALUMNOS:
ROSALES CRUZ MARICELA.
AMADOR ISLAS URIEL.
VARGAS VARGAS RAL.
RIVERA GARCIA OSCAR MANUEL.
GRUPO: 4
CUATRIMETRE: TERCERO
FECHA DE ENTREGA: 14 DE AGOSTO DE 2013.

MQUINA DE REFRESCOS
DEFINICIN DEL PROBLEMA:

Desarrollar un programa en lenguaje JAVA


(netbeans) que simule la operacin de una mquina
despachadora de refrescos.
La mquina despachadora de refrescos deber
contar con 10 tipos de refrescos diferentes y cada bebida
tendr un costo en pesos y centavos. La mquina recibir
monedas de las denominaciones actuales y ser capaz de
dar cambio ocupando las mismas denominaciones de
monedas. El programa deber validar la denominacin
de la moneda con la que se est pagando y mandar un
mensaje de error cuando la moneda no corresponda a las
denominaciones actuales.
Para cada bebida hay una cantidad lmite de existencias dentro de la mquina,
para lo cual cuando se hayan agotado todas las existencias de dicha bebida, la maquina
deber indicar que ya no se puede elegir ese refresco por lo tanto no se puede despachar,
teniendo que elegir otra opcin de bebida que est disponible en la mquina.
ANLISIS DEL PROBLEMA:
Se pretende realizar un programa que cumpla con los requerimientos dados por
un cliente dedicado al negocio de las maquinas despachadoras de refrescos
Cabe mencionar que una mquina de refrescos suele estar en diversos lugares de
un pueblo o ciudad. Su utilidad es muy bsica y simple, se trata de contener refrescos.
Adems que una mquina de refrescos es un buen negocio para los propietarios
de las mismas, por lo que es inaceptable que el sistema de estas maquines no funcione o
no sea lo que el cliente espera; A continuacin se describirn los requerimientos que el
cliente pide.
Lo que el cliente solicita es lo sig.
Que cuente con 10 tipos diferentes de refrescos la mquina.
Cada tipo de refresco deber tener un costo en pesos y en centavos.
El sistema deber aceptar solo monedas validas actualmente vigentes siendo
estas:

Monedas de $10 pesos

Monedas de $5 pesos

Monedas de $2 pesos

Monedas de $1 pesos

Monedas de $0.50 centavos

El sistema deber identificar si se debe devolver cambio por un refresco.


El cambio se dar en monedas de las denominaciones previamente explicadas.
El sistema deber validar que la moneda introducida por el usuario es vlida y
caso de no serlo mandar un mensaje de error al respecto.

Condiciones del programa


1. Se deber tener un lmite en la cantidad de 10 refrescos.
2. Solo el administrador tendr acceso al sistema de la maquina con una
opcin oculta en el men (opcin 11).
3. Cuando se hayan agotado el total de unidades de un refresco cuando el
usuario seleccione este refresco se deber mandar un mensaje que debe
decir el refresco seleccionado est agotado favor de elegir otro opcin.
Para la realizacin del programase deber realizar:

La comprensin de lo que el cliente solicita.


La realizacin de un seudocdigo.
La realizacin de un diagrama de clases.
La realizacin de la codificacin del programa.
Pruebas del programa para establecer un criterio si es aceptable o rechazado.

DIAGRAMA DE CLASES

PSEUDOCODIGO
VAR
opcin, limite [ ], rellenar, n10=0, n5=0, n2=0, n1=0,n05=0 son enteros
costo, cambioMon, monedas, f son dobles
INICIO
mtodo MaqRefrescos
comentario inicializacin del vector
entero limite [10]
limite [posicion 0] = 1
limite [posicion 1] = 1
limite [posicion 2] = 1
limite [posicion 3] = 1
limite [posicion 4] = 1
limite [posicion 5] = 1
limite [posicion 6] = 1
limite [posicion 7] = 1
limite [posicion 8] = 1
limite [posicion 9] = 1
hacer
hacer
mostrar ----------------- Mquina de refrescos -----------------

mostrar Lista de refrescos:"


mostrar 1 - Coca-Cola
mostrar 2 - Pepsi

600ml - Costo: $10.0"

600ml - Costo: $7.5"

mostrar 3 - Manzanita Sol 600ml - Costo: $6.5"


mostrar 4 - Fanta

600ml - Costo: $6.0"

mostrar 5 - Sprit

600ml - Costo: $7.5"

mostrar 6 - 7up

600ml - Costo: $7.0"

mostrar 7 - Squere

600ml - Costo: $8.5"

mostrar 8 - Big-cola

600ml - Costo: $6.0"

mostrar 9 - Fresca

600ml - Costo: $8.5"

mostrar 10 - Mirinda

600ml - Costo: $7.5"

mostrar Selecciona el nmero del refresco:"


leer opcion
segn sea opcion
en caso 1
mostrar Coca-cola
si limite [0]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[0]>0
mostrar Costo: $10.00"
mostrar Introduce tu moneda:"
leer costo
f = 10.0-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5

monedas = monedas costo


entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5

n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras

fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [0]=limite[0]-1
interrumpir
en caso 2
mostrar Pepsi
si limite [1]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[1]>0
mostrar Costo: $7.50"
mostrar Introduce tu moneda:"
leer costo
f = 7.50-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si

mientras monedas >0


mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1

n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [1]=limite[1]-1
interrumpir
en caso 3
mostrar Manzanita sol

si limite [2]<=0 entonces


mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[2]>0
mostrar Costo: $6.50"
mostrar Introduce tu moneda:"
leer costo
f = 6.50-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo

entonces si no costo ==5


monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "

mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [2]=limite[2]-1
interrumpir
en caso 4
mostrar Fanta
si limite [3]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[3]>0
mostrar Costo: $6.00"
mostrar Introduce tu moneda:"
leer costo
f = 6.00-costo+costo

monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo

si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras

mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [3]=limite[3]-1
interrumpir
en caso 5
mostrar Sprit
si limite [4]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[4]>0
mostrar Costo: $7.50"
mostrar Introduce tu moneda:"
leer costo
f = 7.50-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5

monedas = monedas costo


entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5

n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras

fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [4]=limite[4]-1
interrumpir
en caso 6
mostrar 7up
si limite [5]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[1]>0
mostrar Costo: $7.00"
mostrar Introduce tu moneda:"
leer costo
f = 7.00-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si

mientras monedas >0


mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1

n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [5]=limite[5]-1
interrumpir
en caso 7
mostrar Squere

si limite [6]<=0 entonces


mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[6]>0
mostrar Costo: $8.50"
mostrar Introduce tu moneda:"
leer costo
f = 8.50-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo

entonces si no costo ==5


monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "

mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [6]=limite[6]-1
interrumpir
en caso 8
mostrar Big-cola
si limite [7]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[7]>0
mostrar Costo: $6.00"
mostrar Introduce tu moneda:"
leer costo
f = 6.00-costo+costo

monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo

si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras

mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [7]=limite[7]-1
interrumpir
en caso 9
mostrar Fresca
si limite [8]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[8]>0
mostrar Costo: $8.50"
mostrar Introduce tu moneda:"
leer costo
f = 8.50-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5

monedas = monedas costo


entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
mientras monedas >0
mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5

n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1
n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras

fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [8]=limite[8]-1
interrumpir
en caso 10
mostrar Mirinda
si limite [9]<=0 entonces
mostrar Se ha acabado este refresco, favor de
seleccionar otro..."
entonces si no limite[9]>0
mostrar Costo: $7.50"
mostrar Introduce tu moneda:"
leer costo
f = 7.50-costo+costo
monedas = f
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si

mientras monedas >0


mostrar "Falta: $" + monedas
mostrar "Introduce tu moneda: "
leer costo
si costo==1 entonces
monedas = monedas- costo
entonces si no costo==2
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas-costo
entonces si no costo ==5
monedas = monedas costo
entonces si no costo ==10
monedas= monedas- costo
entonces si no costo ==0.5
monedas = monedas costo
si no
mostrar Moneda no valida
fin si
fin mientras
si monedas <0
cambioMon = monedas*(-1)
mostrar "Cambio: $" + cambioMon
mientras cambio>=5
n5=n5+1
cambioMon = cambioMon-5
fin mientras
mientras cambio>=2
n2=n2+1
cambioMon = cambioMon-2
fin mientras
mientras cambio>=1

n1=n1+1
cambioMon = cambioMon-1
fin mientras
mientras cambio>=0.5
n05=n05+1
cambioMon = cambioMon-0.5
fin mientras
mostrar "Cambio Moneda(s): "
mientras n5>0
mostrar n5 + " de $5"
interrumpir
fin mientras
mientras n2>0
mostrar n2 + " de $2 "
interrumpir
fin mientras
mientras n1>0
mostrar n1 + " de $1 "
interrumpir
fin mientras
mientras n05>0
mostrar n05 + " de $0.5c "
interrumpir
fin mientras
fin si
entonces si no monedas==0
mostrar "Cambio: $" + monedas
fin si
limite [9]=limite[9]-1
interrumpir
en caso 11
mostrar "Mquina abierta..."

si limite[0]>0 o limite[1]>0 o limite[2]>0 o


limite[3]>0 o limite[4]>0
y limite[5]>0 o limite[6]>0 o limite[7]>0 o
limite[8]>0 o limite[9]>0 entonces
mostrar Lista de refrescos:
Refrescos"
mostrar 1 - Coca-cola
limite[0]
mostrar 2 - Pepsi

Cantidad de

600ml -

"+

600ml -

" + limite[1]

mostrar 3 - Manzanita Sol 600ml limite[2]


mostrar 4 - Fanta
limite[3]

600ml -

"+
"+

mostrar 5 - Sprit

600ml -

" + limite[4]

mostrar 6 - 7up

600ml -

" + limite[5]

mostrar 7 - Squere
limite[6]

600ml -

"+

mostrar 8 - Big-cola
limite[7]

600ml -

"+

600ml -

"+

mostrar 9 - Fresca
limite[8]
mostrar 10 - Mirinda
limite[9]

600ml -

"+

si no
mostrar Lista de refrescos:
Cantidad de Refrescos"
mostrar 1 - Coca-cola
mostrar 2 - Pepsi

600ml -

"+0

600ml -

"+0

mostrar 3 - Manzanita Sol 600ml mostrar 4 - Fanta

600ml -

"+0
"+0

mostrar 5 - Sprit

600ml -

"+ 0

mostrar 6 - 7up

600ml -

"+0

mostrar 7 - Squere

600ml -

"+0

mostrar 8 - Big-cola

600ml -

"+0

mostrar 9 - Fresca

600ml -

"+0

mostrar 10 - Mirinda

600ml -

"+0

fin si
mostrar "Qu desea hacer?"
mostrar 1 = Rellenar Maquina
mostrar O presione cualquier otra tecla para salir..."
leer rellenar
mientras rellenar ==1
hacer
mostrar "

Que desea

llenar?"
mostrar "Lista de refrescos:"
mostrar 1 - Coca-cola
mostrar 2 - Pepsi

600ml
600ml

mostrar 3 - Manzanita Sol 600ml


mostrar 4 - Fanta

600ml

mostrar 5 - Sprit

600ml

mostrar 6 - 7up

600ml

mostrar 7 - Squere

600ml"

mostrar 8 - Big-cola

600ml

mostrar 9 - Fresca

600ml

mostrar 10 - Mirinda

600ml

mostrar 11- Rellenar todo


mostrar 0 Salir de esta opcion
mostrar Qu desea hacer?
leer opcion
segn sea opcion
en caso 1
mostrar "introduce el
lmite para Coca-cola:"
leer limite [0]
si limite [0] <=10
entonces
si no
mostrar "El
limite

de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [0] =
limite
[0]
limite
[0]
interrumpir
fin si
en caso
2
mostrar "introduce el
lmite para Pepsi:"
leer limite [1]
si limite [1] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [1] =
limite
[1]
limite
[1]
interrumpir
fin si

en caso 3
mostrar "introduce el
lmite para Manzanita Sol:"
leer limite [2]
si limite [2] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [2] =
limite
[2]
limite
[2]
interrumpir
fin si
en caso 4
mostrar "introduce el
lmite para Fanta:"
leer limite [3]
si limite [3] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir

ms...
"
limite [3] =
limite
[3]
limite
[3]
interrumpir
fin si
en caso 5
mostrar "introduce el
lmite para Sprit:"
leer limite [4]
si limite [4] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [4] =
limite
[4]
limite
[4]
interrumpir
fin si
en caso 6
mostrar "introduce el
lmite para 7up:"
leer limite [5]
si limite [5] <=10
entonces
si no

mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [5] =
limite
[5]
limite
[5]
interrumpir
fin si
en caso 7
mostrar "introduce el
lmite para Squere:"
leer limite [6]
si limite [6] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [6] =
limite
[6]
limite
[6]
interrumpir
fin si

en caso 8
mostrar "introduce el
lmite para Big-cola:"
leer limite [7]
si limite [7] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [7] =
limite
[7]
limite
[7]
interrumpir
fin si
en caso 9
mostrar "introduce el
lmite para Fresca:"
leer limite [8]
si limite [8] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir

ms...
"
limite [8] =
limite
[8]
limite
[8]
interrumpir
fin si
en caso 10
mostrar "introduce el
lmite para Mirinda:"
leer limite [9]
si limite [9] <=10
entonces
si no
mostrar "El
limite
de
refres
cos es
10...n
o
puede
s
introd
ucir
ms...
"
limite [9] =
limite
[9]
limite
[9]
interrumpir
fin si
en caso 11
mostrar "Introduce el
limite para Coca-cola:"
leer limite[0]
mostrar "Introduce el
limite para Pepsi:"
leer limite[1]

mostrar "Introduce el
limite para Manzanita
sol:"
leer limite[2]
mostrar "Introduce el
limite para Fanta:"
leer limite[3]
mostrar "Introduce el
limite para Sprit:"
leer limite[4]
mostrar "Introduce el
limite para 7up:"
leer limite[5]
mostrar "Introduce el
limite para Squere:"
leer limite[6]
mostrar "Introduce el
limite para Big-cola:"
leer limite[7]
mostrar "Introduce el
limite para Fresca:"
leer limite[8]
mostrar "Introduce el
limite para Mirinda:"
leer limite[9]
si limite[0]>10
o limite[1]>10
o limite[2]>10
limite[3]>10 o
limite[4]>10 o
limite[
5]>10

o
limite[
6]>10
o
limite[
7]>10
o
limite[
8]>10
o
limite[
9]>10
mostra
r El
limite
de
refresc
os es
10...no
puedes
introdu
cir
ms..."
limite[
0] =
limite[
0] limite[
0];
limite[
1] =
limite[
0] limite[
0];
limite[
0] =
limite[
0] limite[
0];
limite[
0] =
limite[
0] limite[
0];
limite[
0] =
limite[
0] -

limite[
0];
si no
fin si

interrumpir
en caso 0
mostrar
"Cerrando
Mquina..."
interrumpir

en defecto
mostrar
Opcion no
vlida..."
interrumpir
fin segn sea
mientras opcion != 0
interrumpir
fin hacer mientras
fin mientras
interrumpir
en defecto
mostrar Opcion no vlida..."
interrumpir
fin segn sea
mientras limite[0]>0 o limite[1]>0 o limite[2]>0 o limite[3]>0 o
limite[4]>0 o limite[5]>0 o
limite[6]>0 o limite[7]>0 o limite[8]>0 o limite[9]>0
fin hacer mientras
mostrar "Fuera de servicio..."
mostrar "Repartidor de refrescos en camino..."
mostrar "Llenando mquina de refrescos..."
mostrar Introduce el limite para Coca-cola:"

leer limite[0]
mostrar Introduce el limite para Pepsi:"
leer limite[1]
mostrar Introduce el limite para Manzanita Sol:"
leer limite[2]
mostrar "Introduce el limite para Fanta:"
leer limite[3]
mostrar Introduce el limite para Sprit:"
leer limite[4]
mostrar Introduce el limite para 7up:"
leer limite[5]
mostrar Introduce el limite para Squere:"
leer limite[6]
Mostrar Introduce el limite para Big-cola:"
leer limite[7]
Mostrar "Introduce el limite para Fresca:");
leer limite[8]
mostrar Introduce el limite para Mirinda:");
leer limite[9]
rellenar=1
mientras rellenar=1
fin hacer mientras
FIN PROGRAMA

PRUEBAS DEL FUNCIONAMIENTO DEL


PROGRAMA

1.- Se muestra la primera pantalla de ejecucin del programa donde podemos observar
el men del mismo con los nombres de refresco y sus respectivos precios para que el
cliente elija uno de estos.

2.- Esta 2da imagen se muestra que el usuario ya eligi el refresco que va a tomar y el
programa le muestra la cantidad que debera introducir por l.

3.- Aqu se puede observar que el usuario va introduciendo las monedas y el programa
le est mostrando la cantidad que le falta por su refresco, para este caso no se dio
cambio por que el usuario ingreso el precio exacto del refresco.

4.- Para este caso el usuario ya selecciono su refresco que es un SPRIT y su costo es
de $7.50 pesos el usuario comienza introduciendo una moneda de $5 pesos y el
programa le est mandando que faltan $2.50 pesos, posterior mente el usuario introduce
otra moneda de a $5 pesos a lo que el programa tiene que devolverle su cambio que es
de $2.50 pesos en monedas pero lo har dndole el cambio en monedas de tal forma que
se d con el mnimo nmero de monedas es decir que en lugar de darle 5 monedas de
$.50 centavos 2 monedas de $1 peso y 1 moneda $.50centavos le dar 1 moneda de
$2 y 1 moneda de $.50 centavos siguiendo este proceso para todos los casos en que se
deban dar cambio.

5.- cuando la cantidad de refrescos de una marca se acabe el programa debe de mandarle
al usuario un mensaje con la siguiente frase Se ha acabado este refresco, favor de
seleccionar otro...

6.- Cuando la mquina est totalmente vaca, automticamente mandar un mensaje de


que el repartidor est llegando, seguido de un fuera de servicio, entonces indicar que la
maquina se est llenando y pedir que introduzca los refrescos(al repartidor
Administrador).

DESCRIPCIN DEL PROGRAMA


CLASE

DESCRIPCIN DE LA CLASE

Mquina De Refrescos.

SUBCLASE

Es la clase principal, que tiene como


funcin llamar a la subclase Refrescos,
para iniciar el programa.

DESCRIPCIN DE LA SUB CLASE


En esta clase se definen 5 mtodos para las operaciones y opciones del
programa.
Estos mtodos son:

REFRESCOS

1) Maquina (): Este es el mtodo principal que se encarga de pedir


al usuario que seleccione que refresco desea, entonces, esta
llama a los otros mtodos para que realicen sus papeles en dicho
programa (En dicho programa hay una opcin oculta que sirve
para introducir refrescos a la mquina, y solo la conoce el
administrador de la mquina).
2) Operaciones Internas (): Aqu te pide la introduccin de
monedas, te vlida dicha moneda introducida y realiza una resta,
para pagar el refresco.
3) Cambio (): Este mtodo se encarga de entregar el cambio
correspondiente en monedas vlidas.
4) Men Administrador (): Es un men que se encarga de
preguntar de qu tipo de refresco va a introducir a la mquina o
rellenar toda la mquina.
5) Introducir Refrescos (): Se encarga de solicitar que introduzca
todos los refrescos existentes, que estn declarados en la
mquina.

CONCLUSIONES PARTICULARES
ROSALES CRUZ MARICELA:
El proyecto de mquina despachadora de refrescos me permiti conocer ms
afondo la programacin orientada a objetos sin lugar a dudas la mejor forma de
aprender a programar es creando cdigo de esta manera aprendes a programar
practicando.
El proyecto fue de mi agrado porque puso en prueba todo lo aprendido en el
curso y con la ayuda de mis compaeros de equipo logramos terminar el proyecto de
manera satisfactoria.
VARGAS VARGAS RAUL:
Puedo conclusin puedo decir que el proyecto que nos toco fue muy interesante
porque aprend a construir y comprender de mejor manera la codificacin de un
programa un tanto ms complejo y para el mundo real.
Durante la elaboracin del proyecto aprend mucho acerca de la utilizacin de
los mtodos, de los ciclos, del Scanner, de los arreglos es decir aprend a manipular
algunas herramientas muy tiles para la programacin adems me di cuenta que me
falta mucho por aprender sobre el mundo de la programacin java lo cual me motiva a
seguir practicando y estudiando cada vez ms.
AMADOR ISLAS URIEL:
En mi opinin, el programa me ayud a entender que me hace falta analizar
mejor los problemas que tengo que resolver, ya que me cuesta trabajo para captar a la
primera.
OSCAR MANUEL RIVERA GARCA:
A mi humilde conclusin puedo decir que fue un buen proyecto para llevar
acabo ya que puso a prueba nuestras destrezas en la materia.
Adems de que se pudo poner en prctica todo lo aprendido en el cuatrimestre
como uso de objetos, variable, condiciones, clases, subclases, mtodos, ciclos, arreglos
entre muchas cosas.
Pienso que la rama de programacin es muy padre y a la vez difcil de entender
ya que se debe poner todas las ganas y el inters que se merece.

CONCLUSIONES GENERALES
En conclusin el proyecto mquina despachadora de refrescos desarrollado en
el lenguaje de programacin de java nos ayud a poner en prctica los conocimientos y
habilidades obtenidas a lo largo del curso.
Por ejemplo se utilizaron los arreglos unidimensionales para la realizacin de las
cantidades existentes de refrescos ya que los arreglos nos permiten manejar cantidades
especficas para los refrescos sin mrgenes de error.
Para validar las monedas se utiliz el condicional: if , else if para indicar la
validacin de dicha moneda y else para decir que la moneda no es vlida. Esta parte del
programa es muy importante pues permite identificar que monedas son vlidas y saber
cuntas monedas se pueden dar de cambio.
Se utilizaron ciclos while, do-while para diversos procedimientos que realizara
el programa, como por ejemplo cuando el usuario compra una bebida se le da la opcin
de poder comprar otra bebida esto se logra gracias a la utilizacin de dichos ciclos.
Gracias al proyecto logramos comprender como funciona un sistema como el de
mquina de refrescos de igual manera nos introdujo ms afondo al mundo de la
programacin orientado a objetos captando el inters de nosotros por que desarrollamos
un sistema para algo concreto y del mundo real como lo es una mquina de refrescos.
Durante la realizacin del programa surgieron diversas dudas sobre la forma de
crear el sistema desde la utilizacin de algunos parmetros hasta el diseo del programa
esto en ocasiones provoco que se detuviera el proceso de la codificacin del programa
pero no por mucho tiempo porque siempre buscamos ayuda en internet o con otros
compaeros pero cuando las dudas seguan el profesor era quien nos asesoraba para
poder lograr los resultados esperados.
Por ltimo es importante mencionar que el trabajo en equipo fue fundamental
para la realizacin de dicho proyecto pues nos permiti trabajar en colaboracin con
compaeros que comparten sus ideas y opiniones, esto facilito el trabajo y permiti que
el proyecto final se realizara en tiempo y forma.

BIBLIOGRAFA

INFORMACIN PSEUDOCDIGO
http://www.utu.edu.uy/Publicaciones/Publicaciones%20Educativas/GuiaJavaparaDocen
tes2012.pdf
INFORMACIN PARA LA CREACIN DEL PROGRAMA.
http://www.smartdraw.com/specials/ppc/umldesign.htm?id=10536&gclid=CIqFlMOo7gCFdOj4AodM0MAZw
http://www.alaingarcia.net/conozca/monedas.htm
http://mx.answers.yahoo.com/question/index?qid=20100824151532AAPO0E0
http://codigoprogramacion.com/cursos/java/96-arreglos-en-java.html#.UgqdsW36t_M

You might also like