Societatea comercială “SC JUST DISTRIBUTION” se ocupă cu achizitia de produse de curatenie pe care ulterior le vinde. Aceasta îşi desfăşoară activitatea pe piaţa românească de 1 an şi are un număr redus de angajaţi, fiind încă în curs de dezvoltare. Tema acestui proiect este gestionarea produselor (detergentilor) in depozitul societăţii comerciale SC JUST DISTRIBUTION într-un fişier relativ. Sunt reţinute următoarele date: codul după care produsul este identificat unic în cadrul acestei societăti, denumirea acestuia, unitatea de masura , precum şi pretul de intrare, cantitatea intrata si ziua de intrare a produselor. Aplicaţia propriu-zisă constă în crearea unui program complex de gestionare a datelor despre produsele societăţii comerciale SC JUST DISTRIBUTION prin intermediul unui meniu care îi ofera utilizatorului posibilitatea de a alege dintr-un număr de 8 operaţii pe care le poate efectua asupra datelor.Opţiunile sale sunt: 1. Crearea si popularea unui fisier; 2. Adăugarea de noi articole; 3. Stergerea unui articol; 4. Modificarea datelor; 5. Listarea produselor care exista in stoc; 6. Listarea produselor care au fost aduse in luna x; 7. Raport; 8. Iesirea din aplicatie CODUL C: #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <ctype.h> #include <string.h> typedef struct{ int zi,luna,an; }DATA; typedef struct{ int is; int cod; char denumire[20]; char um[20]; int pret,cant; DATA intrare; }PRODUS; void populare(){ FILE *f; PRODUS x; int n,i,nr,j,s,t=0,m,p; //creare fisier si preformare f=fopen("fis1.dat","wb+"); //creaza si deschide fisierul cu permisiunea atat de citire cat si de scriere printf("\nNumarul de produse existente in stoc este:"); scanf("%d",&n); x.is=0; for (i=0;i<n;i++) fwrite(&x,sizeof(PRODUS),1,f); /*scrie articolele citite in fisierul f*/ //adaugare articol printf("\nAdaugare articol nou\n"); printf("Codul produsului este: "); scanf("%d",&p); while(t<n) {fseek(f,0,2); //pozitionarea la sfarsitul fisierului nr=ftell(f)/sizeof(PRODUS); //facem loc noului articol if (nr<=p) {x.is=0; for (i=nr;i<p;i++) fwrite(&x,sizeof(PRODUS),1,f); } //adaugarea propriu-zisa fseek(f,p*sizeof(PRODUS),0); fread(&x,sizeof(PRODUS),1,f); if (x.is==1) {printf("\nExista deja un produs cu acest cod... Introduceti alt cod: "); scanf("%d",&p); } else {t++; x.is=1; x.cod=p; printf("Denumirea produsului este: "); scanf("%s",&x.denumire); printf("Unitatea de masura este: "); scanf("%s",&x.um); printf("Pretul de intrare este: "); scanf("%d",&x.pret); printf("Cantitatea este: "); scanf("%d",&x.cant); printf("\nZiua intrarii produsului: "); scanf("%d",&x.intrare.zi); while((x.intrare.zi>31)||(x.intrare.zi<1)) {printf("Zi introdusa gresit... Reintroduceti ziua: "); scanf("%d",&x.intrare.zi); } printf("Luna intrarii produsului: "); scanf("%d",&x.intrare.luna); while((x.intrare.luna>12)||(x.intrare.luna<1)) {printf("Luna introdusa gresit... Reintroduceti luna: "); scanf("%d",&x.intrare.luna); } printf("Anul intrarii produsului: "); scanf("%d",&x.intrare.an); while((x.intrare.an>2010)||(x.intrare.an<1990)) {printf("An introdus gresit... Reintroduceti anul: "); scanf("%d",&x.intrare.an); } fseek(f,p*sizeof(PRODUS),0); fwrite(&x,sizeof(PRODUS),1,f); if (t<n){ printf("\nAdaugare articol nou\n"); printf("Codul produsului este: "); scanf("%d",&p);} } } fclose(f); } void adaugare(){ FILE *f; PRODUS x; int nr,i,p; f=fopen("fis1.dat","r+b"); printf("\nAdaugare articol nou\n"); printf("Codul produsului este: "); scanf("%d",&p); fseek(f,0,2); nr=ftell(f)/sizeof(PRODUS); if (nr<=p) {x.is=0; for (i=nr;i<p;i++) fwrite(&x,sizeof(PRODUS),1,f); }
Ne pare rau, pe moment serviciile de acces la documente sunt suspendate.