Skip to content

Commit 24b8bbd

Browse files
#19 - JAVA
1 parent 3567e46 commit 24b8bbd

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
// Clase principal
2+
public class MohamedElderkaoui {
3+
public static void main(String[] args) {
4+
// Parte 1: Enum de días de la semana
5+
System.out.println("Días de la semana:");
6+
for (int i = 1; i <= 7; i++) {
7+
System.out.println("Día " + i + ": " + DiaSemana.obtenerDiaPorNumero(i));
8+
}
9+
10+
// Parte 2: Sistema de gestión de pedidos
11+
Pedido pedido1 = new Pedido(1);
12+
Pedido pedido2 = new Pedido(2);
13+
14+
// Interacción con los pedidos
15+
System.out.println("\nGestión de pedidos:");
16+
System.out.println(pedido1);
17+
pedido1.enviarPedido();
18+
System.out.println(pedido1);
19+
pedido1.entregarPedido();
20+
System.out.println(pedido1);
21+
22+
System.out.println("\nEstado inicial del segundo pedido:");
23+
System.out.println(pedido2);
24+
pedido2.cancelarPedido();
25+
System.out.println(pedido2);
26+
}
27+
}
28+
29+
// Enum para los días de la semana
30+
enum DiaSemana {
31+
LUNES, MARTES, MIERCOLES, JUEVES, VIERNES, SABADO, DOMINGO;
32+
33+
public static DiaSemana obtenerDiaPorNumero(int numero) {
34+
if (numero < 1 || numero > 7) {
35+
throw new IllegalArgumentException("El número debe estar entre 1 y 7.");
36+
}
37+
return DiaSemana.values()[numero - 1];
38+
}
39+
}
40+
41+
// Enum para los estados de un pedido
42+
enum EstadoPedido {
43+
PENDIENTE, ENVIADO, ENTREGADO, CANCELADO
44+
}
45+
46+
// Clase que representa un pedido
47+
class Pedido {
48+
private final int id;
49+
private EstadoPedido estado;
50+
51+
public Pedido(int id) {
52+
this.id = id;
53+
this.estado = EstadoPedido.PENDIENTE;
54+
}
55+
56+
public void enviarPedido() {
57+
if (estado == EstadoPedido.PENDIENTE) {
58+
estado = EstadoPedido.ENVIADO;
59+
System.out.println("El pedido #" + id + " ha sido enviado.");
60+
} else {
61+
System.out.println("No se puede enviar el pedido #" + id + " en su estado actual: " + estado);
62+
}
63+
}
64+
65+
public void entregarPedido() {
66+
if (estado == EstadoPedido.ENVIADO) {
67+
estado = EstadoPedido.ENTREGADO;
68+
System.out.println("El pedido #" + id + " ha sido entregado.");
69+
} else {
70+
System.out.println("No se puede entregar el pedido #" + id + " en su estado actual: " + estado);
71+
}
72+
}
73+
74+
public void cancelarPedido() {
75+
if (estado == EstadoPedido.PENDIENTE || estado == EstadoPedido.ENVIADO) {
76+
estado = EstadoPedido.CANCELADO;
77+
System.out.println("El pedido #" + id + " ha sido cancelado.");
78+
} else {
79+
System.out.println("No se puede cancelar el pedido #" + id + " en su estado actual: " + estado);
80+
}
81+
}
82+
83+
@Override
84+
public String toString() {
85+
String descripcionEstado;
86+
switch (estado) {
87+
case PENDIENTE:
88+
descripcionEstado = "Pendiente de envío.";
89+
break;
90+
case ENVIADO:
91+
descripcionEstado = "Enviado, en espera de entrega.";
92+
break;
93+
case ENTREGADO:
94+
descripcionEstado = "Entregado al cliente.";
95+
break;
96+
case CANCELADO:
97+
descripcionEstado = "Pedido cancelado.";
98+
break;
99+
default:
100+
descripcionEstado = "Estado desconocido.";
101+
}
102+
return "Pedido #" + id + " - Estado: " + descripcionEstado;
103+
}
104+
}

0 commit comments

Comments
 (0)