예제 #1
0
        public void WczytajSlowa(DrzewoAngielskie a, DrzewoPolskie p)
        {
            sr = new StreamReader("InOut0401.txt");
            string s = sr.ReadToEnd();

            sr.Close();
            bool rotacja = false;

            string[] substrings = s.Split(new char[] { ' ', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < substrings.Count(); i += 2)
            {
                a.CzyWywazone = false;
                p.CzyWywazone = false;
                rotacja       = false;
                Debug.WriteLine("\t i={0}, substrings[i]={1}", i, substrings[i]);
                Wezel temp1 = a.Wyszukaj(a.korzen, substrings[i]);
                Wezel temp2 = p.Wyszukaj(p.korzen, substrings[i + 1]);
                if (temp1 == null && temp2 == null)
                {
                    try
                    {
                        rotacja = false;
                        a.WstawSlowo(ref a.korzen, substrings[i], ref rotacja);
                        rotacja = false;
                        p.WstawSlowo(ref p.korzen, substrings[i + 1], ref rotacja);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        continue;
                    }

                    var ang = a.Wyszukaj(a.korzen, substrings[i]);
                    var pl  = p.Wyszukaj(p.korzen, substrings[i + 1]);
                    ang.Tlumaczenie = pl;
                    pl.Tlumaczenie  = ang;
                    Debug.WriteLine(pl.Tlumaczenie.Slowo);
                    Debug.WriteLine(ang.Tlumaczenie.Slowo);
                }
                else
                {
                    if (temp2 == null)
                    {
                        Console.WriteLine("Słowo angielskie {0} znajduje sie juz w zbiorze, nie zostanie dodane", substrings[i]);
                        continue;
                    }
                    if (temp1 == null)
                    {
                        Console.WriteLine("Słowo polskie {0} znajduje sie juz w zbiorze, nie zostanie dodane", substrings[i + 1]);
                        continue;
                    }
                    if (temp1 != null && temp2 != null)
                    {
                        Console.WriteLine("Słowo angielskie {0} i słowo polskie {1} znajdują sie juz w zbiorze, nie zostaną dodane", substrings[i], substrings[i + 1]);
                        continue;
                    }
                    throw new Exception("Fatal error");
                }
            }
        }
예제 #2
0
        public void WstawSlowo(string polskie, string angielskie, DrzewoPolskie p, DrzewoAngielskie a)
        {
            bool Rotacja = false;
            var  pl      = p.WstawSlowo(ref p.korzen, polskie, ref Rotacja);
            var  ang     = a.WstawSlowo(ref a.korzen, angielskie, ref Rotacja);

            pl.Tlumaczenie  = ang;
            ang.Tlumaczenie = pl;
        }
예제 #3
0
        static void Main(string[] args)
        {
            DrzewoPolskie    p         = new DrzewoPolskie();
            DrzewoAngielskie a         = new DrzewoAngielskie();
            IOManager        ioManager = new IOManager();

            ioManager.WczytajSlowa(a, p);
            string    input;
            Stopwatch watch;
            bool      exit = false;

            while (true)
            {
                Console.WriteLine("1. Wstaw -> Slowo_polskie");
                Console.WriteLine("2. Wstaw -> Slowo_angielskie");
                Console.WriteLine("3. Wyszukaj -> Slowo_polskie");
                Console.WriteLine("4. Wyszukaj -> Slowo_angielskie");
                Console.WriteLine("5. Usun -> Slowo_polskie");
                Console.WriteLine("6. Usun -> Slowo_angielskie");
                Console.WriteLine("7. Wypisz slownik w porządku KLP");
                Console.WriteLine("8. Dodaj 5 losowych słów do słownika");
                Console.WriteLine("0. Wyjdz i zapisz zmiany");
                input = Console.ReadLine();
                int d;
                if (!Int32.TryParse(input, out d))
                {
                    Console.WriteLine("Wybierz liczbe z przedzialu 0-6");
                    Console.ReadKey();
                }
                switch (d)
                {
                case 0:
                    exit = true;
                    break;

                case 1:
                    Console.WriteLine("Podaj slowo polskie");
                    string temp1 = Console.ReadLine();
                    Console.WriteLine("Podaj tlumaczenie");
                    string temp2        = Console.ReadLine();
                    Wezel  temp1synonim = p.Wyszukaj(p.korzen, temp1);
                    Wezel  temp2synonim = a.Wyszukaj(a.korzen, temp2);
                    if (temp1synonim == null && temp2synonim == null)
                    {
                        p.CzyWywazone = false;
                        Wezel temp    = p.korzen;
                        bool  rotacja = false;
                        watch = Stopwatch.StartNew();
                        try
                        {
                            p.WstawSlowo(ref temp, temp1, ref rotacja);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            break;
                        }
                        p.korzen = temp;
                        watch.Stop();
                        Console.WriteLine("Dodano. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                        var   pol      = p.Wyszukaj(p.korzen, temp1);
                        Wezel temp2ang = a.korzen;
                        bool  rotacja2 = false;
                        watch = Stopwatch.StartNew();
                        try
                        {
                            a.WstawSlowo(ref temp2ang, temp2, ref rotacja2);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            break;
                        }
                        watch.Stop();
                        Console.WriteLine("Dodano. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                        a.korzen = temp2ang;
                        var ang = a.Wyszukaj(a.korzen, temp2);
                        ang.Tlumaczenie = pol;
                        pol.Tlumaczenie = ang;
                    }
                    else
                    {
                        if (temp1synonim == null)
                        {
                            Console.WriteLine("Słowo angielskie {0} znajduje sie juz w zbiorze, nie zostanie dodane", temp2synonim.Slowo);
                            continue;
                        }
                        if (temp2synonim == null)
                        {
                            Console.WriteLine("Słowo polskie {0} znajduje sie juz w zbiorze, nie zostanie dodane", temp1synonim.Slowo);
                            continue;
                        }
                        if (temp1synonim != null && temp2synonim != null)
                        {
                            Console.WriteLine("Słowo angielskie {0} i słowo polskie {1} znajdują sie juz w zbiorze, nie zostaną dodane", temp2synonim.Slowo, temp1synonim.Slowo);
                            continue;
                        }
                        throw new Exception("Fatal error");
                    }
                    break;

                case 2:
                    Console.WriteLine("Podaj slowo angielskie");
                    string temp3 = Console.ReadLine();
                    Console.WriteLine("Podaj tlumaczenie");
                    string temp4        = Console.ReadLine();
                    Wezel  temp4synonim = p.Wyszukaj(p.korzen, temp4);
                    Wezel  temp3synonim = a.Wyszukaj(a.korzen, temp3);
                    if (temp3synonim == null && temp4synonim == null)
                    {
                        a.CzyWywazone = false;
                        Wezel temp3ang = a.korzen;
                        bool  rotacja3 = false;
                        watch = Stopwatch.StartNew();
                        try
                        {
                            a.WstawSlowo(ref temp3ang, temp3, ref rotacja3);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            break;
                        }
                        a.korzen = temp3ang;
                        watch.Stop();
                        Console.WriteLine("Dodano. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                        var   ang1     = a.Wyszukaj(a.korzen, temp3);
                        Wezel temp4pol = p.korzen;
                        bool  rotacja4 = false;
                        watch = Stopwatch.StartNew();
                        try
                        {
                            p.WstawSlowo(ref temp4pol, temp4, ref rotacja4);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                            break;
                        }
                        watch.Stop();
                        Console.WriteLine("Dodano. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                        p.korzen = temp4pol;
                        var pol1 = p.Wyszukaj(p.korzen, temp4);
                        ang1.Tlumaczenie = pol1;
                        pol1.Tlumaczenie = ang1;
                    }
                    else
                    {
                        if (temp4synonim == null)
                        {
                            Console.WriteLine("Słowo angielskie {0} znajduje sie juz w zbiorze, nie zostanie dodane", temp3synonim.Slowo);
                            continue;
                        }
                        if (temp3synonim == null)
                        {
                            Console.WriteLine("Słowo polskie {0} znajduje sie juz w zbiorze, nie zostanie dodane", temp4synonim.Slowo);
                            continue;
                        }
                        if (temp3synonim != null && temp4synonim != null)
                        {
                            Console.WriteLine("Słowo angielskie {0} i słowo polskie {1} znajdują sie juz w zbiorze, nie zostaną dodane", temp3synonim.Slowo, temp4synonim.Slowo);
                            continue;
                        }
                        throw new Exception("Fatal error");
                    }
                    break;

                case 3:
                    Console.WriteLine("Podaj slowo angielskie");
                    input = Console.ReadLine();
                    watch = Stopwatch.StartNew();
                    var ang2 = a.Wyszukaj(a.korzen, input);
                    watch.Stop();
                    if (ang2 == null)
                    {
                        Console.WriteLine("Podane slowo angielskie nie istnieje");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("Wyszukano. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                        if (ang2.Tlumaczenie == null)
                        {
                            Console.WriteLine("Podane slowo nie ma tlumaczenia");
                            Console.ReadKey();
                        }
                        else
                        {
                            Console.WriteLine("Tłumaczeniem: " + ang2.Slowo + " jest: " + ang2.Tlumaczenie.Slowo);
                            Console.ReadKey();
                        }
                    }
                    break;

                case 4:
                    Console.WriteLine("Podaj slowo polskie");
                    input = Console.ReadLine();
                    watch = Stopwatch.StartNew();
                    var pol3 = p.Wyszukaj(p.korzen, input);
                    watch.Stop();
                    if (pol3 == null)
                    {
                        Console.WriteLine("Podane slowo polskie nie istnieje");
                        Console.ReadKey();
                    }
                    else
                    {
                        Console.WriteLine("Wyszukano. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                        if (pol3.Tlumaczenie == null)
                        {
                            Console.WriteLine("Podane slowo nie ma tlumaczenia");
                            Console.ReadKey();
                        }
                        else
                        {
                            Console.WriteLine("Tłumaczeniem: " + pol3.Slowo + " jest: " + pol3.Tlumaczenie.Slowo);
                            Console.ReadKey();
                        }
                    }
                    break;

                case 5:
                    Console.WriteLine("Podaj slowo polskie do usuniecia");
                    input = Console.ReadLine();
                    Wezel temp5       = p.korzen;
                    Wezel tlumaczenie = a.korzen;
                    bool  znaleziony  = false;
                    bool  wywazone    = false;
                    watch = Stopwatch.StartNew();
                    try
                    {
                        p.UsunSlowo(ref temp5, input, ref znaleziony, ref wywazone, ref tlumaczenie, a);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        break;
                    }
                    watch.Stop();
                    Console.WriteLine("Usunieto wybrany element. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                    p.korzen = temp5;
                    a.korzen = tlumaczenie;
                    break;

                case 6:
                    Console.WriteLine("Podaj slowo angielskie do usuniecia");
                    input = Console.ReadLine();
                    Wezel temp6        = a.korzen;
                    Wezel tlumaczenie2 = p.korzen;
                    bool  znaleziony2  = false;
                    bool  wywazone2    = false;
                    watch = Stopwatch.StartNew();
                    try
                    {
                        a.UsunSlowo(ref temp6, input, ref znaleziony2, ref wywazone2, ref tlumaczenie2, p);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        break;
                    }
                    watch.Stop();
                    Console.WriteLine("Usunieto wybrany element. Zajelo to: {0} milisekund", (double)watch.ElapsedMilliseconds);
                    a.korzen = temp6;
                    p.korzen = tlumaczenie2;
                    break;

                case 7:
                    a.WypiszDrzewoKLP(a.korzen);
                    Console.WriteLine();
                    break;

                case 8:
                    /*
                     * Console.Clear();
                     * for (int i = 0; i < 5; i++)
                     * {
                     *  a.CzyWywazone = false;
                     *  p.CzyWywazone = false;
                     *  string rndAng = RandomString(2);
                     *  string rndPol = RandomString(2);
                     *  Console.WriteLine("\tWstawienie slowa {0}", rndAng);
                     *  Wezel temp8 = a.korzen;
                     *  bool rotacja8 = false;
                     *  try
                     *  {
                     *
                     *      a.WstawSlowo(ref temp8, rndAng, ref rotacja8);
                     *  }
                     *  catch (Exception e)
                     *  {
                     *      Console.WriteLine(e.Message +" Słowo angielskie:  " + rndAng);
                     *      //break;
                     *  }
                     *  a.korzen = temp8;
                     *  var tempAng = a.Wyszukaj(a.korzen, rndAng);
                     *  Wezel temp9 = p.korzen;
                     *  bool rotacja9 = false;
                     *  try
                     *  {
                     *      p.WstawSlowo(ref temp9, rndPol, ref rotacja9);
                     *  }
                     *  catch (Exception e)
                     *  {
                     *      Console.WriteLine(e.Message + " Słowo polskie:  " + rndPol);
                     *      break;
                     *  }
                     *  p.korzen = temp9;
                     *  var tempPol = p.Wyszukaj(p.korzen, rndPol);
                     *  tempAng.Tlumaczenie = tempPol;
                     *  tempPol.Tlumaczenie = tempAng;
                     *  a.WypiszDrzewoKLP(a.korzen);
                     *  Console.WriteLine();
                     * } */
                    Console.WriteLine("Ta usługa została wyłączona. Wykup AVL PREMIUM już dzisiaj !!!\n");
                    break;
                }
                if (exit)
                {
                    break;
                }
            }
            Console.WriteLine("\nSlownik angielski:");
            a.WypiszDrzewo(a.korzen);
            Console.WriteLine("\nSlownik polski:");
            p.WypiszDrzewo(p.korzen);
            ioManager.WypiszSlowa(a.korzen);
            ioManager.closeStreamWriter();
            Console.ReadKey();
        }