Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- typedef struct
- {
- char cnp[14];
- char nume[30];
- char an;
- int clasa;
- int nrd;
- int note[5];
- }elev;
- //functia care scrie cate un articol student din fisierul binar f in fisierul text g
- void elev_intext( FILE *text, elev *x)
- {
- int i;
- fprintf(text," %-15s %-20s %c %d %d ", x->cnp, x->nume, x->an, x->clasa, x->nrd);
- for (i = 0; i < x->nrd; i++)
- fprintf(text, "%d ", x->note[i]);
- fprintf(text,"\n");
- }
- int main()
- {
- FILE *f, *g;
- char numef[20], numeg[20], cnpc[14];//cnpc pt cnp-ul cautat
- elev x;
- int cls, gasitcl, gasitcnp;//cls pt clasa dorita
- printf("Numele primului fisier: ");
- gets_s(numef); if (numef[0] == 0) gets_s(numef);
- f = fopen(numef, "rb");
- if (!f)
- printf("Fisierul 1 nu a putut fi deschis.");
- else
- {
- printf("Nume fisier2= "); gets_s(numeg);
- if (numeg[0] == 0) gets_s(numeg);
- g = fopen(numeg, "wt");
- if (!g)
- printf("Fiserul 2 nu a putut fi deschis.");
- else
- {
- fprintf(g, "\t\t Lista elevilor\n ");
- fprintf(g, " %-15s %-20s an clasa nrd \n", "cnp", "nume");
- fseek(f, 0, 0);
- fread(&x, sizeof(elev), 1, f);
- while (!feof(f))
- {
- elev_intext(g, &x);
- fread(&x, sizeof(elev), 1, f);
- }
- //afisarea elevilor dintr-o anumita clasa introdusa de la tastatura
- fprintf(g, "\nAfisarea elevilor dupa o anumita clasa ");
- printf("\n clasa dorita= "); scanf("%d", &cls);
- while (!feof(stdin))
- {
- gasitcl = 0;
- fseek(f, 0, 0);
- fread(&x, sizeof(elev), 1, f);
- while (!feof(f))
- {
- if (x.clasa == cls)
- {
- if(gasitcl==0)
- fprintf(g, "\n Lista elevilor din clasa %d\n ", cls);
- elev_intext(g, &x);
- gasitcl = 1;
- }
- fread(&x, sizeof(elev), 1, f);
- }
- if (gasitcl == 0)
- fprintf(g, "\nNu s-a gasit niciun elev in clasa %d", cls);
- printf("\n clasa dorita= "); scanf("%d", &cls);
- }
- //gasirea unui elev dupa cnp
- fprintf(g, "Gasirea unui elev dupa cnp");
- printf("Cnp-ul elevului= "); gets_s(cnpc);
- if (cnpc[0] == 0) gets_s(cnpc);
- while (!feof(stdin))
- {
- gasitcnp = 0;
- fseek(f, 0, 0);
- fread(&x, sizeof(elev), 1, f);
- while (!feof(f))
- {
- if (strcmp(x.cnp, cnpc) == 0)
- {
- elev_intext(g, &x);
- gasitcnp = 1;
- }
- fread(&x, sizeof(elev), 1, f);
- }
- if (gasitcnp == 0)
- fprintf(g, "Nu exista un elev cu cnp-ul %s", cnpc);
- printf("Cnp-ul elevului= "); gets_s(cnpc);
- if (cnpc[0] == 0) gets_s(cnpc);
- }
- fclose(g);
- }
- fclose(f);
- }
- printf("\n\nGata, apasa o tasta ");
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement