Ejemplo n.º 1
0
 public override bool Debiter(MAD Somme)
 {
     string operation = "Debit";
     if (Somme > new MAD(0))
     {
         if (Solde >= (Somme + Decouvert))
         {
             this.Solde -= Somme;
             ListeOperations.Add(new Operation(operation, Somme, true));
             return true;
         }
         else
         {
             Console.WriteLine("Impossible  ");
             return false;
         }
     }
     Console.WriteLine("Impossible somme negatif !!");
     return false;
 }
        private void TranslateKeyPress(Key key)
        {
            int index;

            for (index = 0; index < validKeyslist.Count(); index++)
            {
                if (key == validKeyslist[index])
                {
                    break;
                }
            }
            if (index <= 9)
            {
                if (Saisie.Length > 0 && Saisie.ElementAt(Saisie.Length - 1) == ')')
                {
                    Saisie += "*";
                }
                Saisie += index.ToString();
            }
            switch (index)
            {
            case 10:
                Saisie += "/";
                break;

            case 11:
                Saisie += "*";
                break;

            case 12:
                Saisie += "-";
                break;

            case 13:
                Saisie += "+";
                break;

            case 14:
                if (backFromPopup)
                {
                    backFromPopup = false;
                }
                else
                {
                    if (!string.IsNullOrEmpty(Saisie))
                    {
                        if (operationIsValid(Saisie))
                        {
                            try
                            {
                                Operation o = new Operation(Saisie);
                                ListeOperations.Add(o);
                                Saisie = "";
                                UpdateScrollBar(historyBox);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.ToString());
                                MessageBox.Show("Erreur de Calcul");
                                backFromPopup = true;
                            }
                        }
                        else
                        {
                            MessageBox.Show("Formule invalide");
                            backFromPopup = true;
                            Saisie        = "";
                        }
                    }
                    else
                    {
                        Saisie = "";
                    }
                }
                break;

            case 15:
                Saisie += ",";
                break;

            case 16:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "(";
                break;

            case 17:
                Saisie += ")";
                break;

            case 18:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "sin(";
                break;

            case 19:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "cos(";
                break;

            case 20:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "√(";
                break;

            case 21:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "exp(";
                break;

            case 22:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "ln(";
                break;

            case 23:
                if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                {
                    Saisie += "*";
                }
                Saisie += "tan(";
                break;

            case 24:
                Saisie += "!";
                break;

            case 25:
                Saisie += "^";
                break;

            default:
                Saisie += "";
                break;
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Button sourceButton = (Button)sender;

            resetFocus(sourceButton);
            string buttonContent = sourceButton.Content.ToString();

            if (string.IsNullOrEmpty(Saisie))
            {
                Saisie = "";
            }
            if (simpleEntries.Contains(buttonContent))
            {
                if (isANumber(buttonContent.ElementAt(0)) && Saisie.Length > 0 && Saisie.ElementAt(Saisie.Length - 1) == ')')
                {
                    Saisie += "*";
                }

                Saisie += buttonContent;
            }
            else
            {
                if (buttonContent.Equals("Clear"))
                {
                    if (string.IsNullOrEmpty(Saisie))
                    {
                        ListeOperations.Clear();
                    }
                    else
                    {
                        Saisie = "";
                    }
                }
                else if (buttonContent.Equals("x"))
                {
                    Saisie += "*";
                }
                else if (buttonContent.Equals("Rep"))
                {
                    if (ListeOperations.Count != 0)
                    {
                        Saisie += ListeOperations[ListeOperations.Count - 1].Resultat;
                    }
                }
                else if (buttonContent.Equals("="))
                {
                    if (!string.IsNullOrEmpty(Saisie))
                    {
                        if (operationIsValid(Saisie))
                        {
                            try
                            {
                                Operation o = new Operation(Saisie);
                                ListeOperations.Add(o);
                                Saisie = "";
                                UpdateScrollBar(historyBox);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.ToString());
                                MessageBox.Show("Erreur de Calcul");
                                backFromPopup = true;
                            }
                        }
                        else
                        {
                            Saisie = "";
                            MessageBox.Show("Formule invalide");
                            backFromPopup = true;
                        }
                    }
                    else
                    {
                        Saisie = "";
                    }
                }
                else if (buttonContent.Equals("Effacer"))
                {
                    Erase();
                }
                else
                {
                    if (Saisie.Length > 0 && !(isAnOperator(Saisie.ElementAt(Saisie.Length - 1)) || Saisie.ElementAt(Saisie.Length - 1) == '('))
                    {
                        Saisie += "*";
                    }

                    if (buttonContent.Equals("sin (s)"))
                    {
                        Saisie += "sin(";
                    }
                    else if (buttonContent.Equals("cos (c)"))
                    {
                        Saisie += "cos(";
                    }
                    else if (buttonContent.Equals("√ (r)"))
                    {
                        Saisie += "√(";
                    }
                    else if (buttonContent.Equals("exp (e)"))
                    {
                        Saisie += "exp(";
                    }
                    else if (buttonContent.Equals("ln (l)"))
                    {
                        Saisie += "ln(";
                    }
                    else if (buttonContent.Equals("tan (t)"))
                    {
                        Saisie += "tan(";
                    }
                }
            }
        }