C-AYUDA C\C++
BIENVENIDO AL FORO C-AYUDA!

archivos en c

Ver el tema anterior Ver el tema siguiente Ir abajo

archivos en c

Mensaje  licho9128 el Lun Mayo 13, 2013 2:50 am

este es mi codigo:
/* Escribe un programa que tenga un menu que permita las opciones siguientes:
1)crear un archivo de datos para alumnos de fmat, con los campos: nombre, carrera y promedio.
2)que permita imprimir los datos de un estudiante dado su nombre.
3)que enliste a todos los estudiantes del archivo (reporte fisico) */

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
FILE *ap1;

int menu(void);
void crear(void);
void busca(char x[20]); /*char x[20]*/
void imprime(void);

void main(void)
{

char clave[20];
int op;
op=menu();
while (op!=4)
{
switch(op)
{
case 1:
crear();
break;

case 2:

printf("\n\n A que estudiante buscas? ");
scanf("%s",clave);
busca(clave);

break;

case 3:

imprime();
break;

default:

printf("\n\n ERROR EN LA OPCION ");
break;
}/*fin del switch*/
getch();
clrscr();
op=menu();

}/*fin del while*/

}/* fin del main*/

int menu(void)
{
int op;
clrscr();
printf("\n\n\t\t\t ---------- MENU--------");
printf("\n\n\t\t\t 1= Registrar alumnos FMAT ");
printf("\n\n\t\t\t 2= Buscar datos de alumnos ");
printf("\n\n\t\t\t 3= Reporte general de archivo");
printf("\n\n\t\t\t 4= FINALIZAR");
printf("\n\n\n Cual Opcion Eliges? ");
scanf("%d",&op);
return(op);
} /* fin menu*/

void crear(void)
{

char arch[11],nom[20],carr[3],band[5];
float prom;
printf("\n\n ¿Como se llama el archivo ? ");
scanf("%s",arch);
ap1=fopen(arch,"a");
strcpy(band,"nofin");
while(strcmp(band,"fin")!=0)
{
printf("\n\n Nombre del estudiante: ");
scanf("%s",nom);
fprintf(ap1,"%20s",nom);
printf("\n\n Carrera: ");
scanf("%s",carr);
fprintf(ap1,"\t%3s",carr);
printf("\n\n Promedio: ");
scanf("%f",&prom);
fprintf(ap1,"\t%3.2f",prom);
printf("\n\n teclea fin si quieres terminar o n si quieres seguir ");
scanf("%s",band);
fprintf(ap1,"\n");


}/*fin del while*/

fclose(ap1);
return;
}/* fin crear*/

void busca(char x[20])
{
char arch[11],nom[20],carr[3];

float prom;


printf("\nNombre del archivo: ");
scanf("%s", arch);

clrscr();

ap1 = fopen(arch, "r");

fscanf(ap1,"%s %s %f",nom, carr, &prom);
if((x))
{

if(feof(ap1) == 0)
{
if(strcmp(x,nom) == 0)

printf("\n\n NOMBRE: %20s \n\n\t\t CARRERA: %3s \n\n\t\tPROMEDIO: %3.2f",nom,carr,prom);

printf("\n\n");
system("PAUSE");
}

}



fclose(ap1);

return;
}/*fin busca*/

void imprime(void)
{
char arch[11];
printf("\nNombre del archivo: ");
scanf("%s", arch);
clrscr();
ap1= fopen(arch,"r");
char c;
if(ap1 == NULL)
{
printf("\n\n EL ARCHIVO NO EXISTE");
}


do
{
c=fgetc(ap1);
printf("%c",c);
}

while(c != EOF);

fclose(ap1);

return;

}

el problema es que en la funcion de "busca" no encuentra a las personas unicamente lo hace en el orden que fueron capturadas, yo necesito que lo busque en cualquier orden ayudenme porfavor es mi proyecto para el martes gracias de antemano.





licho9128

Mensajes : 1
Puntos : 3
Reputación : 0
Fecha de inscripción : 13/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.