Calculatrice pour tel portable

sdiri_med Messages postés 18 Date d'inscription lundi 17 juillet 2006 Statut Membre Dernière intervention 31 octobre 2010 - 20 mars 2010 à 04:11
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 - 21 mars 2010 à 07:21
salut pour tout le monde
pourriez vous m'aidez SVP je suis entrai de développer une calculatrice scientifique pour mon portable ,mais mon problème c'est que je doit utiliser un seul champs de texte " un seul controle textBox" donc j'ai pas arriver a faire une opération d'addition , je ne c'est pas quoi faire sous la méthode du bouton "+" vraiment je me suis bloqué face a ce problème veillez voila le code du bouton + :
private void button13_Click(object sender, EventArgs e)
        {
            double x=0;
            double y=0;
            try
            {
                x = Double.Parse(textBox1.Text);
            }
            catch (FormatException ErrF2)
            {
                MessageBox.Show("format non rspecter ");
            }

        }

pour les autres boutton comme Expo et log voila le code :
private void button22_Click(object sender, EventArgs e)
        {
            double y = 0;
            try
            {
                 y = Double.Parse(textBox1.Text);
            }
            catch (FormatException ErrF)
            {
                MessageBox.Show("format non respecter");
            }
            double x = y;
            y = Math.Exp(y);
            textBox1.Text ("Exp(" + x.ToString() + ") " + y.ToString());
            
        }

une solutions pour concaténer les textes dans un seul textBox :
private void button2_Click(object sender, EventArgs e)
        {string s = "2";
            textBox1.Text = textBox1.Text + s;           
        }

bon voila ce que j'ai fait jusqu'à maintenant

1 réponse

yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
21 mars 2010 à 07:21
bonjour voila de koi resoudre tout tes soucis
        private string CalculeExpression(String expression)
        {
            //Instance d'un compilateur MSIL
            CodeDomProvider iCodeCompiler = CodeDomProvider.CreateProvider("CSharp");
            //Parametre pour la compilation
            CompilerParameters parameter = new CompilerParameters();
            //Génere une Dll en mémoire
            parameter.GenerateExecutable = false;
            parameter.GenerateInMemory = true;
            //Création du code executable
            string CodeSource = @"using System;
namespace Application1	
{ 
    public class EvalExpression	
    {

        public String Calcule() 
        {
            return (" + expression + @").ToString();
        }
    }
}";

            //Compilation
            CompilerResults cResult = iCodeCompiler.CompileAssemblyFromSource(parameter, CodeSource);


            //Création de l'instance de l'assembly
            Object oInstance = cResult.CompiledAssembly.CreateInstance("Application1.EvalExpression");
            Type tType = oInstance.GetType();
            //Invocation de la méthode
            return (string)tType.InvokeMember("Calcule", BindingFlags.InvokeMethod, null, oInstance, null);
        }


CalculeExpression(String expression) prend en parametre une formule mathematique "((1+2)-1) +3"


et tu l'appel sur ton bouton "="

textBox1.Text = CalculeExpression(textBox1.Text);
0