#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{
printf("\n\t\tMENÚ PRINCIPAL"); printf("\n\n1.- Gestión de Socios"); printf("\n2.- Gestión de Cursos"); printf("\n3.- Informes Económicos"); printf("\nOpcion a escoger: ");
switch (opcion)
{
GestSocios();
break;
GestCursos();
break;
InformesEconomicos();
break;
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"); }
}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("\n3.- Modificación de datos de un socio"); printf("\n4.- Consulta de datos de un socio"); 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: ");
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:
printf("\nOpcion incorrecta, introduzca otra...\n\n"); printf("\nPulse <intro> para volver al menu\n\n"); }
}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("\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: "); }
/**************************************************************************************************************
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: ");
}
/***********************************************************************************
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: "); gets(datos_socio
[contador
].
nombre);
do{
printf("\tIntroduce el tipo de socio: "); scanf("%d",&datos_socio
[contador
].
TipoSocio);
if ((datos_socio[contador].TipoSocio >=1) && (datos_socio[contador].TipoSocio <=3))
{
validacion='v';
printf("\nTu tipo es %d", datos_socio
[contador
].
TipoSocio); }
else
{
validacion='f';
printf("\nEl tipo introducido no es correcto"); }
}while(validacion=='f');
do{
printf("\nIntroduzca su DNI: "); scanf("%s",datos_socio
[contador
].
DNI);
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"); }
}while(validacion=='f');
printf("Su DNI es: %s",datos_socio
[contador
].
DNI); printf("\nPulse <intro> para volver al menú");
}
/***********************************************************************************
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\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];
printf("\nSe ha borrado el socio correctamente."); break;
}
break;
}
if ((datos_socio[i].DNI!= baja_socio) && (i=MAX_Socios-1))
{
printf("\nEste DNI no se encuentra en nuestro registro."); }
}
}
/***********************************************************************************
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++)
{
printf("Socio %i: %s",contador
,datos_socio
[contador
].
DNI); }
}
/***********************************************************************************
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()
{
}