Ejemplo n.º 1
0
        public void Sort(IComparer <Osoba> comparer)
        {
            Osoba.OsobaUsporedivac osobaUsporedivac = (Osoba.OsobaUsporedivac)comparer;

            if (osobaUsporedivac.tipUsporedbe.ToString().Equals("brojPrijatelja"))
            {
                osobe.Sort(comparer);
                return;
            }

            List <string> lista = new List <string>();

            foreach (Osoba o in osobe)
            {
                if (osobaUsporedivac.tipUsporedbe.ToString().Equals("prezime"))
                {
                    lista.Add(o.ime + " " + o.prezime);
                }
                else
                {
                    lista.Add(o.prezime + " " + o.ime);
                }
            }
            lista.Sort();
            List <Osoba> novifejs = new List <Osoba>();

            while (osobe.Count != 0)
            {
                for (int i = 0; i < osobe.Count; i++)
                {
                    if (osobaUsporedivac.tipUsporedbe.ToString().Equals("ime"))
                    {
                        if (lista[0].Equals(osobe[i].prezime + " " + osobe[i].ime))
                        {
                            novifejs.Add(osobe[i]);
                            lista.Remove(lista[0]);
                            osobe.Remove(osobe[i]);
                            break;
                        }
                    }
                    else
                    {
                        if (lista[0].Equals(osobe[i].ime + " " + osobe[i].prezime))
                        {
                            novifejs.Add(osobe[i]);
                            lista.Remove(lista[0]);
                            osobe.Remove(osobe[i]);
                            break;
                        }
                    }
                }
            }

            this.osobe = novifejs;
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            Fejs Facebook = new Fejs();

            Osoba A = new Osoba("Ante", "Kovačić");
            Osoba B = new Osoba("Ivan", "Mažuranić");
            Osoba C = new Osoba("Ivana", "Brlić- Mažuranić");
            Osoba D = new Osoba("Ida", "Marulic");
            Osoba E = new Osoba("Tin", "Ujevic");
            Osoba F = new Osoba("Ida", "Pavlic");
            Osoba G = new Osoba("Petar", "Pavlic");
            Osoba H = new Osoba("Marko", "Pavlic");

            // trenutno u programu imamo jednu instancu klase Fejs
            // i instance klase Osoba imena A-H

            // nadodajemo osobe u Facebook
            Facebook.DodajOsobu("Mirko", "Katic"); // ovdje smo nadodali i jednu novu osobu
            Facebook.DodajOsobu(A);
            Facebook += B;
            Facebook += C;
            Facebook += D;
            Facebook += E;
            Facebook += F;
            Facebook += G;
            Facebook += H;


            // Sprijateljiti ćemo neke od Osoba
            // A je prijatelj sa osobama B,C,D
            A += B;
            A += C;
            A += D;

            // Osoba F je prijatelj sa A,C,E,B
            F += C;
            F += E;
            F += B;
            F += A;

            // prijatelji osobe F
            Console.WriteLine("Prijatelji osobe " + F.ime + " " + F.prezime);
            foreach (Osoba o in F.prijatelji)
            {
                Console.WriteLine(o.ime + " " + o.prezime);
            }
            Console.WriteLine("--------------------------------------------------------");
            // Osoba C je prijatelj sa A,F,G
            C += G;

            // Osoba D je prijatelj sa osobama A, F, i C
            // s time da je sada i F prijatelj sa D
            D += C;
            D += F;

            Console.WriteLine("Prijatelji osobe " + D.ime + " " + D.prezime);
            foreach (Osoba o in D.Prijatelji())
            {
                Console.WriteLine(o.ime + " " + o.prezime);
            }
            Console.WriteLine("--------------------------------------------------------");

            // ponovno prijatelji osobe B da vidimo da li radi
            Console.WriteLine("Prijatelji osobe " + F.ime + " " + F.prezime);
            foreach (Osoba o in F.Prijatelji())
            {
                Console.WriteLine(o.ime + " " + o.prezime);
            }
            Console.WriteLine("--------------------------------------------------------");

            // koristenje foreach na klasi Fejs + funkcija brojPrijatelja na klasi Osoba
            foreach (Osoba o in Facebook)
            {
                Console.WriteLine("Osoba " + o.ime + " " + o.prezime + " je na Fejsu i ima " + o.brojPrijatelja() + " prijatelja");
            }

            Console.WriteLine("--------------------------------------------------------");


            // koristenje foreach na Fejs uz indeks["prezime"]
            Console.WriteLine("koristenje foreach petlje na klasi Fejs[\"prezime\"] i funkcije Osoba.MeduPrijatelji");
            Console.WriteLine("Trebali bi biti sortirani po broju prijatelja ( pa broj prijatelja ide u zagradu ) ");

            foreach (Osoba o in Facebook["Marulic"])
            {
                foreach (Osoba p in Facebook["Pavlic"])
                {
                    HashSet <Osoba> skup = o.Meduprijatelji(p);
                    // trebali bi biti sortirani po broju prijatelja ( pa broj prijatelja ide u zagradu )
                    Console.WriteLine("Meduprijatelji osoba " + o.ToString() + " (" + o.brojPrijatelja() + ") i " + p.ToString() + "(" + p.brojPrijatelja() + ")");
                    foreach (Osoba r in skup)
                    {
                        Console.WriteLine(r.ToString());
                    }
                }
                Console.WriteLine("--------------------------------------------------------");
            }

            Console.WriteLine("Ispisi sve osobe sa imenom Ida koje su na Fejsu");
            foreach (Osoba o in Facebook["*"]["Ida"]) // ispisi sve ide sa Fejsa
            {
                Console.WriteLine(o.ToString());
            }
            Console.WriteLine("--------------------------------------------------------");


            Console.WriteLine("Svi prijatelji osobe " + A.ToString());
            foreach (Osoba o in A.Prijatelji())
            {
                Console.WriteLine(o.ToString());
            }
            Console.WriteLine("--------------------------------------------------------");

            Console.WriteLine("Sve osobe na facebooku: ");
            foreach (Osoba o in Facebook["*"])
            {
                Console.WriteLine(o.ToString() + " (" + o.brojPrijatelja() + ")");
            }
            Console.WriteLine("--------------------------------------------------------");

            Console.WriteLine("Osobu " + A.ToString() + " cemo maknuti sa Fejsa \npa cemo opet pogledati kako izgleda stanje prijateljstva na Fejsu");
            Facebook -= A;

            foreach (Osoba o in Facebook["*"])
            {
                Console.WriteLine(o.ToString() + " (" + o.brojPrijatelja() + ")");
            }

            Console.WriteLine("ohoho");

            Osoba.OsobaUsporedivac sorting = Osoba.DohvatiUsporedivac();

            sorting.tipUsporedbe = Osoba.OsobaUsporedivac.TipUsporedbe.brojPrijatelja;

            Facebook.Sort(sorting);

            Console.WriteLine("--------------------------------------------------------");

            Console.WriteLine("Sve osobe sa Fejsa sortirane po broju prijatelja");
            foreach (Osoba o in Facebook)
            {
                Console.WriteLine(o.ToString() + " (" + o.brojPrijatelja() + ")");
            }

            sorting.tipUsporedbe = Osoba.OsobaUsporedivac.TipUsporedbe.ime;

            Facebook.Sort(sorting);

            Console.WriteLine("--------------------------------------------------------");

            Console.WriteLine("Sve osobe sa Fejsa sortirane po prezimenima");
            foreach (Osoba o in Facebook)
            {
                Console.WriteLine(o.ToString());
            }

            sorting.tipUsporedbe = Osoba.OsobaUsporedivac.TipUsporedbe.prezime;

            Facebook.Sort(sorting);

            Console.WriteLine("--------------------------------------------------------");

            Console.WriteLine("Sve osobe sa Fejsa sortirane po imenima");
            foreach (Osoba o in Facebook)
            {
                Console.WriteLine(o.ToString());
            }
        }