Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - GameX

#1
El subprograma no da error  al compilar, pero no funciona correctamente. Lo que ocure es que no se porque pero  al meter los DNI en la estructura, no da ningun problema; los guarda correctamente.
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:
#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()
{
   setlocale( LC_ALL, "Spanish" );
   Menu();
   return 0;
}

//Subprograma Menú
int Menu()
{
   do{
       printf("\n\t\tMENÚ PRINCIPAL");
       printf("\n\n1.- Gestión de Socios");
       printf("\n2.- Gestión de Cursos");
       printf("\n3.- Informes Económicos");
       printf("\n0.- Salir");
       printf("\nOpcion a escoger: ");
       scanf("%d",&opcion);
       fflush(stdin);

       switch (opcion)
{
   case 1: system("cls");
           GestSocios();
           break;

   case 2: system("cls");
           GestCursos();
           break;

   case 3: system("cls");
           InformesEconomicos();
           break;

   case 0: system("cls");
           printf("\n\n\t\tGracias por utilizar la aplicación de \"GEST-GYM\"\n\n\t\t");
           break;

   default:
       printf("\nOpcion incorrecta, introduzca otra...\n\n");
       printf("\nPulse <intro> para volver al menu\n\n");
       fflush(stdin);
       getchar();
       system("cls");
}
   }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
       {
           printf("\tSUBMENÚ \"GESTION DE SOCIOS\"");
           printf("\n\n1.- Alta");
           printf("\n2.- Baja");
           printf("\n3.- Modificación de datos de un socio");
           printf("\n4.- Consulta de datos de un socio");
           printf("\n5.- Pago Mensual");
           printf("\n6.- Listado de Socios normales");
           printf("\n7.- Listado de Socios jubilados");
           printf("\n8.- Listado de Socios infantiles");
           printf("\n9.- Listado General de Socios");
           printf("\n0.- Volver al Menú Principal");
           printf("\nOpcion a escoger: ");
           scanf("%d",&opcion1);
           fflush(stdin);


   switch (opcion1)
{

   case 1: system("cls");
           AltaSocios(datos_socio,contador);
           contador++;
           system("cls");
           break;

   case 2: system("cls");
           BajaSocios(datos_socio, contador);
           contador--;
           system("cls");
           break;

   case 3: system("cls");
           ModificacionSocios();
           system("cls");
           break;

   case 4: system("cls");
           ConsultaSocios(datos_socio,contador);
           system("cls");
           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:
       printf("\nOpcion incorrecta, introduzca otra...\n\n");
       printf("\nPulse <intro> para volver al menu\n\n");
       fflush(stdin);
       getchar();
       system("cls");
}
   }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()
{
   printf("\tSUBMENÚ \"GESTION DE CURSOS\"");
   printf("\n\n1.- Alta");
   printf("\n2.- Baja");
   printf("\n3.- Modificación de datos de un curso");
   printf("\n4.- Consulta de datos de un curso");
   printf("\n5.- Listado General de Cursos");
   printf("\n6.- Inscripción de socios a un curso");
   printf("\n7.- Listado de socios que están apuntados a un curso");
   printf("\n0.- Volver al Menú Principal");
   printf("\nOpcion a escoger: ");
   fflush(stdin);
   scanf("%d",&opcion2);
   system("cls");
}
/**************************************************************************************************************

                                   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()
{
   printf("\tSUBMENÚ \"INFORMES ECONOMICOS\"");
   printf("\n\n1.- Informe Mensual(por cuotas básicas)");
   printf("\n2.- Informe Mensual(de un curso)");
   printf("\n3.- Informe Mensual(todos los cursos)");
   printf("\n0.- Volver al Menú Principal");
   printf("\nOpcion a escoger: ");
   fflush(stdin);
   scanf("%d",&opcion3);
   system("cls");

}

/***********************************************************************************
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;

   printf("\t\"Alta de socios\"");



   printf("\nIntroduzca su nombre: ");
   fflush(stdin);
   gets(datos_socio[contador].nombre);


   do{

           printf("\nTipo de socio:");
           printf("\n\n1.- Normal");
           printf("\n2.- Jubilado");
           printf("\n3.- Infantil");
           printf("\tIntroduce el tipo de socio: ");
           scanf("%d",&datos_socio[contador].TipoSocio);
           fflush(stdin);

           if ((datos_socio[contador].TipoSocio >=1) && (datos_socio[contador].TipoSocio <=3))
           {
               validacion='v';
               printf("\nTu tipo es %d", datos_socio[contador].TipoSocio);
               getchar();
           }

           else

           {
               validacion='f';
               printf("\nEl tipo introducido no es correcto");
               getchar();
               fflush(stdin);
               system("cls");
           }

   }while(validacion=='f');


   do{

           printf("\nIntroduzca su DNI: ");
           scanf("%s",datos_socio[contador].DNI);
           fflush(stdin);

           if (strlen(datos_socio[contador].DNI)==9)

               {
               validacion='v';
               for (contador;datos_socio[contador].DNI<9;contador++)

                   printf("%c, %d\n", datos_socio[contador].DNI, isdigit(datos_socio[contador].DNI));
               }

               else
               {
               validacion='f';
               printf("\nEl DNI introducido no es correcto");
               getchar();
               fflush(stdin);
               system("cls");
               }


   }while(validacion=='f');


   printf("Su DNI es: %s",datos_socio[contador].DNI);
   printf("\nPulse <intro> para volver al menú");
   getchar();

}
/***********************************************************************************
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;

   printf("\n\tBaja de socios");


   printf("\n\n\tIntroduzca el DNI del socio a modificar");
   scanf("%s", &baja_socio);


   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];
               fflush(stdin);
               printf("\nSe ha borrado el socio correctamente.");
               getchar();
               system("cls");
               break;
           }
           break;
       }

       if ((datos_socio[i].DNI!= baja_socio) && (i=MAX_Socios-1))
       {
           printf("\nEste DNI no se encuentra en nuestro registro.");
       }
   }
   fflush(stdin);
   getchar();

}
/***********************************************************************************
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++)
   {
       fflush(stdin);
       printf("Socio %i:  %s",contador,datos_socio[contador].DNI);
       getchar();
   }

}
/***********************************************************************************
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()
{

}