Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdlib.h>
- #include<conio.h>
- #include<stdio.h>
- #include<string.h>
- #define MAX 20
- typedef struct fru
- {
- char nume[MAX], tara[MAX], judet[MAX], categorie[MAX];
- unsigned pret, valabilitate, cantitate;
- struct fru *urm;
- }fructe;
- fructe *adauga(fructe *prim)
- {
- fructe *x, *y;
- x = malloc(sizeof(fructe));
- printf("\nNume: ");
- scanf("%s", x->nume);
- printf("\npret: ");
- scanf("%u", &x->pret);
- printf("\nNumarul de zile pana cand expira: ");
- scanf("%u", &x->valabilitate);
- printf("\nCantitatea: ");
- scanf("%u", &x->cantitate);
- printf("\nCategoria dintre autohton sau import: ");
- scanf("%s", x->categorie);
- x->urm = NULL;
- if (strcmp(x->categorie, "autohton") == 0)
- {
- printf("\nJudetul: ");
- scanf("%s", x->judet);
- }
- else if (strcmp(x->categorie, "import") == 0)
- {
- printf("\nTara: ");
- scanf("%s", x->tara);
- }
- if (prim == NULL)
- {
- return x;
- }
- else if (strcmp(x->categorie, "autohton") == 0)
- {
- x = x->urm;
- return x;
- }
- else
- {
- y = prim;
- while (y->urm != NULL && strcmp(y->categorie, "import") == 0)
- {
- y = y->urm;
- }
- x->urm = y->urm;
- y->urm = x;
- return prim;
- }
- }
- fructe *afisare(fructe *prim)
- {
- fructe *x;
- x = prim;
- while (x != NULL)
- {
- printf("\nNume: %s .\n", x->nume);
- printf("\npret: %u .\n", x->pret);
- printf("\nNumarul de zile pana cand expira: %u .\n", x->valabilitate);
- printf("\nCantitatea: %u .\n", x->cantitate);
- printf("\nCategoria dintre autohton sau import: %s .\n", x->categorie);
- if (strcmp(x->categorie, "autohton") == 0)
- {
- printf("\nJudetul: %s .\n", x->judet);
- }
- else if (strcmp(x->categorie, "import") == 0)
- {
- printf("\nTara: %s .\n", x->tara);
- }
- x = x->urm;
- }
- }
- fructe *produs(fructe *prim)
- {
- int produs = 1;
- char name[MAX];
- fructe *x;
- printf("Fructul: ");
- scanf("%s", name);
- for (x = prim; x; x = x->urm)
- {
- if (strcmp(x->nume, name) == 0)
- {
- produs = x->pret * x->cantitate;
- }
- }
- printf("Produsul este: %d ", produs);
- }
- fructe *cautare(fructe *prim)
- {
- char judet[MAX];
- fructe *x;
- printf("\nJudetul: ");
- scanf("%s", judet);
- for (x = prim; x; x = x->urm)
- {
- if (strcmp(x->judet, judet) == 0)
- {
- printf("\nNume: %s .\n", x->nume);
- printf("\npret: %u .\n", x->pret);
- printf("\nNumarul de zile pana cand expira: %u .\n", x->valabilitate);
- printf("\nCantitatea: %u .\n", x->cantitate);
- printf("\nCategoria dintre autohton sau import: %s .\n", x->categorie);
- }
- }
- }
- int main()
- {
- fructe *prim;
- int optiune;
- char name[MAX];
- prim = NULL;
- do
- {
- system("cls");
- printf("\n1.Adaugarea unui fruct!");
- printf("\n2.Afisarea fructelor din magazin!");
- printf("\n3.Pretul total pe un anumit fruct!");
- printf("\n4.Cautarea unui fruct dupa judet!");
- printf("\n5.IESIRE!");
- printf("\n\nAlegeti optiunea! ");
- scanf("%d", &optiune);
- switch (optiune)
- {
- case 1:
- prim = adauga(prim);
- break;
- case 2:
- afisare(prim);
- break;
- case 3:
- produs(prim, name);
- break;
- case 4:
- cautare(prim);
- break;
- case 5:
- break;
- }
- system("PAUSE");
- } while (optiune != 5);
- return 0;
- getch();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement