Advertisement
Dr4noel

Produse, fisiere

Feb 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5.  
  6. FILE *fp;
  7.  
  8. typedef struct ARTICOLE {
  9.     char produs[25];
  10.     char material[25];
  11.     int codProdus;
  12.     int anFabricare;
  13.     float pret;
  14. };
  15.  
  16. ARTICOLE products[50];
  17.  
  18. void menu() {
  19.     printf("\n1. Adauga un produs nou");
  20.     printf("\n2. Afisati produsele");
  21.     printf("\n3. Iesiti si salvati modificarile");
  22.     printf("\n4. Iesiti\n");
  23. }
  24.  
  25. ARTICOLE addNewEntry() {
  26.     ARTICOLE p;
  27.  
  28.     while (getchar() != '\n');
  29.  
  30.     printf("Introduceti numele produsului: \n");
  31.     gets_s(p.produs);
  32.     printf("Introduceti materialul principal din care este realiza produsul: \n");
  33.     gets_s(p.material);
  34.     printf("Introduceti codul produsului: \n");
  35.     scanf_s("%d", &p.codProdus);
  36.     printf("Introduceti anul de fabricare al produsului: \n");
  37.     scanf_s("%d", &p.anFabricare);
  38.     printf("Introduceti pretul produsului in USD: \n");
  39.     scanf_s("%f", &p.pret);
  40.  
  41.     return p;
  42. }
  43.  
  44. void write(int countNrProduse, ARTICOLE products[]) {
  45.  
  46.     if ((fp = fopen("database.txt", "a+")) == NULL) {
  47.         printf("\nEroare!");
  48.     }
  49.     int i;
  50.     for (i = 0; i < countNrProduse; i++) {
  51.         fprintf(fp,"\nProdus: %s",products[i].produs);
  52.         fprintf(fp,"\nMaterial: %s", products[i].material);
  53.         fprintf(fp,"\nCod: %x", products[i].codProdus);
  54.         fprintf(fp,"\nAn Fabricare: %d", products[i].anFabricare);
  55.         fprintf(fp,"\nPret: %.2f $\n", products[i].pret);
  56.     }
  57.     fclose(fp);
  58. }
  59.  
  60. void display() {
  61.     if ((fp = fopen("database.txt", "r")) == NULL) {
  62.         printf("Eroare!");
  63.     }
  64.     char linie[20];
  65.     int c;
  66.     while (fgets(linie, 20, fp) != NULL) {
  67.         printf("%s", linie);
  68.     }
  69.     fclose(fp);
  70. }
  71.  
  72. void displayTheNewProducts(int countNrProduse, ARTICOLE products[]) {
  73.  
  74.     int i;
  75.     for (i = 0; i < countNrProduse; i++) {
  76.         printf("\nProdus: %s", products[i].produs);
  77.         printf("\nMaterial: %s", products[i].material);
  78.         printf("\nCod: %x", products[i].codProdus);
  79.         printf("\nAn Fabricare: %d", products[i].anFabricare);
  80.         printf("\nPret: %.2f $\n", products[i].pret);
  81.     }
  82. }
  83.  
  84. void main() {
  85.     int countNrProduse = 0;
  86.     int chose;
  87.     int oneOrTwo;
  88.     int c, i = 0;
  89.    
  90.     do {
  91.  
  92.         do {
  93.             BACK:
  94.             menu();
  95.             scanf_s("%d", &chose);
  96.             system("CLS");
  97.         } while (chose < 1 || chose > 4);
  98.         switch (chose) {
  99.         case 1:
  100.             products[countNrProduse] = addNewEntry();
  101.             countNrProduse++;
  102.             printf("\nApasa o tasta pentru a continua...\n");
  103.             _getch();
  104.             system("CLS");
  105.             break;
  106.         case 2:
  107.             printf("\n1. Produsele noi adaugate");
  108.             printf("\n2. Produsele salvate in baza de date");
  109.             printf("\n3. Mergi inapoi");
  110.             scanf_s("\n%d", &oneOrTwo);
  111.             system("CLS");
  112.             if (oneOrTwo == 1) {
  113.                 if (countNrProduse == 0) {
  114.                     printf("\nNu exista produse noi adaugate...");
  115.                     printf("\nApasa o tasta pentru a continua...");
  116.                     _getch();
  117.                     system("CLS");
  118.                 }
  119.                 else {
  120.                     displayTheNewProducts(countNrProduse, products);
  121.                     printf("\nApasa o tasta pentru a continua...");
  122.                     _getch();
  123.                     system("CLS");
  124.                 }
  125.             }
  126.             else
  127.                 if (oneOrTwo == 2) {
  128.                     fp = fopen("database.txt", "r");
  129.                     while ((c = fgetc(fp)) != EOF) {
  130.                         i++;
  131.                     }
  132.                     if (i == 0) {
  133.                         printf("\nFisierul este gol!");
  134.                         printf("\nApasa o tasta pentru a continua");
  135.                         _getch();
  136.                         fclose(fp);
  137.                         system("CLS");
  138.                     }
  139.                     else {
  140.                         display();
  141.                         printf("\nApasa o tasta pentru a continua...\n");
  142.                         _getch();
  143.                         fclose(fp);
  144.                         system("CLS");
  145.                     }
  146.                 }
  147.                 else
  148.                     if (oneOrTwo == 3) {
  149.                     system("CLS");
  150.                     goto BACK;
  151.             }
  152.             break;
  153.         case 3:
  154.             write(countNrProduse, products);
  155.             printf("\nSe salveaza datele...");
  156.             printf("\nApasa o tasta pentru a continua");
  157.             _getch();
  158.             exit(0);
  159.             break;
  160.         case 4: exit(0);
  161.             break;
  162.         }
  163.  
  164.     } while (chose != 4);
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement