Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- typedef struct {
- int curs;
- int seminar;
- }absente;
- typedef struct {
- int indicator;
- int id;
- char nume[25];
- int an;
- int grupa;
- absente d[15];
- } student;
- void creare(char nume_f[25]) // asta nu trebuie!!Fisierul organizat e deja creat
- {
- FILE *f;
- int i;
- student a;
- f = fopen(nume_f, "wb");
- printf("Indicator de stare: ");
- scanf("%d", &a.indicator);
- fflush(stdin);
- while (!feof(stdin))
- {
- printf("ID=");
- getc(stdin);
- scanf("%d", &a.id);
- printf("Nume: "); getc(stdin); gets(a.nume);
- printf("An:"); scanf("%d", &a.an);
- printf("Grupa:"); scanf("%d", &a.grupa);
- for (int i = 0; i < 15; i++)
- {
- printf("Absente curs disciplina %d : ", i+1);
- scanf("%d", &a.d[i].curs);
- printf("Absente seminar disciplina %d : ", i+1);
- scanf("%d", &a.d[i].seminar);
- }
- fwrite(&a, sizeof(a), 1, f);
- fflush(stdin);
- printf("Indicator de stare: "); getc(stdin); scanf("%d", &a.indicator);
- fflush(stdin);
- }
- fclose(f);
- }
- void absenta(char nume_f[25])
- {
- FILE *f;
- student x;
- int cod1, vb;
- int disciplina;
- char y[20];
- if (!(f = fopen(nume_f, "rb+")))
- printf("nu exista fisierul");
- else {
- printf("Numarul matricol al elevului cautat: ");
- scanf("%d", &cod1);
- printf("Disciplina: ");
- scanf("%d", &disciplina);
- printf("C/S: ");
- getc(stdin);
- gets(y);
- while (!feof(stdin))
- {
- rewind(f);
- vb = 0;
- fread(&x, sizeof(x), 1, f);
- while (!feof(f) && (vb == 0))
- {
- if (cod1 == x.id)
- {
- if (y[0] == 'C' || y[0]=='c')
- {
- x.d[disciplina-1].curs++;
- fseek(f, ftell(f) - sizeof(x), 0);
- fwrite(&x, sizeof(x), 1, f);
- vb = 1;
- }
- if (y[0] == 'S' || y[0] == 's')
- {
- x.d[disciplina-1].seminar++;
- fseek(f, ftell(f) - sizeof(x), 0);
- fwrite(&x, sizeof(x), 1, f);
- vb = 1;
- }
- }
- else fread(&x, sizeof(x), 1, f);
- }
- if (vb == 0) printf("codul nu exista");
- printf("Numarul matricol al elevului cautat: ");
- scanf("%d", &cod1);
- printf("Disciplina: ");
- scanf("%d", &disciplina);
- printf("C/S: ");
- getc(stdin);
- gets(y);
- }
- fclose(f);
- }
- }
- void afisare(char nume_f[20]) //cerinta 2
- {
- FILE *f, *g;
- student x;
- int i = 0;
- if (!(f = fopen(nume_f, "rb"))) printf("nu exista fisierul");
- else
- {
- g = fopen("lista2.txt", "w");
- printf("\n ");
- fprintf(g, " ABSENTE \n");
- fprintf(g, "============================================================================================================================================================================================================================== \n ");
- fprintf(g, " || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14 || 15 || \n");
- fprintf(g, "============================================================================================================================================================================================================================== \n ");
- fprintf(g, "Indicator de stare || ID || Nume || An || Grupa || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || C || S || \n ");
- fprintf(g, "==============================================================================================================================================================================================================================\n ");
- fread(&x, sizeof(x), 1, f);
- while (!feof(f))
- {
- fprintf(g, "\n %-18d || %2d || %-14s|| %5d || %8d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d || %d ||", x.indicator, x.id, x.nume, x.an, x.grupa, x.d[0].curs, x.d[0].seminar, x.d[1].curs, x.d[1].seminar, x.d[2].curs, x.d[2].seminar, x.d[3].curs, x.d[3].seminar, x.d[4].curs, x.d[4].seminar, x.d[5].curs, x.d[5].seminar, x.d[6].curs, x.d[6].seminar, x.d[7].curs, x.d[7].seminar, x.d[8].curs, x.d[8].seminar, x.d[9].curs, x.d[9].seminar, x.d[10].curs, x.d[10].seminar, x.d[11].curs, x.d[11].seminar, x.d[12].curs, x.d[12].seminar, x.d[13].curs, x.d[13].seminar, x.d[14].curs, x.d[14].seminar);
- fread(&x, sizeof(x), 1, f);
- }
- fclose(f); fclose(g);
- }
- }
- void main()
- {
- FILE *f;
- char nume_f[25];
- printf("\n nume fisier secvential:");
- gets(nume_f);
- //creare(nume_f);
- absenta(nume_f);
- afisare(nume_f);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement