static void Postoji_zanr_od_tog_rezisera(Podaci_o_filmovima_rezisera reziser_zanrovi, string[] niz_ulazni_zanrovi) //proveriti zagrade
 {
     for (int i = 0; i < niz_ulazni_zanrovi.Length; i++)
     {
         for (int j = 0; j < reziser_zanrovi.zanrovi.Length; j++)
         {
             if (niz_ulazni_zanrovi[i] == reziser_zanrovi.zanrovi[j])
             {
                 reziser_zanrovi.br_filmovi[j]++;
             }
         }
     }
 }
示例#2
0
    //Glavna metoda obrade: izdvajaju se reziseri, njihovi filmovi i zarade filmova iz zadatog perioda
    static Podaci_o_filmovima_rezisera[] Izdvajanje_filmova_sa_reziserima_u_zadatom_periodu(string[,] podaci_matrica, DateTime[] niz_period)
    {
        Podaci_o_filmovima_rezisera[] reziser_filmovi = new Podaci_o_filmovima_rezisera[1000]; //niz struktura - jedna struktura: ime rezisera, njegovi filmovi, zarade filmova i ukupna zarada
        int brojac_struktura = 0;                                                              //brojac razlicitih rezisera(brojac-1 dalje u programu)

        int[]  brojaci_filmova = new int[1000];                                                //brojac filmova za jednog rezisera
        int    indeks_rezisera = 0;
        string film, datum;
        double zarada;

        for (int i = 0; i < brojaci_filmova.Length; i++)
        {
            brojaci_filmova[i] = 0;
        }

        for (int i = 0; i < podaci_matrica.GetLength(0); i++)
        {
            datum = podaci_matrica[i, 3];
            if (!Ulazi_u_period(datum, niz_period))
            {
                continue;
            }
            zarada          = IzbacivanjeDolara(podaci_matrica[i, 5]);
            film            = podaci_matrica[i, 1];
            indeks_rezisera = Indeks_trazenog_rezisera(podaci_matrica[i, 4], reziser_filmovi);
            if (indeks_rezisera != -1)
            {
                Array.Resize(ref reziser_filmovi[indeks_rezisera].filmovi, brojaci_filmova[indeks_rezisera] + 1); //prosirivanje niza filmova za jednog rezisera
                Array.Resize(ref reziser_filmovi[indeks_rezisera].zarade, brojaci_filmova[indeks_rezisera] + 1);  //prosirivanje niza zarada filmova za jednog rezisera
                reziser_filmovi[indeks_rezisera].filmovi[brojaci_filmova[indeks_rezisera]] = film;
                reziser_filmovi[indeks_rezisera].zarade[brojaci_filmova[indeks_rezisera]]  = zarada;
                brojaci_filmova[indeks_rezisera]++; //postavlja se indeks za upis sledeceg filma za datog rezisera
            }
            else
            {
                reziser_filmovi[brojac_struktura].reziser = podaci_matrica[i, 4];
                Array.Resize(ref reziser_filmovi[brojac_struktura].filmovi, 1);
                reziser_filmovi[brojac_struktura].filmovi[0] = film;
                brojaci_filmova[brojac_struktura]            = 1; //postavlja se indeks za upis sledeceg filma za datog rezisera
                Array.Resize(ref reziser_filmovi[brojac_struktura].zarade, 1);
                reziser_filmovi[brojac_struktura].zarade[0]     = zarada;
                reziser_filmovi[brojac_struktura].ukupna_zarada = 0;
                brojac_struktura++;
            }
        }
        Array.Resize(ref reziser_filmovi, brojac_struktura);
        return(reziser_filmovi);
    }
    //Glavna metoda obrade: izdvajaju se reziseri, njihovi zanrovi i broj zanrova
    static Podaci_o_filmovima_rezisera[] Izdvajanje_zanrova_filmova_sa_reziserima(string[,] podaci_matrica, string[] zanr_niz)
    {
        Podaci_o_filmovima_rezisera[] reziser_zanrovi = new Podaci_o_filmovima_rezisera[1000];
        int brojac_struktura = 0; //brojac razlicitih rezisera(brojac-1 dalje u programu)

        string[] niz_ulazni_zanrovi;

        for (int i = 0; i < podaci_matrica.GetLength(0); i++)
        {
            niz_ulazni_zanrovi = podaci_matrica[i, 2].Split("|");
            int indeks = Vec_postoji_reziser(reziser_zanrovi, podaci_matrica[i, 4], brojac_struktura);
            if (indeks != -1)
            {
                for (int k = 0; k < zanr_niz.Length; k++)
                {
                    if (Poredjenje_sa_konzolom(zanr_niz[k], niz_ulazni_zanrovi))
                    {
                        Postoji_zanr_od_tog_rezisera(reziser_zanrovi[indeks], niz_ulazni_zanrovi);
                    }
                }
            }
            else
            {
                int brojac = 0;
                reziser_zanrovi[brojac_struktura].br_filmovi = new int [zanr_niz.Length];
                reziser_zanrovi[brojac_struktura].zanrovi    = new string [zanr_niz.Length];
                for (int k = 0; k < zanr_niz.Length; k++)
                {
                    if (Poredjenje_sa_konzolom(zanr_niz[k], niz_ulazni_zanrovi))
                    {
                        reziser_zanrovi[brojac_struktura].reziser            = podaci_matrica[i, 4];
                        reziser_zanrovi[brojac_struktura].zanrovi[brojac]    = zanr_niz[k];
                        reziser_zanrovi[brojac_struktura].br_filmovi[brojac] = 1;
                        brojac++;
                    }
                }
                Array.Resize(ref reziser_zanrovi[brojac_struktura].br_filmovi, brojac);
                Array.Resize(ref reziser_zanrovi[brojac_struktura].zanrovi, brojac);
                brojac_struktura++;
            }
        }
        Array.Resize(ref reziser_zanrovi, brojac_struktura);
        return(reziser_zanrovi);
    }