예제 #1
0
        private void button4_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex != -1)//ako je neka sema selektovana
            {
                //kod za vracanje sledece seme iz baze : select * from sema where sema.id= listaId[listbox1.selectedItem];
                //i onda sema = ucitana sema

                OracleConnection con       = null;
                string           conString = "Data Source = gislab-oracle.elfak.ni.ac.rs:1521/SBP_PDB; User Id = S16171; Password = S16171;";
                int broj = listaId[listBox1.SelectedIndex];

                try
                {
                    sema.Idseme = broj;
                    //otvaramo konekciju ka bazi podataka
                    con = new OracleConnection(conString);
                    con.Open();


                    StringBuilder strSQL = new StringBuilder();

                    strSQL.Append("SELECT CVOR.ID_SEMA,CVOR.ID, CVOR.X, CVOR.Y,CVOR.ZA_CRTANJE ");
                    strSQL.Append(" FROM CVOR ");
                    strSQL.Append(" where ID_SEMA=:broj ");

                    OracleCommand cmd = new OracleCommand(strSQL.ToString(), con);
                    cmd.CommandType = System.Data.CommandType.Text;

                    //kreiramo odgovarajuci parametar
                    OracleParameter paramBroj = new OracleParameter("broj", OracleDbType.Int32);
                    paramBroj.Value = broj;

                    //dodajemo parametar u listu
                    cmd.Parameters.Add(paramBroj);


                    //izvrsavamo komandu i u DataReader prihvatamo informacija o filmovima
                    OracleDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            //  brsema = dr.GetInt32(0);
                            int idCvora = dr.GetInt32(1);
                            int korX    = dr.GetInt32(2);
                            int korY    = dr.GetInt32(3);
                            int zaCrtis = dr.GetInt32(4);

                            Cvor k = new Cvor(idCvora, korX, korY);
                            k.zaCrtanje = zaCrtis;
                            // MessageBox.Show(idCvora.ToString() + " " + korX.ToString() + " " + korY.ToString());
                            sema.cvorovi.Add(k);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Clan nema nijedan iznajmljeni film!");
                    }

                    dr.Close();
                }
                catch (Exception ec)
                {
                    MessageBox.Show(ec.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //MessageBox.Show("Greska " + ec.Message);
                    Console.WriteLine("Doslo je do greske prilikom pristupanja bazi podataka: " + ec.Message);
                }
                finally
                {
                    if (con != null && con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                    }

                    con = null;
                }


                con       = null;
                conString = "Data Source = gislab-oracle.elfak.ni.ac.rs:1521/SBP_PDB; User Id = S16171; Password = S16171;";

                try
                {
                    //ucitavamo informacije o broju clana
                    // Console.WriteLine("Uneti broj clana za koga se kreira spisak:");
                    //  int broj = Int32.Parse(Console.ReadLine());

                    //otvaramo konekciju ka bazi podataka
                    con = new OracleConnection(conString);
                    con.Open();

                    StringBuilder strSQL = new StringBuilder();

                    strSQL.Append("SELECT GRANA.ID_SEMA, GRANA.ID, GRANA.UGAO,GRANA.IZVOR,GRANA.ODREDISTE ");
                    strSQL.Append(" FROM GRANA ");
                    strSQL.Append(" where ID_SEMA=:broj ");


                    OracleCommand cmd = new OracleCommand(strSQL.ToString(), con);
                    cmd.CommandType = System.Data.CommandType.Text;

                    //kreiramo odgovarajuci parametar
                    OracleParameter paramBroj = new OracleParameter("broj", OracleDbType.Int32);
                    paramBroj.Value = broj;

                    //dodajemo parametar u listu
                    cmd.Parameters.Add(paramBroj);


                    //izvrsavamo komandu i u DataReader prihvatamo informacija o filmovima
                    OracleDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        while (dr.Read())
                        {
                            int id_sema       = dr.GetInt32(0);
                            int idGrana       = dr.GetInt32(1);
                            int ugao          = dr.GetInt32(2);
                            int izvorcvor     = dr.GetInt32(3);
                            int odredistecvor = dr.GetInt32(4);
                            //  Debugger.Break();
                            int i1 = -1;
                            int i2 = -1;
                            for (int io = 0; io < sema.cvorovi.Count; io++)
                            {
                                if (sema.cvorovi[io].id == izvorcvor)
                                {
                                    i1 = io;
                                }
                                if (sema.cvorovi[io].id == odredistecvor)
                                {
                                    i2 = io;
                                }
                            }
                            //  Debugger.Break();
                            Grana k = new Grana(idGrana, sema.cvorovi[i1], sema.cvorovi[i2], ugao);
                            sema.cvorovi[i1].grane.Add(k);
                            // Debugger.Break();
                            // MessageBox.Show(idCvora.ToString() + " " + korX.ToString() + " " + korY.ToString());
                            sema.grane.Add(k);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Clan nema nijedan iznajmljeni film!");
                    }

                    dr.Close();
                }
                catch (Exception ec)
                {
                    Console.WriteLine("Doslo je do greske prilikom pristupanja bazi podataka: " + ec.Message);
                }
                finally
                {
                    if (con != null && con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                    }

                    con = null;
                }



                con       = null;
                conString = "Data Source = gislab-oracle.elfak.ni.ac.rs:1521/SBP_PDB; User Id = S16171; Password = S16171;";

                try
                {
                    //otvaramo konekciju ka bazi podataka
                    con = new OracleConnection(conString);
                    con.Open();

                    StringBuilder strSQL = new StringBuilder();

                    strSQL.Append("SELECT KOMPONENTA.ID_SEMA,KOMPONENTA.ID, KOMPONENTA.ID_GRANA, KOMPONENTA.TIP,KOMPONENTA.VELICINA,KOMPONENTA.SMER,KOMPONENTA.NAZIV ");
                    strSQL.Append(" FROM KOMPONENTA ");
                    strSQL.Append(" WHERE KOMPONENTA.ID_SEMA=:broj ");


                    OracleCommand cmd = new OracleCommand(strSQL.ToString(), con);
                    cmd.CommandType = System.Data.CommandType.Text;

                    //kreiramo odgovarajuci parametar
                    OracleParameter paramBroj = new OracleParameter("broj", OracleDbType.Int32);
                    paramBroj.Value = broj;

                    //dodajemo parametar u listu
                    cmd.Parameters.Add(paramBroj);


                    //izvrsavamo komandu i u DataReader prihvatamo informacija o filmovima
                    OracleDataReader dr = cmd.ExecuteReader();

                    if (dr.HasRows)
                    {
                        //Debugger.Break();
                        while (dr.Read())
                        {
                            int    kk           = dr.GetInt32(0);
                            int    idkomponente = dr.GetInt32(1);
                            int    id_grane     = dr.GetInt32(2);
                            int    tipkompone   = dr.GetInt32(3);
                            int    velicina     = dr.GetInt32(4);
                            int    smer         = dr.GetInt32(5);
                            string nazv         = dr.GetString(6);
                            int    pom          = -1;
                            for (int i = 0; i < sema.grane.Count; i++)
                            {
                                if (sema.grane[i].grana == id_grane)
                                {
                                    pom = i;
                                }
                            }

                            //  Debugger.Break();
                            // Komponenta k = new Otpornik(10, "R1");
                            // k.slika = Image.FromFile("opt.png");
                            Komponenta novaKomponenta = null;
                            if (tipkompone == 0)
                            {
                                novaKomponenta    = new NaponskiGenerator(velicina, nazv, true);
                                novaKomponenta.id = idkomponente;
                            }

                            else if (tipkompone == 1)
                            {
                                novaKomponenta    = new StrujniGenerator(velicina, nazv, true);
                                novaKomponenta.id = idkomponente;
                            }
                            else
                            {
                                novaKomponenta    = new Otpornik(velicina, nazv);
                                novaKomponenta.id = idkomponente;
                            }
                            sema.grane[pom].komponente.Add(novaKomponenta);
                            sema.grane[pom].brojkom++;
                            int komp = -1;
                            for (int i = 0; i < sema.grane[pom].komponente.Count; i++)
                            {
                                if (sema.grane[pom].komponente[i].id == idkomponente)
                                {
                                    komp = i;
                                }
                            }
                            if (smer == 0)
                            {
                                sema.grane[pom].komponente[komp].polaritet      = sema.grane[pom].izvor;//ako je 0 prema izvor
                                sema.grane[pom].komponente[komp].frontPolaritet = sema.grane[pom].izvor;
                            }
                            else if (smer == 1)
                            {
                                sema.grane[pom].komponente[komp].polaritet      = sema.grane[pom].odrediste;
                                sema.grane[pom].komponente[komp].frontPolaritet = sema.grane[pom].odrediste;
                            }

                            sema.grane[pom].komponente[komp].namestiSliku(sema.grane[pom].izvor, sema.grane[pom].odrediste);

                            //if(sema.grane[pom].komponente[komp].polaritet==sema.grane[pom].izvor)
                            //    smer=0
                        }
                    }
                    else
                    {
                        Console.WriteLine("Clan nema nijedan iznajmljeni film!");
                    }

                    dr.Close();
                }
                catch (Exception ec)
                {
                    MessageBox.Show(ec.Message, "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    //MessageBox.Show("Greska " + ec.Message);
                    Console.WriteLine("Doslo je do greske prilikom pristupanja bazi podataka: " + ec.Message);
                }
                finally
                {
                    if (con != null && con.State == System.Data.ConnectionState.Open)
                    {
                        con.Close();
                    }

                    con = null;
                }
                // Debugger.Break();
                // MessageBox.Show("Ucitava se sema " + listBox1.SelectedIndex);
                forma.pomZaEDIT = 1;
            }


            else
            {
                MessageBox.Show("Nije selektovana nijedna sema!", "Greska", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            this.Close();
        }
예제 #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            Random r = new Random();
            int    brojac_za_crtanje = 1;
            int    brcvorova         = (int)numericUpDown1.Value;
            int    crt = 0;

            if (brcvorova == 1)
            {
                crt = 1;
            }
            if (brcvorova == 2 || brcvorova == 3)
            {
                crt = 2;
            }
            if (brcvorova == 4)
            {
                crt = 3;
            }
            int y = 7;

            for (int i = 0; i < 2; i++)
            {
                int x = 12;
                for (int j = 0; j < crt + 1; j++)
                {
                    Cvor c = new Cvor(idBrojac++, x, y);
                    sema.cvorovi.Add(c);
                    c.zaCrtanje = brojac_za_crtanje++;
                    x          += 10;
                }
                y += 13;
            }
            int numNodes = sema.cvorovi.Count;

            for (int i = 0; i < numNodes / 2; i++)
            {
                Grana g = null;
                if (i != (numNodes / 2 - 1))
                {
                    g = new Grana(idGra++, sema.cvorovi[i], sema.cvorovi[i + 1], 0);
                    sema.cvorovi[i].grane.Add(g);
                    sema.grane.Add(g);
                }
            }
            for (int i = numNodes / 2; i < numNodes; i++)
            {
                Grana g = null;
                if (i != (numNodes - 1))
                {
                    g = new Grana(idGra++, sema.cvorovi[i], sema.cvorovi[i + 1], 0);
                    sema.cvorovi[i].grane.Add(g);
                    sema.grane.Add(g);
                }
            }
            for (int i = 0; i < numNodes / 2; i++)
            {
                Grana g = new Grana(idGra++, sema.cvorovi[i], sema.cvorovi[i + numNodes / 2], 0);
                sema.cvorovi[i].grane.Add(g);
                sema.grane.Add(g);
            }
            int rand = r.Next(10);

            if (brcvorova == 3)
            {
                int iz  = 0;
                int odr = 4;
                if (rand < 2)
                {
                    iz  = 0;
                    odr = 4;
                }
                else if (rand < 4)
                {
                    iz  = 1;
                    odr = 3;
                }
                else if (rand < 6)
                {
                    iz  = 1;
                    odr = 5;
                }
                else
                {
                    iz  = 2;
                    odr = 4;
                }
                Grana g = new Grana(idGra++, sema.cvorovi[iz], sema.cvorovi[odr], 0);
                sema.cvorovi[iz].grane.Add(g);
                sema.grane.Add(g);
            }
            if (brcvorova == 4)
            {
                int iz  = 0;
                int odr = 4;
                if (rand < 3)
                {
                    iz  = 1;
                    odr = 6;
                }
                else if (rand < 6)
                {
                    iz  = 2;
                    odr = 5;
                }
                else
                {
                    iz  = -1;
                    odr = -1;
                }
                if (iz != -1 && odr != -1)
                {
                    Grana g = new Grana(idGra++, sema.cvorovi[iz], sema.cvorovi[odr], 0);
                    sema.cvorovi[iz].grane.Add(g);
                    sema.grane.Add(g);
                }
            }
            foreach (Grana g in sema.grane)
            {
                g.obradjena = false;
                g.struja    = 0;
            }
            foreach (Cvor c in sema.cvorovi)
            {
                c.bot     = true;
                c.indexer = -2;
                c.napon   = 0;
            }
            sema.izbaciPipkeIOstrva(new ListBox());
            List <Poteg> potezi = new List <Poteg>();

            potezi = sema.pot;
            int brojacOtp = 1, brojacStrujni = 1, brojacNapon = 1;

            if (potezi.Count == 1)
            {
                if (r.Next(8) == 0)
                {
                    Komponenta k = new StrujniGenerator(r.Next(6) + 1, "J" + brojacStrujni.ToString(), true);
                    brojacStrujni++;
                    if (r.Next(2) == 0)
                    {
                        k.polaritet      = potezi[0].superGrana[0].izvor;
                        k.frontPolaritet = potezi[0].superGrana[0].izvor;
                    }
                    else
                    {
                        k.polaritet      = potezi[0].superGrana[0].odrediste;
                        k.frontPolaritet = potezi[0].superGrana[0].odrediste;
                    }
                    k.namestiSliku(potezi[0].superGrana[0].izvor, potezi[0].superGrana[0].odrediste);
                    potezi[0].superGrana[0].komponente.Add(k);
                    potezi[0].superGrana[0].brojkom++;
                }
                foreach (Grana g in potezi[0].superGrana)
                {
                    if (r.Next(10) != 0)
                    {
                        int koliko = r.Next(10);
                        if (koliko < 7)
                        {
                            koliko = 1;
                        }
                        else
                        {
                            koliko = 2;
                        }
                        for (int i = 0; i < koliko; i++)
                        {
                            int ran = r.Next(100);
                            if (ran < 62)
                            {
                                Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                                k.namestiSliku(g.izvor, g.odrediste);
                                brojacOtp++;
                                g.komponente.Add(k);
                                g.brojkom++;
                            }
                            else
                            {
                                Komponenta k = new NaponskiGenerator(r.Next(10) + 1, "E" + brojacNapon.ToString(), true);
                                brojacNapon++;
                                if (r.Next(2) == 0)
                                {
                                    k.polaritet      = g.izvor;
                                    k.frontPolaritet = g.izvor;
                                }
                                else
                                {
                                    k.polaritet      = g.odrediste;
                                    k.frontPolaritet = g.odrediste;
                                }
                                k.namestiSliku(g.izvor, g.odrediste);
                                g.komponente.Add(k);
                                g.brojkom++;
                            }
                        }
                    }
                }
                this.p.godina = idBrojac;
                this.p.tezina = idGra;
                this.Close();
                return;
            }
            foreach (Poteg p in potezi)
            {
                if (p.superGrana.Count == 1)
                {
                    int koliko = r.Next(10);
                    if (koliko < 7)
                    {
                        koliko = 1;
                    }
                    else
                    {
                        koliko = 2;
                    }
                    for (int i = 0; i < koliko; i++)
                    {
                        int ran = r.Next(100);
                        if (ran < 50)
                        {
                            Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                            k.namestiSliku(p.superGrana[0].izvor, p.superGrana[0].odrediste);
                            brojacOtp++;
                            p.superGrana[0].komponente.Add(k);
                            p.superGrana[0].brojkom++;
                        }
                        else if (ran < 84)
                        {
                            Komponenta k = new NaponskiGenerator(r.Next(10) + 1, "E" + brojacNapon.ToString(), true);
                            brojacNapon++;
                            if (r.Next(2) == 0)
                            {
                                k.polaritet      = p.superGrana[0].izvor;
                                k.frontPolaritet = p.superGrana[0].izvor;
                            }
                            else
                            {
                                k.polaritet      = p.superGrana[0].odrediste;
                                k.frontPolaritet = p.superGrana[0].odrediste;
                            }
                            k.namestiSliku(p.superGrana[0].izvor, p.superGrana[0].odrediste);
                            p.superGrana[0].komponente.Add(k);
                            p.superGrana[0].brojkom++;
                        }
                        else if (p.superGrana[0].isStrujni() == false)
                        {
                            Komponenta k = new StrujniGenerator(r.Next(6) + 1, "J" + brojacStrujni.ToString(), true);
                            brojacStrujni++;
                            if (r.Next(2) == 0)
                            {
                                k.polaritet      = p.superGrana[0].izvor;
                                k.frontPolaritet = p.superGrana[0].izvor;
                            }
                            else
                            {
                                k.polaritet      = p.superGrana[0].odrediste;
                                k.frontPolaritet = p.superGrana[0].odrediste;
                            }
                            k.namestiSliku(p.superGrana[0].izvor, p.superGrana[0].odrediste);
                            p.superGrana[0].komponente.Add(k);
                            p.superGrana[0].brojkom++;
                        }
                    }
                }
                else
                {
                    for (int ee = 0; ee < p.superGrana.Count; ee++)
                    {
                        if (ee == 1)
                        {
                            int koliko = r.Next(10);
                            if (koliko < 7)
                            {
                                koliko = 1;
                            }
                            else
                            {
                                koliko = 2;
                            }
                            for (int i = 0; i < koliko; i++)
                            {
                                int ran = r.Next(100);
                                if (ran < 50)
                                {
                                    Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                                    k.namestiSliku(p.superGrana[1].izvor, p.superGrana[1].odrediste);
                                    brojacOtp++;
                                    p.superGrana[1].komponente.Add(k);
                                    p.superGrana[1].brojkom++;
                                }
                                else if (ran < 84)
                                {
                                    Komponenta k = new NaponskiGenerator(r.Next(10) + 1, "E" + brojacNapon.ToString(), true);
                                    brojacNapon++;
                                    if (r.Next(2) == 0)
                                    {
                                        k.polaritet      = p.superGrana[1].izvor;
                                        k.frontPolaritet = p.superGrana[1].izvor;
                                    }
                                    else
                                    {
                                        k.polaritet      = p.superGrana[1].odrediste;
                                        k.frontPolaritet = p.superGrana[1].odrediste;
                                    }
                                    k.namestiSliku(p.superGrana[1].izvor, p.superGrana[1].odrediste);
                                    p.superGrana[1].komponente.Add(k);
                                    p.superGrana[1].brojkom++;
                                }
                                else if (p.superGrana[1].isStrujni() == false)
                                {
                                    Komponenta k = new StrujniGenerator(r.Next(6) + 1, "J" + brojacStrujni.ToString(), true);
                                    brojacStrujni++;
                                    if (r.Next(2) == 0)
                                    {
                                        k.polaritet      = p.superGrana[1].izvor;
                                        k.frontPolaritet = p.superGrana[1].izvor;
                                    }
                                    else
                                    {
                                        k.polaritet      = p.superGrana[1].odrediste;
                                        k.frontPolaritet = p.superGrana[1].odrediste;
                                    }
                                    k.namestiSliku(p.superGrana[1].izvor, p.superGrana[1].odrediste);
                                    p.superGrana[1].komponente.Add(k);
                                    p.superGrana[1].brojkom++;
                                }
                            }
                        }
                        else
                        {
                            if (r.Next(3) == 0)
                            {
                                Komponenta k = new Otpornik(r.Next(10) + 1, "R" + brojacOtp.ToString());
                                k.namestiSliku(p.superGrana[ee].izvor, p.superGrana[ee].odrediste);
                                brojacOtp++;
                                p.superGrana[ee].komponente.Add(k);
                                p.superGrana[ee].brojkom++;
                            }
                        }
                    }
                }
            }
            this.p.godina = idBrojac;
            this.p.tezina = idGra;
            this.Close();
        }