You are on page 1of 4

#include<stdio.

h>

#include<stdlib.h>

typedef struct {

unsigned int nrm;

char nume[25];

unsigned int ans;

unsigned int grupa;

unsigned int absenteCurs[14];

unsigned int absenteSeminar[14];

int is;

}STUDENT;

void scriereText() {

FILE *g, *f;

int nrcrt,i;

char numefr[20] = "Absente_relativ.bin";

char numeft[30] = "Lista.txt";

STUDENT x;

f = fopen(numefr, "rb");

if (!f)

printf("\nNu pot deschide fisierul %s", numefr);

else

g = fopen(numeft, "wt");

fprintf(g, "\t\tLista studentilor\n");

fprintf(g, "\n Nrcrt Nr.m. %-29s Grupa An", "Nume si prenume");

nrcrt = 0;
fread(&x, sizeof(STUDENT), 1, f);

while (!feof(f))

if (x.is)

fprintf(g, "\n %6d %5d %-29s %d %5d", ++nrcrt, x.nrm,x.nume, x.grupa,


x.ans);

for (i=0; i < 15; i++) {

fprintf(g, "%d %d", x.absenteCurs[i], x.absenteSeminar[i]);

fread(&x, sizeof(STUDENT), 1, f);

fclose(f);

fclose(g);

printf("\nGata, lista se afla in fiserul %s. \nApasa o tasta..", numeft);

int main()

FILE* f;

STUDENT x;

unsigned int cheie, nrart, i, a, nractivitate, tip;

char numef[20] = "Absente_relativ.bin";

f = fopen(numef, "wb");

if (!f)
printf("\nFisierul %s nu poate fi deschis", numef);

printf("\nNumar matricol: "); scanf("%d", &cheie);

for (i=0;i<14;i++)

x.absenteCurs[i] = 0;

x.absenteSeminar[i] = 0;

while (!feof(stdin))

fseek(f, 0, 2);

nrart = (unsigned int)ftell(f) / sizeof(STUDENT);

if (cheie >= nrart)

printf("Numar matricol incorect");

fseek(f, cheie * sizeof(STUDENT), 0);

fread(&x, sizeof(STUDENT), 1, f);

if (x.is == 1)

printf("\nCheie duplicata: %d", cheie);

else

{
printf("\nNumar activitate: ");

scanf("%d", &nractivitate);

printf("Tip activitate(Curs=1 || Seminar=0)\n");

scanf("%d", &tip);

if (tip == 0) {

x.absenteSeminar[nractivitate] += 1;

else {

x.absenteCurs[nractivitate] += 1;

x.is = 1;

fseek(f, cheie * sizeof(STUDENT), SEEK_SET);

fwrite(&x, sizeof(STUDENT), 1, f);

fseek(f, 0, 1);

printf("\nNumar matricol:");

scanf("%d", &cheie);

fclose(f);

scriereText();

printf("\n\nGata, apasa o tasta...");

return 0;

You might also like