Antes de empezar
Para realizar estos ejercicios, deberás descargar los recursos del enlace de proyecto_enumeraciones. Como puedes ver, la solución está compuesta de varios proyectos. Cada uno de ellos corresponde con un ejercicio, deberás implementar todo el código, tanto de la Main como de los métodos que se piden en cada ejercicio. Cada proyecto contiene el test correspondiente, que deberás pasar para comprobar que has hecho el ejercicio correctamente.
Programa que gestione diferentes niveles de dificultad en un videojuego.
Ejercicio 1: Sistema de gestión de niveles de dificultad === CONFIGURACIÓN DE DIFICULTAD === Niveles disponibles: Facil, Medio, Dificil, Extremo Introduce el nivel deseado: Facil Nivel seleccionado: Facil === ESTADÍSTICAS DEL NIVEL === Nivel: Facil Vidas: 10 Puntos por enemigo: 5 ¿Quieres probar otro nivel? (S/N): s Introduce el nivel deseado: dfa Nivel no válido. Niveles disponibles: Facil, Medio, Dificil, Extremo Introduce el nivel deseado: Extremo Nivel seleccionado: Extremo === ESTADÍSTICAS DEL NIVEL === Nivel: Extremo Vidas: 1 Puntos por enemigo: 50 ¿Quieres probar otro nivel? (S/N): n ¡Gracias por jugar!
Requisitos:
Enum.GetNames para mostrar niveles disponibles y Enum.TryParse para validación.Programa que permita controlar el coste del abono de transporte urbano de una ciudad.
Ejercicio 2: Control de abono de transporte urbano === CALCULADORA DE ABONOS === Tipos de abono disponibles: QuinceDias, TreintaDias, FamiliasNumerosas, TerceraEdad, Discapacidad, Juvenil, Infantil, Turistico Introduce el tipo de abono: juvenil Tipo de abono seleccionado: Juvenil Los abonos QuinceDias y TreintaDias tienen duración fija. Para otros abonos, introduce días (mínimo 7, máximo 60): 15 === DETALLES DEL ABONO === Tipo de abono: Juvenil Precio por viaje: 0,65€ Días del abono: 15 Coste total del abono: 9,75€ ¿Quieres calcular otro abono? (S/N): s Introduce el tipo de abono: quincedias Tipo de abono seleccionado: QuinceDias === DETALLES DEL ABONO === Tipo de abono: QuinceDias Precio por viaje: 0,70€ Días del abono: 15 (fijo) Coste total del abono: 10,50€ ¿Quieres calcular otro abono? (S/N): n ¡Gracias por usar nuestro servicio!
Requisitos:
Enum.TryParse.do-while para validación de entrada y control del programa principal.Programa que gestione los estados de pedidos en una tienda online usando arrays.
Ejercicio 3: Gestión de estados de pedidos === SISTEMA DE PEDIDOS === Estados disponibles: Pendiente, Procesando, Enviado, Entregado, Cancelado Número de pedidos a gestionar: r Número de pedidos a gestionar: 5 --- ASIGNACIÓN DE ESTADOS --- Pedido 1 - Introduce estado: pendiente Pedido 2 - Introduce estado: procesando Pedido 3 - Introduce estado: enviado Pedido 4 - Introduce estado: entregaos Estado no válido. Estados disponibles: Pendiente, Procesando, Enviado, Entregado, Cancelado Pedido 4 - Introduce estado: entregado Pedido 5 - Introduce estado: cancelado === RESUMEN DE PEDIDOS === Pedido 1: Pendiente Pedido 2: Procesando Pedido 3: Enviado Pedido 4: Entregado Pedido 5: Cancelado === ESTADÍSTICAS === Pendiente: 1 pedidos Procesando: 1 pedidos Enviado: 1 pedidos Entregado: 1 pedidos Cancelado: 1 pedidos === PEDIDOS ACTIVOS (no entregados ni cancelados) === Pedido 1: Pendiente Pedido 2: Procesando Pedido 3: Enviado Total de pedidos activos: 3
Requisitos:
EstadoPedido[] para almacenar los estados de los pedidos.Enum.TryParse. Si se introduce entrada no valida, se mostrarán los estados y se volverá a pedir.for y foreach para recorrer el array de pedidos.Programa que genere de manera aleatoria una dieta semanal para las cenas basada en platos vegetarianos.
Ejercicio 4: Dieta semanal vegetariana === GENERADOR DE DIETA SEMANAL === Generando dieta aleatoria para la semana... === DIETA DE LA SEMANA === Lunes: PastaConPesto (450 calorías) Martes: SushiVegetariano (500 calorías) Miércoles: SopaDeLentejas (250 calorías) Jueves: CazuelaDeVegetales (300 calorías) Viernes: HamburguesaVegetal (300 calorías) Sábado: WrapDeVerdurasYHummus (300 calorías) Domingo: BerenjenasAlHornoConQueso (250 calorías) === ANÁLISIS NUTRICIONAL === Calorías totales de la semana: 2350 Promedio de calorías por día: 335.71 Día con menos calorías: Miércoles (SopaDeLentejas - 250 calorías) Día con más calorías: Martes (SushiVegetariano - 500 calorías) ¿Quieres generar otra dieta? (S/N): s === NUEVA DIETA GENERADA === Lunes: EnsaladaDeQuinoa (350 calorías) Martes: FalafelConEnsalada (400 calorías) Miércoles: CremaDeCalabaza (150 calorías) Jueves: PizzaVegetariana (500 calorías) Viernes: ArrozFritoConTofu (400 calorías) Sábado: ChilesRellenosDeQueso (350 calorías) Domingo: GnocchiConSalsaDeTomate (450 calorías) Día con menos calorías: Miércoles (CremaDeCalabaza - 150 calorías) ¿Quieres generar otra dieta? (S/N): n ¡Que disfrutes de tu dieta vegetariana!
Requisitos:
Random para generar la dieta aleatoria, bucles y llamadas a los métodos que resuelvan un problema,Programa que gestione turnos de trabajo usando enumeración con flags.
Ejercicio 5: Sistema de turnos de trabajo con flags === GESTIÓN DE TURNOS === Empleado: Juan Pérez Turnos disponibles: M = Mañana, T = Tarde, N = Noche, F = FinDeSemana Introduce turnos asignados (ej: MTF): mt === INFORMACIÓN DEL EMPLEADO === Empleado: Juan Pérez Turnos: Mañana, Tarde Horas semanales: 16 Salario base: 1280.00€ Operaciones disponibles: A = Añadir turno, Q = Quitar turno, M = Mostrar info, S = Salir Operación: a Turno a añadir (M/T/N/F): f Turno FinDeSemana añadido. Operaciones disponibles: A = Añadir turno, Q = Quitar turno, M = Mostrar info, S = Salir Operación: q Turno a quitar (M/T/N/F): t Turno Tarde quitado. Operación: m === INFORMACIÓN DEL EMPLEADO === Empleado: Juan Pérez Turnos: Mañana, FinDeSemana Horas semanales: 18 Salario base: 1480.00€ Operación: s ¡Hasta luego!
Requisitos:
[Flags]: Ninguno=0b_0000_0000, Mañana=0b_0000_0001, Tarde=0b_0000_0010, Noche=0b_0000_0100, FinDeSemana=0b_0000_1000.TurnoTrabajo. Puedes usar un switch de expresión.|).& ~). Igual que el anterior pero quitando un turno.