Skip to content

Commit 56d6b4c

Browse files
committed
#19 - Java
1 parent f3fda0e commit 56d6b4c

File tree

1 file changed

+137
-0
lines changed

1 file changed

+137
-0
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
2+
/*
3+
* EJERCICIO:
4+
* Empleando tu lenguaje, explora la definición del tipo de dato
5+
* que sirva para definir enumeraciones (Enum).
6+
* Crea un Enum que represente los días de la semana del lunes
7+
* al domingo, en ese orden. Con ese enumerado, crea una operación
8+
* que muestre el nombre del día de la semana dependiendo del número entero
9+
* utilizado (del 1 al 7).
10+
*
11+
* DIFICULTAD EXTRA (opcional):
12+
* Crea un pequeño sistema de gestión del estado de pedidos.
13+
* Implementa una clase que defina un pedido con las siguientes características:
14+
* - El pedido tiene un identificador y un estado.
15+
* - El estado es un Enum con estos valores: PENDIENTE, ENVIADO, ENTREGADO y CANCELADO.
16+
* - Implementa las funciones que sirvan para modificar el estado:
17+
* - Pedido enviado
18+
* - Pedido cancelado
19+
* - Pedido entregado
20+
* (Establece una lógica, por ejemplo, no se puede entregar si no se ha enviado, etc...)
21+
* - Implementa una función para mostrar un texto descriptivo según el estado actual.
22+
* - Crea diferentes pedidos y muestra cómo se interactúa con ellos.
23+
*/
24+
25+
enum DiasSemana {
26+
LUNES(1),
27+
MARTES(2),
28+
MIERCOLES(3),
29+
JUEVES(4),
30+
VIERNES(5),
31+
SABADO(6),
32+
DOMINGO(7);
33+
34+
private final int numero;
35+
36+
private DiasSemana(int numero) {
37+
this.numero = numero;
38+
}
39+
}
40+
41+
DiasSemana getDia(int numero) {
42+
if (numero < 1 || numero > 7) {
43+
throw new IllegalArgumentException("El número debe se entre 1 y 7");
44+
}
45+
DiasSemana[] dias = DiasSemana.values();
46+
for (int i = 0; i < DiasSemana.values().length; i++) {
47+
if (dias[i].numero == numero) {
48+
return dias[i];
49+
}
50+
}
51+
return null;
52+
}
53+
54+
class Pedido {
55+
private Long id;
56+
private Estados estado;
57+
58+
public Pedido(Long id) {
59+
this.id = id;
60+
this.estado = estado.PENDIENTE;
61+
}
62+
63+
void enviado() {
64+
if (estado != Estados.PENDIENTE) {
65+
IO.println("No puedes cambiar el estado");
66+
return;
67+
}
68+
estado = Estados.ENVIADO;
69+
IO.println("El estado a sido cambiado a " + estado);
70+
printPedido();
71+
}
72+
73+
void entregado() {
74+
if (estado != Estados.ENVIADO) {
75+
IO.println("El estado aun no a sido enviado");
76+
return;
77+
}
78+
estado = Estados.ENTREGADO;
79+
IO.println("El estado a sido cambiado a " + estado);
80+
printPedido();
81+
}
82+
83+
void cancelar() {
84+
if (estado == Estados.ENTREGADO) {
85+
IO.println("El pedido ya se encuentra " + estado + " No se puede cancelar");
86+
return;
87+
}
88+
estado = Estados.CANCELADO;
89+
IO.println("El pedido a sido " + estado);
90+
printPedido();
91+
}
92+
93+
void printPedido() {
94+
IO.println(String.format("El estado del pedido %d es %s ", id, estado));
95+
}
96+
97+
/*
98+
*
99+
* - Pedido enviado
100+
* - Pedido cancelado
101+
* - Pedido entregado
102+
* (Establece una lógica, por ejemplo, no se puede entregar si no se ha enviado,
103+
* etc...)
104+
* - Implementa una función para mostrar un texto descriptivo según el estado
105+
* actual.
106+
* - Crea diferentes pedidos y muestra cómo se interactúa con ellos.
107+
*/
108+
}
109+
110+
enum Estados {
111+
112+
PENDIENTE(1), ENVIADO(2), ENTREGADO(3), CANCELADO(4);
113+
114+
private final int numero;
115+
116+
private Estados(int numero) {
117+
this.numero = numero;
118+
}
119+
}
120+
121+
void main() {
122+
DiasSemana dia = getDia(1);
123+
DiasSemana dia1 = getDia(7);
124+
IO.println(dia);
125+
IO.println(dia1);
126+
127+
// EXTRA
128+
Pedido pedido = new Pedido(1L);
129+
pedido.printPedido();
130+
131+
pedido.enviado();
132+
133+
pedido.cancelar();
134+
135+
pedido.entregado();
136+
137+
}

0 commit comments

Comments
 (0)