Documente Academic
Documente Profesional
Documente Cultură
Să se scrie programul care creează un fişier organizat relativ cu date despre produsele unei societăţi comerciale. Datele
care se reţin despre produse sunt: denumire, pret, cantitate.
Cheia relativă a fişierului este codul produsului. Datele se preiau de la tastatură,
sfârşitul introducerii fiind marcat standard.
*/
//citire
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(raport);
}
}
void main()
{
FILE* f;
char nume[20];
PRODUS p;
printf("Nume fisier binar = ");
scanf("%s", nume);
//deschidem fisierul binar
f = fopen(nume, "rb");
//verificam
if (!f)
printf("Eroare");
else
{
//apelam raportul
raport(f);
//inchidem raportul
fclose(f);
}
}
/*Să se scrie subprogramul care modifică cantitatea (aprovizionare) pentru produsele ale căror coduri se introduc de la
tastatură și un exemplu de apel. Cheia relativă a fişierului este codul produsului.
Datele se preiau de la tastatură, sfârşitul introducerii fiind marcat standard. */
#define _CRT_SECURE_NO_WARNINGS //în cazul în care apar avertismente de securitate
#include<stdio.h>
typedef struct {
char denumire[20];
float pret;
int cant;
char is; // is -indicator de stare
}PRODUS;
int nrart(FILE* f, int l)
{
long p; int n;
p = ftell(f); fseek(f, 0, 2); n = ftell(f) / l;
fseek(f, p, 0); return n;
}
}
cod++;
//citire
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(raport);
}
}
void main()
{
FILE* f;
char nume[20];
PRODUS p;
int cod;
printf("Nume fisier binar = ");
scanf("%s", nume);
//deschidem fisierul binar
f = fopen(nume, "rb+");
//verificam
if (!f)
printf("Eroare");
else
{
//apelam raportul
raport(f);
printf("\nCe produs doriti sa stergeti (cod) ");
scanf("%d", &cod);
while (!feof(stdin))
{
//comparam codul introdus de la tastatura cu nr de articole din fisier
if(cod>=nrart(f,sizeof(PRODUS)))
printf("Nu exista produsul!");
else
{
fseek(f, cod*sizeof(PRODUS), 0);
//citim articolul
fread(&p, sizeof(PRODUS), 1, f);
if (p.is == 0)
printf("Nu exista produsul");
else
{
printf("Nume %s Pret %f Cant %d", p.denumire, p.pret, p.cant);
//stergere
p.is = 0;
fseek(f, cod * sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
}
}
printf("\nCe produs doriti sa stergeti (cod) ");
scanf("%d", &cod);
//inchidem raportul
fclose(f);
}
}