Exemple #1
0
        public MainWindow()
        {
            InitializeComponent();


            this.Voltage_Box.SelectedText      = "%";
            this.Ilosc_ComboBox.SelectedIndex  = 0;
            this.Trunek_ComboBox.SelectedIndex = 0;
            this.Gender_ComboBox.SelectedIndex = 0;

            this.wynik            = new Wynik();
            this.osoba            = new Osoba();
            this.osoba_odzywianie = new Osoba_odzywianie();
            this.Alkolista        = new ObservableCollection <Alkohol>();

            this.DataContext                         = this;
            this.WynikBox.DataContext                = wynik;
            this.GodzinaBox.DataContext              = wynik;
            this.BMI_TextBox.DataContext             = osoba_odzywianie;
            this.Tluszcze_Box.DataContext            = osoba_odzywianie;
            this.Weglowodany_Box.DataContext         = osoba_odzywianie;
            this.Bialko_Box.DataContext              = osoba_odzywianie;
            this.Zapotrzebowanie_TextBox.DataContext = osoba_odzywianie;

            List <int> Num = new List <int>();

            for (int i = 1; i <= 10; i++)
            {
                Num.Add(i);
            }

            this.Trunek_ComboBox.ItemsSource = Enum.GetValues(typeof(Trunek));
            this.Ilosc_ComboBox.ItemsSource  = Num;
            this.Gender_ComboBox.ItemsSource = Enum.GetValues(typeof(Gender));
        }
        //Kalkulator
        private void Wynik(object sender, RoutedEventArgs e)
        {
            string        tablica            = Table.Text;
            string        TablicaDlaProgramu = Table.Text;
            int           LengthTablica      = tablica.Length;
            StringBuilder Zadanie            = new StringBuilder(tablica);

            try
            {
                ErrorWiadomosc.Visibility = Visibility.Hidden;
                for (int i = 0; i < Zadanie.Length; i++)
                {
                    if (Zadanie[i] == ',')
                    {
                        Zadanie[i] = '.';
                    }
                }

                for (int SpradzanieFunkcji = 0; SpradzanieFunkcji < tablica.Length; SpradzanieFunkcji++)
                {
                    //Funkcje Dodatkowe
                    if (TablicaDlaProgramu.Contains("Delta("))
                    {
                        int           Start        = TablicaDlaProgramu.IndexOf("Delta(");
                        int           StartNawiasu = TablicaDlaProgramu.IndexOf("Delta(") + "Delta(".Length;
                        int           Koniec       = TablicaDlaProgramu.IndexOf(")");
                        int           length       = Koniec - StartNawiasu;
                        string        zmienne      = "";
                        StringBuilder zmienneX     = new StringBuilder(TablicaDlaProgramu);

                        for (int x = 0; x < length; x++)
                        {
                            zmienne = zmienne + TablicaDlaProgramu[x + StartNawiasu];
                        }

                        string ZmiennaA      = "";
                        string ZmiennaB      = "";
                        string ZmiennaC      = "";
                        int    NumerZmiennej = 1;
                        for (int z = 0; z < zmienne.Length; z++)
                        {
                            if (zmienne[z] == '.' || zmienne[z] == ',')
                            {
                                NumerZmiennej++;
                            }
                            else
                            {
                                if (NumerZmiennej == 1)
                                {
                                    ZmiennaA = ZmiennaA + zmienne[z];
                                }
                                if (NumerZmiennej == 2)
                                {
                                    ZmiennaB = ZmiennaB + zmienne[z];
                                }
                                if (NumerZmiennej == 3)
                                {
                                    ZmiennaC = ZmiennaC + zmienne[z];
                                }
                            }
                        }



                        string wynik      = "(" + ZmiennaB + "*" + ZmiennaB + ")-4*" + ZmiennaA + "*" + ZmiennaC;
                        string WynikDelta = new DataTable().Compute(wynik, null).ToString();



                        string reszta = TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                        TablicaDlaProgramu = TablicaDlaProgramu.Substring(0, Start) + WynikDelta + TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                    }

                    if (TablicaDlaProgramu.Contains("Potegowanie("))
                    {
                        int Start = TablicaDlaProgramu.IndexOf("Potegowanie(");

                        int    StartNawiasu = TablicaDlaProgramu.IndexOf("Potegowanie(") + "Potegowanie(".Length;
                        int    Koniec       = TablicaDlaProgramu.IndexOf(")");
                        int    length       = Koniec - StartNawiasu;
                        int    KolejnoscPobieraniaDanych = 1;
                        string LiczbaPotengowana         = " ";
                        string StopienPotegi             = " ";
                        string zmienne = "";

                        for (int x = 0; x < length; x++)
                        {
                            zmienne = zmienne + TablicaDlaProgramu[x + StartNawiasu];
                        }

                        for (int z = 0; z < zmienne.Length; z++)
                        {
                            if (zmienne[z] == '.' || zmienne[z] == ',')
                            {
                                KolejnoscPobieraniaDanych++;
                            }
                            else
                            {
                                if (KolejnoscPobieraniaDanych == 1)
                                {
                                    LiczbaPotengowana = LiczbaPotengowana + zmienne[z];
                                }
                                if (KolejnoscPobieraniaDanych == 2)
                                {
                                    StopienPotegi = StopienPotegi + zmienne[z];
                                }
                            }
                        }
                        float Liczba = float.Parse(LiczbaPotengowana);
                        float potega = float.Parse(StopienPotegi);
                        float Wynik  = 1;
                        for (int potegowanie = 0; potegowanie < potega; potegowanie++)
                        {
                            Wynik = Wynik * Liczba;
                        }

                        string reszta = TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                        TablicaDlaProgramu = TablicaDlaProgramu.Substring(0, Start) + Wynik.ToString() + TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                    }

                    if (TablicaDlaProgramu.Contains("PoleProstokąta("))
                    {
                        int Start = TablicaDlaProgramu.IndexOf("PoleProstokąta(");

                        int    StartNawiasu = TablicaDlaProgramu.IndexOf("PoleProstokąta(") + "PoleProstokąta(".Length;
                        int    Koniec       = TablicaDlaProgramu.IndexOf(")");
                        int    length       = Koniec - StartNawiasu;
                        int    KolejnoscPobieraniaDanych = 1;
                        string A       = " ";
                        string B       = " ";
                        string zmienne = "";

                        for (int x = 0; x < length; x++)
                        {
                            zmienne = zmienne + TablicaDlaProgramu[x + StartNawiasu];
                        }

                        for (int z = 0; z < zmienne.Length; z++)
                        {
                            if (zmienne[z] == '.' || zmienne[z] == ',')
                            {
                                KolejnoscPobieraniaDanych++;
                            }
                            else
                            {
                                if (KolejnoscPobieraniaDanych == 1)
                                {
                                    A = A + zmienne[z];
                                }
                                if (KolejnoscPobieraniaDanych == 2)
                                {
                                    B = B + zmienne[z];
                                }
                            }
                        }
                        float LiczbaA = float.Parse(A);
                        float LiczbaB = float.Parse(B);
                        float Wynik;

                        Wynik = LiczbaA * LiczbaB;

                        string reszta = TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                        TablicaDlaProgramu = TablicaDlaProgramu.Substring(0, Start) + Wynik.ToString() + TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                    }

                    if (TablicaDlaProgramu.Contains("PoleTrojkonta("))
                    {
                        int Start = TablicaDlaProgramu.IndexOf("PoleTrojkonta(");

                        int    StartNawiasu = TablicaDlaProgramu.IndexOf("PoleTrojkonta(") + "PoleTrojkonta(".Length;
                        int    Koniec       = TablicaDlaProgramu.IndexOf(")");
                        int    length       = Koniec - StartNawiasu;
                        int    KolejnoscPobieraniaDanych = 1;
                        string A       = " ";
                        string h       = " ";
                        string zmienne = "";

                        for (int x = 0; x < length; x++)
                        {
                            zmienne = zmienne + TablicaDlaProgramu[x + StartNawiasu];
                        }

                        for (int z = 0; z < zmienne.Length; z++)
                        {
                            if (zmienne[z] == '.' || zmienne[z] == ',')
                            {
                                KolejnoscPobieraniaDanych++;
                            }
                            else
                            {
                                if (KolejnoscPobieraniaDanych == 1)
                                {
                                    A = A + zmienne[z];
                                }
                                if (KolejnoscPobieraniaDanych == 2)
                                {
                                    h = h + zmienne[z];
                                }
                            }
                        }
                        float LiczbaA = float.Parse(A);
                        float LiczbaB = float.Parse(h);
                        float Wynik;

                        Wynik = (LiczbaA * LiczbaB) / 2;

                        string reszta = TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                        TablicaDlaProgramu = TablicaDlaProgramu.Substring(0, Start) + Wynik.ToString() + TablicaDlaProgramu.Substring(Koniec + 1, TablicaDlaProgramu.Length - Koniec - 1);
                    }
                }


                string WynikX = new DataTable().Compute(TablicaDlaProgramu, null).ToString();

                WynikText.Content = WynikX;
            }
            catch
            {
                ErrorWiadomosc.Visibility = Visibility.Visible;
                ErrorWiadomosc.Content    = "UWAGA: Coś poszło nie tak. Prawdopodobnie podałeś złe dane";
            }
        }