You are on page 1of 3

#include <stdio.

h>
#include <conio.h>
#pragma warning (disable:4996)

typedef struct {
int C;
int S;
}ACTIVITATE;

typedef struct {
int is;
int nrmat;
char nume[25];
int an;
int grupa;
ACTIVITATE abs[15];
}LABORATOR;

void afisare_text()
{ FILE *f, *g;
LABORATOR x;
char nume_f[20];
int i;
printf("Nume fisier sursa: ");
gets_s(nume_f);
f = fopen(nume_f, "rb");
if (!f) printf("Fisierul %s nu a putut fi deschis", nume_f);
else {
printf("Nume fisier destinatie: ");
scanf(" ");
gets_s(nume_f);
g = fopen(nume_f, "w");
if (!g) printf("Fisierul %s nu a putut fi deschis", nume_f);
else {
fprintf(g, " STUDENTI
");
fprintf(g,
"\n================================================================================
===================================================================================
===========================");
fprintf(g, "\n=========================================|| 01
|| 02 || 03 || 04 || 05 || 06 || 07 || 08 || 09 ||
10 || 11 || 12 || 13 || 14 || 15 ");
fprintf(g, "\nNr mat || Nume si prenume || 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");
fprintf(g,
"\n================================================================================
===================================================================================
===========================");
fread(&x, sizeof(LABORATOR), 1, f);
while (!feof(f))
{
if (x.is == 1)
{
fprintf(g, "\n%-7d||%-17s||%-4d||%-7d",x.nrmat,
x.nume, x.an, x.grupa);
for (i = 0; i < 15; i++)
fprintf(g, "||%-3d||%-3d", x.abs[i].C,
x.abs[i].S);
}
fread(&x, sizeof(LABORATOR), 1, f);
}
fclose(g);
}
fclose(f);
printf("Printarea s-a realizat. Apasati o tasta.");
_getch();
}
}

void main() {
FILE *f;
LABORATOR x;
char nume_f[20];
int n, i,cheie;
printf("Nume fisier binar: ");
gets_s(nume_f);
f = fopen(nume_f, "rb+");
if (!f) printf("Fisierul %s nu s-a deschis", nume_f);
else {
fseek(f, 0, 2);
n = ftell(f) / sizeof(LABORATOR);
fseek(f, 0, 0);
printf("Nr matricol: ");
scanf("%d", &cheie);
while (!feof(stdin))
{
if (cheie > n)
{
x.is = 0;
fseek(f, 0, 2);
for (i = n+1; i <= cheie; i++)
fwrite(&x, sizeof(LABORATOR), 1, f);
}
fseek(f, cheie * sizeof(LABORATOR), 0);
fread(&x, sizeof(LABORATOR), 1, f);
if (x.is) printf("Articolul exista deja!");
else {
fseek(f, cheie * sizeof(LABORATOR), 0);
x.nrmat = cheie;
printf("Nume si prenume: ");
scanf(" ");
gets_s(x.nume);
printf("An: ");
scanf("%d", &x.an);
printf("Grupa: ");
scanf("%d", &x.grupa);
printf("Absente: ");
for (i = 0; i < 15; i++)
{
printf("\nActivitatea %d", i + 1);
printf("\nAbsente curs: ");
scanf("%d", &x.abs[i].C);
printf("Absente seminar: ");
scanf("%d", &x.abs[i].S);
}
x.is = 1;
fwrite(&x, sizeof(LABORATOR), 1, f);
}
printf("Nr matricol: ");
scanf("%d", &cheie);
}
fclose(f);
}
printf("Adaugarea s-a terminat, apasati o tasta.");
_getch();
}

You might also like