/* Napravena od Aleksandar Nesic (C) 2007. Ovaa programa e slobodna za koristenje i za umnozuvanje. Ovaa programa e napravena za da vi pomogne vo rabotata so toa sto ke ja koristite za svoi potrebi bez nekakvi garancii deka raboti ekstremno dobro. Uzivajte vo programata. */ #include #include #include #include typedef struct katalog { char ime[40]; char reziser[30]; char zanr[30]; struct katalog* sleden; /* Pokazuvac kon sledniot element(film) */ struct katalog* prethoden; /* Pokazuvac kon prethodniot element(film) */ } katalog_a; katalog_a* prv=NULL; /* Sekogas pokazuva kon prviot element(film) */ katalog_a* posleden=NULL; /* Sekogas pokazuva kon posledniot element(film) */ int golemina=0; /* Sega ke sleduva funkcija so koja ke mozat da se dodavaat filmovi vo listata */ void nov_film (char *ime, char *reziser, char *zanr) { katalog_a* nov=(katalog_a*)malloc(sizeof(katalog_a)); /* dinamicki gi locira podatocite */ nov->ime=ime; nov->reziser=reziser; nov->zanr=zanr; /* Sega vo zavisnost od toa dali listata so filmovi vo koja ke go vnesete noviot film e prazna ili polka ke sledat slednite naredbi -> */ if (prv==NULL) { nov->sleden=NULL; nov->prethoden=NULL; prv=posleden=nov; } else { nov->sleden=NULL; posleden->sleden=nov; nov->prethoden=posleden; posleden=nov; } golemina++; } /* Za da go vidite Katalogot so filmovi momentalno sto go imate treba i ovaa opcija koja ke vi gi izlista site filmovi dosega sto gi imate vneseno */ void pecati_katalog { katalog_a* prikazi; int i=1; if (prv) { prikazi=prv; cout << "Katalogot vo momentot sodrzi %d Filmovi :\n\n" << golemina << endl; while (prikazi) { cout << "::- %s -::- %s -::- %s -::\n",prikazi->ime, prikazi->reziser, prikazi->zanr; break; } prikazi=prikazi->sleden; i++; } cout << "\n" << endl; else cout << "Listata e prazna." << endl; } /* Stignavme do glavnata programa kade ke go prikaze interfejsot i funkcionalnosta na goresrabotenite funkcii */ int main() { int i=0, izbor=0; char *ime, *reziser, *zanr; cout << "..:: Personalen Film Katalog ::.." << endl; do { cout << "[1] Upatstvo za korisnikot\n[2] Izlistaj gi filmovite vo katalogot\n[3] Dodadi nov film vo listata\n[4] Izlez od programata\n" << endl; izbor1: cin >> izbor; switch (izbor) { case 1: cout << "Filmskiot Katalog vi ovozmozuva lesno i ednostavno da gi podredite vashite filmovi koi gi imate vo vashata domashna kolekcija. So sledenje i izbiranje na eden od rednite broevi od glavnoto meni ke mozete da gi izlistate vashite filmovi." << endl; cout << "Filmski Katalog v1.0 izraboten od Aleksandar Neshikj, za kontakt obratete se na : aleksandar.nesik@feit.ukim.edu.mk" << endl; case 2: pecati_katalog; break; case 3: cout << "Vnesi ime na filmot :\n" << endl; cin >> ime; cout << "Vnesi go reziserot na filmot :\n" << endl; cin >> reziser; cout << "Vnesi po koj zanr da se vodi filmot :\n" << endl; cin >> zanr; nov_film (ime, reziser, zanr); cout << "\n" << endl; break; case 4: break; default: cout << "Pogresen izbor (izberi 1,2,3 ili 4)\n" << endl; goto izbor1; } } while(izbor!=8); return 0; }