Necesito ayuda con este programa.
Resuelto/Cerrado
unodeverde
Mensajes enviados
4
Fecha de inscripción
jueves, 30 de abril de 2009
Estatus
Miembro
Última intervención
martes, 19 de mayo de 2009
-
30 abr 2009 a las 19:43
unodeverde - 2 may 2009 a las 13:48
unodeverde - 2 may 2009 a las 13:48
Consulta también:
- Necesito ayuda con este programa.
- Crocodile programa - Programas - Educación
- Everest programa - Programas - Monitorización y diagnóstico
- Descargar torrent online sin programa - Guide
- Programa victoria - Programas - Monitorización y diagnóstico
- Características de un programa - Guide
1 respuesta
Veo que no he tenido mucho exito.
No hay absolutamente nadie que me pueda hechar una mano.
De todas formas os dejo otro porque yo me vuelvo loco con estos dos programas.
Haber si hay alguna alma caricativa, por favor.
Gracias de todas formas, incluso a los que se molestan en leerlo.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef struct
{
char nombre[20],apellidos[30];
int etapa,curso,nota1,nota2,nota3;
float media;
}campos;
void introducir(campos datos);
void mostrar(campos datos);
void suspensos4(campos datos);
void mostraraprobados2B(campos datos);
void ultimo(campos datos);
main()
{
campos datos;
FILE *p;
introducir(datos);
mostrar(datos);
suspensos4(datos);
mostraraprobados2B(datos);
ultimo(datos);
getchar();
getchar();
system("PAUSE");
}
void introducir(campos datos)
{
char grabar='S';
FILE *p;
if((p=fopen("fichero.bin","wb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
do
{
printf("\nIntroducir nombre:");
fflush(stdin);
gets(datos.nombre);
strlwr(datos.nombre);
datos.nombre[0]=toupper(datos.nombre[0]);
printf("\nIntroducir apellidos:");
fflush(stdin);
gets(datos.apellidos);
strlwr(datos.apellidos);
datos.apellidos[0]=toupper(datos.apellidos[0]);
do
{
printf("\nSabiendo que ESO(1), Bachillerato(2) y Ciclo formativo(3), introduce el digito perteneciente a la etapa etapa:");
scanf("%d",&datos.etapa);
}while((datos.etapa!=1)&&(datos.etapa!=2)&&(datos.etapa!=3));
do
{
printf("\nSabiendo que ESO(1,2,3,4); Bachillerato(1,2) y Ciclo formativo(1,2), introduce el digito perteneciente al curso:");
scanf("%d",&datos.curso);
}while((datos.curso!=1)&&(datos.curso!=2)&&(datos.curso!=3)&&(datos.curso!=4));
do
{
printf("\nIntroduce la primera nota:");
scanf("%d",&datos.nota1);
}while((datos.nota1<=0)&&(datos.nota1>=10));
do
{
printf("\nIntroduce la segunda nota:");
scanf("%d",&datos.nota2);
}while((datos.nota2<=0)&&(datos.nota2>=10));
do
{
printf("\nIntroduce la tercera nota:");
scanf("%d",&datos.nota3);
}while((datos.nota3<=0)&&(datos.nota3>=10));
datos.media=((datos.nota1+datos.nota2+datos.nota3)/3);
printf("\nLa nota media es: %.f .\n",datos.media);
fwrite(&datos,sizeof(campos),1,p);
printf("\nDeseas grabar datos de algún alumno (S/N):");
fflush(stdin);
scanf("%c",&grabar);
}while((grabar=='s')||(grabar=='S'));
}
fclose(p);
system("PAUSE");
}
//-------------------------------------------------------------------------------------------------------------------------//
void mostrar(campos datos)
{
FILE *p;
rewind(p);
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
fread(&datos,sizeof(campos),1,p);
while(!feof(p))
{
printf("\nEl nombre del alumno es: %s",datos.nombre);
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa etapa del alumno es: %d",datos.etapa);
printf("\nEl curso del alumno es: %d",datos.curso);
printf("\nLa 1ª nota del alumno es: %d",datos.nota1);
printf("\nLa 2ª del alumno es: %d",datos.nota2);
printf("\nLa 3º del alumno es: %d",datos.nota3);
printf("\nLa nota media del alumno es: %f\n\n\n",datos.media);
fread(&datos,sizeof(campos),1,p);
}
fclose(p);
system("PAUSE");
}
}
//-------------------------------------------------------------------------------------------------------------------------//
void suspensos4(campos datos)
{
FILE *p;
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
printf("\nNombre y apellidos de la nota media suspensa 4 ESO.\n\n\n");
fread(&datos,sizeof(campos),1,p);
int suspenso=0,contador=0;
while(!feof(p))
{
fread(&datos,sizeof(campos),1,p);
if(datos.curso==4)
{
if(datos.media<5)
{
contador++;
printf("\nEl nombre del alumno es: %s",datos.nombre);
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa nota media del alumno es: %f",datos.media);
fread(&datos,sizeof(campos),1,p);
}
}
}
if(suspenso==0)
{
printf("\nNo hay suspensos.\n");
}
else
{
printf("\nEl numero de suspensos es %d.\n",contador);
}
}
fclose(p);
system("PAUSE");
}
//-------------------------------------------------------------------------------------------------------------------------//
void mostraraprobados2B(campos datos)
{
FILE *p;
int cont=0;
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
printf("\nNombre y apellidos de la nota media aprobados Segundo Bachillerato.\n\n");
fread(&datos,sizeof(campos),1,p);
while(!feof(p))
{
fread(&datos,sizeof(campos),1,p);
if(datos.etapa==2)
{
fread(&datos,sizeof(campos),1,p);
if (datos.curso==2)
{
fread(&datos,sizeof(campos),1,p);
if(datos.media>4)
{
cont++;
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa nota media del alumno es: %f",datos.media);
fread(&datos,sizeof(campos),1,p);
if(cont==0)
{
printf("\nNo hay aprobados en Segundo de Bachillerato.");
}
else
{
printf("\nEl numero de aprobados en Segundo de Bachillerato es: %d",cont);
}
}
}
}
}
}
fclose(p);
system("PAUSE");
}
//----------------------------------------------------------------------------------------------------------------------//
void ultimo(campos datos)
{
FILE *p;
int registro='s';
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
printf("Desea mostrar el ultimo registro (S/N):");
scanf("%c",registro);
while((registro=='s')||(registro=='S'))
{
fseek(p,2,0);
fread(&datos,sizeof(campos),1,p);
if(!feof(p))
{
printf("\nEl nombre del alumno es: %s",datos.nombre);
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa etapa del alumno es: %d",datos.etapa);
printf("\nEl curso del alumno es: %d",datos.curso);
printf("\nLa 1ª nota del alumno es: %d",datos.nota1);
printf("\nLa 2ª del alumno es: %d",datos.nota2);
printf("\nLa 3º del alumno es: %d",datos.nota3);
printf("\nLa nota media del alumno es: %f",datos.media);
fread(&datos,sizeof(campos),1,p);
}
}
}
fclose(p);
system("PAUSE");
}
//-------------------------------------------------------------------------------------------------------------------------//
No hay absolutamente nadie que me pueda hechar una mano.
De todas formas os dejo otro porque yo me vuelvo loco con estos dos programas.
Haber si hay alguna alma caricativa, por favor.
Gracias de todas formas, incluso a los que se molestan en leerlo.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef struct
{
char nombre[20],apellidos[30];
int etapa,curso,nota1,nota2,nota3;
float media;
}campos;
void introducir(campos datos);
void mostrar(campos datos);
void suspensos4(campos datos);
void mostraraprobados2B(campos datos);
void ultimo(campos datos);
main()
{
campos datos;
FILE *p;
introducir(datos);
mostrar(datos);
suspensos4(datos);
mostraraprobados2B(datos);
ultimo(datos);
getchar();
getchar();
system("PAUSE");
}
void introducir(campos datos)
{
char grabar='S';
FILE *p;
if((p=fopen("fichero.bin","wb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
do
{
printf("\nIntroducir nombre:");
fflush(stdin);
gets(datos.nombre);
strlwr(datos.nombre);
datos.nombre[0]=toupper(datos.nombre[0]);
printf("\nIntroducir apellidos:");
fflush(stdin);
gets(datos.apellidos);
strlwr(datos.apellidos);
datos.apellidos[0]=toupper(datos.apellidos[0]);
do
{
printf("\nSabiendo que ESO(1), Bachillerato(2) y Ciclo formativo(3), introduce el digito perteneciente a la etapa etapa:");
scanf("%d",&datos.etapa);
}while((datos.etapa!=1)&&(datos.etapa!=2)&&(datos.etapa!=3));
do
{
printf("\nSabiendo que ESO(1,2,3,4); Bachillerato(1,2) y Ciclo formativo(1,2), introduce el digito perteneciente al curso:");
scanf("%d",&datos.curso);
}while((datos.curso!=1)&&(datos.curso!=2)&&(datos.curso!=3)&&(datos.curso!=4));
do
{
printf("\nIntroduce la primera nota:");
scanf("%d",&datos.nota1);
}while((datos.nota1<=0)&&(datos.nota1>=10));
do
{
printf("\nIntroduce la segunda nota:");
scanf("%d",&datos.nota2);
}while((datos.nota2<=0)&&(datos.nota2>=10));
do
{
printf("\nIntroduce la tercera nota:");
scanf("%d",&datos.nota3);
}while((datos.nota3<=0)&&(datos.nota3>=10));
datos.media=((datos.nota1+datos.nota2+datos.nota3)/3);
printf("\nLa nota media es: %.f .\n",datos.media);
fwrite(&datos,sizeof(campos),1,p);
printf("\nDeseas grabar datos de algún alumno (S/N):");
fflush(stdin);
scanf("%c",&grabar);
}while((grabar=='s')||(grabar=='S'));
}
fclose(p);
system("PAUSE");
}
//-------------------------------------------------------------------------------------------------------------------------//
void mostrar(campos datos)
{
FILE *p;
rewind(p);
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
fread(&datos,sizeof(campos),1,p);
while(!feof(p))
{
printf("\nEl nombre del alumno es: %s",datos.nombre);
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa etapa del alumno es: %d",datos.etapa);
printf("\nEl curso del alumno es: %d",datos.curso);
printf("\nLa 1ª nota del alumno es: %d",datos.nota1);
printf("\nLa 2ª del alumno es: %d",datos.nota2);
printf("\nLa 3º del alumno es: %d",datos.nota3);
printf("\nLa nota media del alumno es: %f\n\n\n",datos.media);
fread(&datos,sizeof(campos),1,p);
}
fclose(p);
system("PAUSE");
}
}
//-------------------------------------------------------------------------------------------------------------------------//
void suspensos4(campos datos)
{
FILE *p;
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
printf("\nNombre y apellidos de la nota media suspensa 4 ESO.\n\n\n");
fread(&datos,sizeof(campos),1,p);
int suspenso=0,contador=0;
while(!feof(p))
{
fread(&datos,sizeof(campos),1,p);
if(datos.curso==4)
{
if(datos.media<5)
{
contador++;
printf("\nEl nombre del alumno es: %s",datos.nombre);
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa nota media del alumno es: %f",datos.media);
fread(&datos,sizeof(campos),1,p);
}
}
}
if(suspenso==0)
{
printf("\nNo hay suspensos.\n");
}
else
{
printf("\nEl numero de suspensos es %d.\n",contador);
}
}
fclose(p);
system("PAUSE");
}
//-------------------------------------------------------------------------------------------------------------------------//
void mostraraprobados2B(campos datos)
{
FILE *p;
int cont=0;
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
printf("\nNombre y apellidos de la nota media aprobados Segundo Bachillerato.\n\n");
fread(&datos,sizeof(campos),1,p);
while(!feof(p))
{
fread(&datos,sizeof(campos),1,p);
if(datos.etapa==2)
{
fread(&datos,sizeof(campos),1,p);
if (datos.curso==2)
{
fread(&datos,sizeof(campos),1,p);
if(datos.media>4)
{
cont++;
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa nota media del alumno es: %f",datos.media);
fread(&datos,sizeof(campos),1,p);
if(cont==0)
{
printf("\nNo hay aprobados en Segundo de Bachillerato.");
}
else
{
printf("\nEl numero de aprobados en Segundo de Bachillerato es: %d",cont);
}
}
}
}
}
}
fclose(p);
system("PAUSE");
}
//----------------------------------------------------------------------------------------------------------------------//
void ultimo(campos datos)
{
FILE *p;
int registro='s';
if((p=fopen("fichero.bin","rb"))==NULL)
{
printf("Error.");
fflush(stdin);
getchar();
}
else
{
printf("Desea mostrar el ultimo registro (S/N):");
scanf("%c",registro);
while((registro=='s')||(registro=='S'))
{
fseek(p,2,0);
fread(&datos,sizeof(campos),1,p);
if(!feof(p))
{
printf("\nEl nombre del alumno es: %s",datos.nombre);
printf("\nEl nombre del apellidos es: %s",datos.apellidos);
printf("\nLa etapa del alumno es: %d",datos.etapa);
printf("\nEl curso del alumno es: %d",datos.curso);
printf("\nLa 1ª nota del alumno es: %d",datos.nota1);
printf("\nLa 2ª del alumno es: %d",datos.nota2);
printf("\nLa 3º del alumno es: %d",datos.nota3);
printf("\nLa nota media del alumno es: %f",datos.media);
fread(&datos,sizeof(campos),1,p);
}
}
}
fclose(p);
system("PAUSE");
}
//-------------------------------------------------------------------------------------------------------------------------//