Pero para dar de baja a un socio mediante el DNI, no consigo hacer que funcione(subprograma BajaSocios) para borrar el DNI que la persona te indique.
El código es el siguiente:
Código
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <string.h> #define MAX_Socios 100 #define MAX_Cursos 10 #define TRUE 1 #define FALSE 0 //Declaración de estructuras struct estructura_datos_socio { char nombre[40]; char DNI[10]; int TipoSocio; }datos_socio[MAX_Socios]; //Variables Globales int opcion,opcion1,opcion2,opcion3; int contador=1; //Prototipos de subprogramas int Menu(); int GestSocios(); int GestCursos(); int InformesEconomicos(); void AltaSocios(struct estructura_datos_socio *datos_socio,int contador); void BajaSocios(struct estructura_datos_socio *datos_socio, int contador); void ModificacionSocios(); void ConsultaSocios(struct estructura_datos_socio *datos_socio,int contador); void PagoMensual(); void SociosNormales(); void SociosJubilados(); void SociosINfantiles(); void GeneralSocios(); int main() { Menu(); return 0; } //Subprograma Menú int Menu() { do{ switch (opcion) { GestSocios(); break; GestCursos(); break; InformesEconomicos(); break; break; default: } }while(opcion!=0); return (opcion); } /************************************************************************************************************** Subprograma de gestión de socios ***************************************************************************************************************/ /*********************************************************************************** Subprograma: GestSocios Tipo: void Prerrequesitos: Opción 1 para ejecutar el subprograma Objetivo: Presenta en la pantalla el submenú de gestión de socios ************************************************************************************/ int GestSocios() { do { switch (opcion1) { AltaSocios(datos_socio,contador); contador++; break; BajaSocios(datos_socio, contador); contador--; break; ModificacionSocios(); break; ConsultaSocios(datos_socio,contador); break; case 5: PagoMensual(); break; case 6: SociosNormales(); break; case 7: SociosJubilados(); break; case 8: SociosInfantiles(); break; case 9: GeneralSocios(); break; case 0: ; break; default: } }while (opcion1!=0); } /************************************************************************************************************** Subprograma de gestión de cursos ***************************************************************************************************************/ /*********************************************************************************** Subprograma: GestCursos Tipo: Submenú Prerrequesitos: Opción 2 para ejecutar el subprograma Objetivo: Presenta en la pantalla el submenú de gestión de cursos ************************************************************************************/ int GestCursos() { } /************************************************************************************************************** Subprograma de infomes económicos ***************************************************************************************************************/ /*********************************************************************************** Subprograma: InformesEconomicos Tipo: Submenú Prerrequesitos: Opción 3 para ejecutar el subprograma Objetivo: Presenta en la pantalla el submenú de informes económicos ************************************************************************************/ int InformesEconomicos() { } /*********************************************************************************** Subprograma: AltaSocios Tipo: Procedimiento Prerrequesitos: Opción 1 para ejecutar el subprograma Objetivo: Pedir datos generales del socio(DNI,nombre y tipo) ************************************************************************************/ void AltaSocios(struct estructura_datos_socio *datos_socio,int contador) { int validacion; char letraDNI; do{ if ((datos_socio[contador].TipoSocio >=1) && (datos_socio[contador].TipoSocio <=3)) { validacion='v'; } else { validacion='f'; } }while(validacion=='f'); do{ { validacion='v'; for (contador;datos_socio[contador].DNI<9;contador++) } else { validacion='f'; } }while(validacion=='f'); } /*********************************************************************************** Subprograma: BajaSocios Tipo: Procedimiento Prerrequesitos: Opción 2 para ejecutar el subprograma Objetivo: Eliminar datos generales del socio(DNI,nombre y tipo) ************************************************************************************/ void BajaSocios(struct estructura_datos_socio *datos_socio, int contador) { int baja_socio; int i=0; int posicion; for (i=0; i>MAX_Socios; i++) { if (datos_socio[i].DNI == baja_socio) { posicion=i; for (i=posicion; i<MAX_Socios; i++) { datos_socio[i]= datos_socio[i+1]; break; } break; } if ((datos_socio[i].DNI!= baja_socio) && (i=MAX_Socios-1)) { } } } /*********************************************************************************** Subprograma: ModificacionSocios Tipo: Procedimiento Prerrequesitos: Opción 3 para ejecutar el subprograma Objetivo: Modificar datos generales del socio(DNI,nombre y tipo) ************************************************************************************/ void ModificacionSocios() { } /*********************************************************************************** Subprograma: ConsultaSocios Tipo: Procedimiento Prerrequesitos: Opción 4 para ejecutar el subprograma Objetivo: Pedir datos generales del socio(DNI,nombre y tipo) ************************************************************************************/ void ConsultaSocios(struct estructura_datos_socio *datos_socio,int contador) { for (contador=1;contador<MAX_Socios;contador++) { } } /*********************************************************************************** Subprograma: PagoMensual Tipo: Procedimiento Prerrequesitos: Opción 5 para ejecutar el subprograma Objetivo: Pedir datos generales del socio(DNI,nombre y tipo) ************************************************************************************/ void PagoMensual() { } /*********************************************************************************** Subprograma: SociosNormales Tipo: Procedimiento Prerrequesitos: Opción 6 para ejecutar el subprograma Objetivo: Pedir el listado de socios normales ************************************************************************************/ void SociosNormales() { } /*********************************************************************************** Subprograma: PagoMensual Tipo: Procedimiento Prerrequesitos: Opción 7 para ejecutar el subprograma Objetivo: Pedir el listado de socios jubilados ************************************************************************************/ void SociosJubilados() { } /*********************************************************************************** Subprograma: SociosInfantiles Tipo: Procedimiento Prerrequesitos: Opción 8 para ejecutar el subprograma Objetivo: Pedir el listado de socios infantiles ************************************************************************************/ void SociosInfantiles() { } /*********************************************************************************** Subprograma: PagoMensual Tipo: Procedimiento Prerrequesitos: Opción 7 para ejecutar el subprograma Objetivo: Pedir datos generales del socio(DNI,nombre y tipo) ************************************************************************************/ void GeneralSocios() { }