#include #include #define MAXARU 60 /* A programot keszitette: ZOMBORI BALAZS - 2011.07.20. - */ int main(){ typedef struct{ char nev[30]; /*A termek neve*/ int ar; /*A termek egysegara*/ int darab; /*A termek boltban talalhato mennyisege(darabszama).*/ }arutipus; arutipus aruk[MAXARU]; /*Letrehozunk egy arutipus tipusu tombot, ami pontosan MAXARU meretu.*/ int i; /*ciklusvaltozo*/ int valasz=0; /*A menuvezerles e szerint fog mukodni*/ int min; /*minimum darabszám[3. menupont] - Most nem szukseges neki kezdoertek, mert a felhsználó fogja majd megadni.*/ char ujaru_nev[30]; /*Nem az uj aru neve, hanem az aru neve, aminek uj mennyisege lesz[4. menupont].*/ int osszeg=0; /*Arukeszlet ertekenek szamolasara[5. menupont].*/ int volte=0; /*Volt-e csere a termek mennyisegenel. [4. menupont]*/ printf("Boltos Boldizsar a boltjaban szamitogepen kivanja nyilvan tartani az uzlete arukeszletet. A program az ehhez kapcsolodo feladatokba segit Boldizsarnak.\n"); /*Adatbekeres*/ printf("A program most bekeri a termekek adatait(neve, egysegara, bolti mennyisege). Ha nincs tobb termekunk, akkor nev megadas helyett csak a '-' karakter adjuk meg\n"); i=0; do{ printf("\nAdd meg a(z) %d termek nevet.[Ha nincs tobb termek, '-' karaktert irj!]\n",i+1); scanf("%s",aruk[i].nev); if(aruk[i].nev[0]!='-'){ /*Ha vegjelet irunk, akkor ne kerjuk be a hozza tartozo ar es db!*/ printf("\nAdd meg %s nevu termek egysegarat.[Ft]\n",aruk[i].nev); scanf("%d",&aruk[i].ar); printf("\nAdd meg %s nevu termek boltban talahato mennyiseget.\n",aruk[i].nev); scanf("%d",&aruk[i].darab); } i++; }while(aruk[i-1].nev[0]!='-'); /*Menuvezerles*/ do{ printf("\n\nMost valassz az alabbi menupontokbol: \n1.)Uj aru felvetele a listaba.\n2.)Teljes arukeszlet kilistazasa.\n3.)Bizonos mennyiseg alatti termekek kilistazasa.\n4.)Uj mennyiseg megadasa bizonyos arura.\n5.)Teljes arukeszlet ertekenek megjelenitese.\n\n9.) Kilepes\n"); scanf("%d",&valasz); switch(valasz){ default:printf("\nNincs ilyen menupont!\n"); break; case 1:/*Uj aru felvetele a listaba*/ i=0; while(aruk[i].nev[0]!='-'){ i++; } /*Amikor a whilebol kilepunk, akkor az i valtozo a '-' karakter "helyere mutat".*/ do{ printf("\nAdd meg a(z) %d termek nevet.[Ha nincs tobb termek, '-' karaktert irj!]\n",i+1); scanf("%s",aruk[i].nev); if(aruk[i].nev[0]!='-'){ /*Ha vegjelet irunk, akkor ne kerjuk be a hozza tartozo ar es db!*/ printf("\nAdd meg %s nevu termek egysegarat.[Ft]\n",aruk[i].nev); scanf("%d",&aruk[i].ar); printf("\nAdd meg %s nevu termek boltban talahato mennyiseget.\n",aruk[i].nev); scanf("%d",&aruk[i].darab); } i++; }while(aruk[i-1].nev[0]!='-'); break; case 2:/*Teljes arukeszlet kilistazasa*/ i=0; while(aruk[i].nev[0]!='-'){ printf("\nNev: %s\t\tDarabar: %dFt\t\tMennyiseg: %d",aruk[i].nev,aruk[i].ar,aruk[i].darab); i++; } break; case 3:/*Bizonos mennyiseg alatti termekek kilistazasa.*/ i=0; printf("\nMost add meg, hogy mennyi legyen az a mennyiseg(darabszam), ami alatti termekek kilistazasra keruljon.\n"); scanf("%d",&min); printf("\n\n"); while(aruk[i].nev[0]!='-'){ if(min>aruk[i].darab){ printf("\nNev: %s\t\tDarabar: %dFt\t\tMennyiseg: %d",aruk[i].nev,aruk[i].ar,aruk[i].darab); } i++; } break; case 4:/*Új mennyiseg megadasa bizonyos arura.*/ printf("\nMost add annak a termeknek a nevet, amelynek mennyiseget meg szeretned valtoztatni.\n"); scanf("%s",ujaru_nev); i=0; volte=0; while(aruk[i].nev[0]!='-'){ if(strcmp(aruk[i].nev,ujaru_nev)==0){ printf("Add meg a(z) %s nevu termek uj mennyiseget.",aruk[i].nev); scanf("%d",&aruk[i].darab); volte=1; } i++; } if(volte==0){ printf("\nNincs ilyen nevu termek a listaban!!\n"); } break; case 5:/*Teljes arukeszlet ertekenek megjelenitese.*/ i=0; osszeg=0; while(aruk[i].nev[0]!='-'){ osszeg+=aruk[i].ar*aruk[i].darab; i++; } printf("\nA teljes arukeszlet erteke: %d Ft\n",osszeg); break; case 9: /*Nem kell csinalni semmi, csak azert van, hogy a kilépésnél a default ne hajtodjon vegre!*/ break; } }while(valasz!=9); /*Windows miatt!*/ printf("\n\nA programnak vege. Uss egy ENTER-t!"); while(getch()!=13); return 0; }