void borrarBarco (Barco * barco){ free(barco->nombre); free(barco->manga); Persona * aux = barco->tripulacion; Persona * fin = aux + (barco->siguientePuesto); for (; aux <= fin ; ++aux) { borrarPersona(aux); } barco->siguientePuesto = 0; borrarPersona(&barco->propietario); free(barco->tripulacion); }
int main() { EPersona persona[20]; char seguir = 's'; int op = 0, flag = 0, carga = 0; long int auxDni; do{ system("cls"); printf("1- Agregar persona\n"); printf("2- Borrar persona\n"); printf("3- Imprimir lista ordenada por nombre\n"); printf("4- Imprimir grafico de edades\n\n"); printf("5- Salir\n"); scanf("%d",&op); switch(op) { case 1: system("cls"); if(flag == 0){ inicializarEstados(persona, TAM); flag = 1; } agregarPersona(persona, TAM); carga = 1; system("pause"); break; case 2: system("cls"); if (carga == 0) printf("Debe ingresar algun dato primero\n"); else{ auxDni = getLongInt(auxDni, "Ingrese DNI a eliminar: ", "\n\nERROR. El DNI debe ser entre 1000000 y 99999999.\nReingrese: ", 100000, 99999999); borrarPersona(persona, auxDni, TAM); } system("pause"); break; case 3: system("cls"); if (carga == 0) printf("Debe ingresar algun dato primero\n"); else ordenarPersonas(persona, TAM); system("pause"); break; case 4: system("cls"); if (carga == 0) printf("Debe ingresar algun dato primero\n"); else graficoPersonas(persona, TAM); system("pause"); break; case 5: seguir = 'n'; break; default: system("cls"); printf("Opcion invalida. Elija una opcion entre 1 y 5\n"); system("pause"); } }while(seguir=='s'); return 0; }
int main() { ePersona persona[TAM]; inicializarPersona(persona,TAM); int indiceDesocupado; int dniAux; char seguir='s'; int opcion=0; int flagAltas=0; printf("\n ----------------------------- "); printf("\n - BIENVENIDO A TP2_ABM - "); printf("\n ----------------------------- \n\n"); system("pause"); system("cls"); while(seguir=='s') { system("cls"); printf("MENU \n\n"); printf("****\n\n"); printf("1- Agregar una persona\n"); printf("2- Borrar una persona\n"); printf("3- Imprimir lista ordenada por nombre\n"); printf("4- Imprimir grafico de edades\n\n"); printf("5- Salir\n"); printf("\nOpcion: "); scanf("%d",&opcion); switch(opcion) { case 1: indiceDesocupado=buscarDesocupado(persona,TAM); if(indiceDesocupado!=-1) { agregarPersonas(persona,TAM,indiceDesocupado); persona[indiceDesocupado].estado=1; } else { printf("\nNO HAY ESPACIO DISPONIBLE"); } flagAltas=1; break; system("pause"); system("cls"); case 2: if(flagAltas==0) { printf("\nDEBE INGRESAR AL MENOS UNA PERSONA\n"); system("pause"); } else { printf("\nINGRESE DNI DE LA PERSONA QUE DESEA BORRAR: "); scanf("%d",&dniAux); indiceDesocupado=borrarPersona(persona,TAM,dniAux); if(indiceDesocupado!=-1) { persona[indiceDesocupado].estado=-1; persona[indiceDesocupado].dni=-1; persona[indiceDesocupado].edad=-1; printf("\nPERSONA ELIMINADA CON EXITO\n\n"); } else { printf("\nNO SE ENCONTRO EL DNI INGRESADO\n"); } system("pause"); } break; case 3: if(flagAltas==0) { printf("\nDEBE INGRESAR AL MENOS UNA PERSONA\n"); system("pause"); } else { mostrarListaPersonas(persona,TAM); system("pause"); } break; case 4: if(flagAltas==0) { printf("\nDEBE INGRESAR AL MENOS UNA PERSONA\n"); system("pause"); } else { graficoDeBarras(persona,TAM); system("pause"); } break; case 5: seguir='n'; printf("\nSESION FINALIZADA\n"); printf("\n- GRACIAS POR UTILIZAR TP2_ABM -\n\n"); system("pause"); break; default: printf("\nNO INGRESO UNA OPCION VALIDA (1-5)\n\n"); system("pause"); } } return 0; }