Documente Academic
Documente Profesional
Documente Cultură
#include<stdio.h>
typedef struct {
char denumire[20];
float pret;
int cant[12];
char is;
}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;
}
void main()
{
FILE *f;
char nume[20]; PRODUS p; int i, cod;
printf("\nFisier: "); gets(nume);
f = fopen(nume, "wb+");
printf("\n Cod produs"); scanf("%d", &cod);
while (!feof(stdin))
{
if (cod >= nrart(f, sizeof(PRODUS)))
printf("Nu exista");
else {
fseek(f, cod * sizeof(PRODUS), 0);
fread(&p, sizeof(PRODUS), 1, f);
if (p.is) printf("\nExista deja un produs cu acest cod");
else {
p.pret += p.pret*1.1;
fseek(f, cod * sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
}
}
printf("\nCod: "); scanf("%d", &cod);
}
fclose(f);
}
#include<stdio.h>
typedef struct {
char denumire[20];
float pret;
int cant[12];
char is;
}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;
}
void main()
{
FILE *f;
char nume[20]; PRODUS p; int i, cod;
printf("\nFisier: "); gets(nume);
f = fopen(nume, "wb+");
printf("\n Cod produs"); scanf("%d", &cod);
while (!feof(stdin))
{
if (cod >= nrart(f, sizeof(PRODUS)))
printf("Nu exista");
else {
fseek(f, cod * sizeof(PRODUS), 0);
fread(&p, sizeof(PRODUS), 1, f);
if (p.is) printf("\nExista deja un produs cu acest cod");
else {
p.is = 0;
fseek(f, cod * sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
}
}
printf("\nCod: "); scanf("%d", &cod);
}
fclose(f);
}
5.MODIFICARE CU SELECTIE
#include<stdio.h>
typedef struct {
char denumire[20];
float pret;
int cant[12];
char is;
}PRODUS;
void main()
{
FILE *f, *g; char nume[20];
PRODUS p; float max, val; int i, cod;
printf("\nFisier: "); gets(nume);
if (!(f = fopen(nume, "rb")))printf("\nFisierul %s nu poate fi deschis", nume);
else {
printf("\nFisier text: "); gets(nume); g = fopen(nume, "w");
max = 0; cod = 0;
fseek(f, 0, 0);
fprintf(g, "\n Produsele sunt:");
fread(&p, sizeof(PRODUS), 1, f);
while (!feof(f))
{
if (p.is)
{
if (p.pret > 10)
P.pret+=p.pret*1.1;
fseek(f, ftell(f) - sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
Fseek(f,0,1);
}
fclose(g);
fclose(f);
}
}
6.LISTARE
S se scrie programul care listeaz, ntr-un fiier text, produsele care pot
obtine cel mai mare profit, avand cea mai mare valoare determinata de
produsul dintre cantitate si pret.
#include<stdio.h>
typedef struct {
char denumire[20];
float pret;
int cant[12];
char is;
}PRODUS;
void main()
{
FILE *f, *g; char nume[20];
PRODUS p; float max, val; int i, cod;
printf("\nFisier: "); gets(nume);
if (!(f = fopen(nume, "rb")))printf("\nFisierul %s nu poate fi deschis", nume);
else {
printf("\nFisier text: "); gets(nume); g = fopen(nume, "w");
max = 0; cod = 0;
fprintf(g, "\n Produsele sunt:");
fread(&p, sizeof(PRODUS), 1, f);
while (!feof(f))
{
if (p.is)
{
val = 0;
for (i = 0; i<12; i++)val += p.cant[i] * p.pret;
if (val>max)
{
fclose(g);
g = fopen(nume, "w");
max = val;
fprintf(g, "\n Produsele cu valoarea %5.2f sunt:", max);
}
if (val == max)
fprintf(g, "\n%4d %-30s", cod, p.denumire);
}
cod++;
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(g);
fclose(f);
}
}
7.CONSULTARE CU SELECTIE
Sa se scrie intr-un fisier text produsele ale caror pret este mai mare
de 10 lei.
#include<stdio.h>
typedef struct {
char denumire[20];
float pret;
int cant[12];
char is;
}PRODUS;
void main()
{
FILE *f, *g; char nume[20];
PRODUS p; float max, val; int i, cod;
printf("\nFisier: "); gets(nume);
if (!(f = fopen(nume, "rb")))printf("\nFisierul %s nu poate fi deschis", nume);
else {
printf("\nFisier text: "); gets(nume); g = fopen(nume, "w");
max = 0; cod = 0;
fseek(f, 0, 0);
fprintf(g, "\n Produsele sunt:");
fread(&p, sizeof(PRODUS), 1, f);
while (!feof(f))
{
if (p.is)
{
if (p.pret > 10)
fprintf(g, " %s %f\n", p.nume, p.pret);
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(g);
fclose(f);
}
}
8.STERGERE CU SELECTIE