/*
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
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;
}