Skip to content

Commit 7213d34

Browse files
authored
Merge pull request mouredev#7262 from MohamedElderkaoui/main
#19 -JAVA
2 parents b861cce + dd02502 commit 7213d34

File tree

4 files changed

+416
-0
lines changed

4 files changed

+416
-0
lines changed
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+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import java.util.*;
2+
3+
public class MohamedElderkaoui {
4+
5+
// Lista de regalos para los días
6+
static final String[] prices = {
7+
"Curso de lógica de programación", "Diplomado sobre Metodologías Ágiles",
8+
"Desarrollo de interfaces con Qt4", "Introducción a la programación funcional",
9+
"Desarrollo en C#", "Buenas prácticas de programación en Java Springboot",
10+
"¿Cómo hacer Smart Commits?", "Uso básico de la terminal Linux",
11+
"Primeros pasos en Django Rest Framework (DRF)",
12+
"Práctica aplicada de los patrones SOLID en Java",
13+
"Introducción de Base de Datos", "Buenas prácticas dentro de Python",
14+
"Paradigma de Metodologías Tradicionales ¿Aún tienen uso? ¿En qué casos es aplicable?",
15+
"Data Science con Python y R", "GO ¿El lenguaje del futuro?",
16+
"Patrones de Diseño de Software aplicados en Python",
17+
"Algoritmos de optimización aplicados en C++",
18+
"Fundamentos de la Inteligencia Artificial",
19+
"Aplicación en la actualidad del IoT",
20+
"Uso de librería numpy y pandas dentro de Python",
21+
"POO aplicada en Java", "0 a héroe en PostgreSQL",
22+
"Generación de servicios REST con AWS Api Gateway y Lambda"
23+
};
24+
25+
public static void main(String[] args) {
26+
// Array para rastrear los días descubiertos
27+
boolean[] discovered = new boolean[24];
28+
Scanner scanner = new Scanner(System.in);
29+
30+
while (true) {
31+
printCalendar(discovered);
32+
System.out.println("Ingrese el día que quiere descubrir (1-24) o 0 para salir:");
33+
34+
int dia;
35+
try {
36+
dia = scanner.nextInt();
37+
if (dia == 0) {
38+
System.out.println("¡Gracias por participar en el aDEViento! 🎉");
39+
break;
40+
}
41+
if (dia < 1 || dia > 24) {
42+
System.out.println("⚠️ El día debe estar entre 1 y 24.");
43+
continue;
44+
}
45+
46+
// Revisar si el día ya está descubierto
47+
if (discovered[dia - 1]) {
48+
System.out.println("⚠️ Ya has descubierto este día.");
49+
} else {
50+
discovered[dia - 1] = true; // Marcar como descubierto
51+
System.out.println("🎁 Regalo del día " + dia + ": " + prices[dia - 1]);
52+
}
53+
} catch (InputMismatchException e) {
54+
System.out.println("⚠️ Entrada no válida. Debes ingresar un número.");
55+
scanner.next(); // Limpiar el scanner
56+
}
57+
}
58+
scanner.close();
59+
}
60+
61+
// Método para imprimir el calendario
62+
private static void printCalendar(boolean[] discovered) {
63+
System.out.println("Calendario de aDEViento:");
64+
for (int i = 0; i < 24; i++) {
65+
if (i % 6 == 0) System.out.println(); // Nueva fila cada 6 días
66+
67+
if (discovered[i]) {
68+
// Si el día ya está descubierto, mostramos cuadrícula llena
69+
System.out.print("**** ");
70+
} else {
71+
// Mostrar día con formato
72+
System.out.printf("*%02d* ", i + 1);
73+
}
74+
}
75+
System.out.println("\n");
76+
}
77+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
const prices = [
2+
"Curso de lógica de programación", "Diplomado sobre Metodologías Ágiles",
3+
"Desarrollo de interfaces con Qt4", "Introducción a la programación funcional",
4+
"Desarrollo en C#", "Buenas prácticas de programación en Java Springboot",
5+
"¿Cómo hacer Smart Commits?", "Uso básico de la terminal Linux",
6+
"Primeros pasos en Django Rest Framework (DRF)",
7+
"Práctica aplicada de los patrones SOLID en Java",
8+
"Introducción de Base de Datos", "Buenas prácticas dentro de Python",
9+
"Paradigma de Metodologías Tradicionales ¿Aún tienen uso? ¿En qué casos es aplicable?",
10+
"Data Science con Python y R", "GO ¿El lenguaje del futuro?",
11+
"Patrones de Diseño de Software aplicados en Python",
12+
"Algoritmos de optimización aplicados en C++",
13+
"Fundamentos de la Inteligencia Artificial",
14+
"Aplicación en la actualidad del IoT",
15+
"Uso de librería numpy y pandas dentro de Python",
16+
"POO aplicada en Java", "0 a héroe en PostgreSQL",
17+
"Generación de servicios REST con AWS Api Gateway y Lambda"
18+
];
19+
20+
// Array para rastrear los días descubiertos
21+
const discovered = Array(24).fill(false);
22+
23+
// Función para imprimir el calendario
24+
function printCalendar() {
25+
console.clear();
26+
console.log("Calendario de aDEViento:");
27+
for (let i = 0; i < 24; i++) {
28+
if (i % 6 === 0) console.log(); // Nueva fila cada 6 días
29+
30+
if (discovered[i]) {
31+
// Mostrar cuadrícula llena si el día está descubierto
32+
process.stdout.write("**** ");
33+
} else {
34+
// Mostrar cuadrícula con el número del día
35+
process.stdout.write(`*${String(i + 1).padStart(2, '0')}* `);
36+
}
37+
}
38+
console.log("\n");
39+
}
40+
41+
// Función principal
42+
function startAdventCalendar() {
43+
while (true) {
44+
printCalendar();
45+
46+
let input = prompt("Ingrese el día que quiere descubrir (1-24) o 0 para salir:");
47+
if (input === null) break; // Salir si el usuario cierra el prompt
48+
49+
const day = parseInt(input, 10);
50+
51+
if (isNaN(day)) {
52+
console.log("⚠️ Entrada no válida. Debes ingresar un número.");
53+
continue;
54+
}
55+
56+
if (day === 0) {
57+
console.log("¡Gracias por participar en el aDEViento! 🎉");
58+
break;
59+
}
60+
61+
if (day < 1 || day > 24) {
62+
console.log("⚠️ El día debe estar entre 1 y 24.");
63+
continue;
64+
}
65+
66+
if (discovered[day - 1]) {
67+
console.log(`⚠️ El día ${day} ya ha sido descubierto.`);
68+
} else {
69+
discovered[day - 1] = true;
70+
console.log(`🎁 Regalo del día ${day}: ${prices[day - 1]}`);
71+
}
72+
}
73+
}
74+
75+
// Iniciar el calendario
76+
startAdventCalendar();

0 commit comments

Comments
 (0)