GestionMaquinas.cpp
unknown
c_cpp
a year ago
3.9 kB
5
Indexable
#include <stdio.h> #include "GestionMaquinas.h" #include "CalendarioMes.h" void GestionMaquinas::init(struct Maquina maquinas[]) { char opcion; // Declarar la variable fuera del bucle do { printf("\n\n========== GesAMA: Gestion de Alquiler de Maquinas Agricolas ==========\n"); printf("Editar Maquina (Pulsar M)\n"); printf("Editar Finca (Pulsar F)\n"); printf("Listar Maquinas (Pulsar L)\n"); printf("Estado Fincas (Pulsar E)\n"); printf("Alquiler Maquina (Pulsar A)\n"); printf("Plan Mensual Maquina (Pulsar P)\n"); printf("Salir (Pulsar S)\n"); printf("Teclear una opcion válida (M|F|L|E|A|P|S)? "); if (scanf(" %c", &opcion) != 1) { // Si scanf no pudo leer un valor, manejar el error según sea necesario printf("Error al leer la opcion. Saliendo del programa.\n"); //return; // O realiza alguna acción de manejo de errores } switch (opcion) { case 'M': case 'm': // Llamar a la función para editar máquina { int id; printf("Identificador de la maquina a editar (1-10): "); if (scanf("%d", &id) != 1) { printf("Error al leer el identificador. Saliendo del programa.\n"); break; } if (id >= 1 && id <= 10) { GestionMaquinas::EditarMaquina(maquinas, id); } else { printf("Identificador no valido. Intentelo de nuevo.\n"); } break; } case 'F': case 'f': // Llamar a la función para editar finca break; case 'L': case 'l': // Llamar a la función para listar máquinas break; case 'E': case 'e': // Llamar a la función para mostrar el estado de las fincas break; case 'A': case 'a': // Llamar a la función para alquilar máquina break; case 'P': case 'p': // Llamar a la función para el plan mensual de máquina break; case 'S': case 's': printf("\n\nSaliendo del programa. ¡Hasta luego!\n"); break; default: printf("\n\nOpcion no válida. Intente de nuevo.\n"); } } while (opcion != 'S' && opcion != 's'); } void GestionMaquinas::EditarMaquina(struct Maquina maquinas[], int id) { // Borrar datos anteriores de la máquina maquinas[id - 1].activa = 0; printf("Nombre (entre 1 y 20 caracteres): "); scanf("%19s", maquinas[id - 1].nombre); // Limitar la entrada a 19 caracteres para dejar espacio para el carácter nulo '\0' printf("Tipo (G-Grano, U-Uva, A-Aceituna, B-Borrar): "); scanf(" %c", &maquinas[id - 1].tipo); printf("Capacidad (hectareas/día): "); scanf("%f", &maquinas[id - 1].capacidad); printf("Ubicacion inicial (Latitud): "); scanf("%lf", &maquinas[id - 1].latitud); printf("Ubicacion inicial (Longitud): "); scanf("%lf", &maquinas[id - 1].longitud); // Mostrar los nuevos datos y confirmar printf("Son correctos los nuevos datos (S/N)? "); char confirmacion; scanf(" %c", &confirmacion); if (confirmacion == 'S' || confirmacion == 's') { maquinas[id - 1].activa = 1; printf("Maquina editada correctamente.\n"); } else { printf("Edicion cancelada. Los datos anteriores permanecen.\n"); } }
Editor is loading...
Leave a Comment