kleine Rechenaufgabe.



  • hallo, ich versuche mein erstes Programm in c# zu programmieren, jedoch weiss ich nicht mehr wie es weiter gehen soll. Ich möchte das mein Programm einen bestimmten Betrag ausrechnet.
    Ich habe ein Betrag von 50 € zur verfügung, von diesem betrag kauf ich mir in der Mensa Essensmarken, mein programm rechnet wie viel die essensmarken kosten, und dann soll es die folgende operation durchführen :
    mein kontostand-kosten= neuer kontostand.
    mein problem ist das, der neue kontostand nicht gespeichert bleibt.
    hier ist mein code:

    private void button17_Click(object sender, EventArgs e)
            {
    
                double a;
                double b;
                double result;
    
                a = double.Parse(textBox2.Text);
                b = 50;
    
                result = b - a;
    
                if (result >= 0)
                {
                    richTextBox1.Text = string.Format("Sie haben noch : € {0}", result.ToString());
                    MessageBox.Show("Marke wird ausgedruckt, guten Apettit.");
                }
                else
                    MessageBox.Show("Bitte laden Sie Ihre EC-Karte bzw Studentenausweis auf. Ihr Kontostand reicht für die gewünchte Menge nicht aus. ");
    
                textBox1.Clear();
                textBox2.Clear();
    
            }
    

    Ich bin für jede hilfe sehr dankbar. postet kräftig 😉



  • du musst die Variable result ausserhalb der Funktion deklarieren



  • Siraja schrieb:

    du musst die Variable result ausserhalb der Funktion deklarieren

    hallo, danke für die schnelle Antwort.
    Das habe ich gerade ausprobiert aber das hat leider nicht geklappt 😞
    zb erste rechenaufgabe 50-12= 38 (klappt super wie vorhin)
    aber danach rehnet es nicht 38-4= 34 sondern wieder 50 -4= 46.
    ich weiss nicht wie ich das hinkriegen kann.



  • [quote="pava"]

    Siraja schrieb:

    du musst die Variable result ausserhalb der Funktion deklarieren

    hallo, danke für die schnelle Antwort.
    Das habe ich gerade ausprobiert aber das hat leider nicht geklappt 😞
    zb erste rechenaufgabe 50-12= 38 (klappt super wie vorhin)
    aber danach rehnet es nicht 38-4= 34 sondern wieder 50 -4= 46.
    ich glaube dass es irgendwie daran liegt, das b einen konstanten wert hat und zwar 50 deswegen substrahiert das programm immer von dieser 50.
    ich weiss nicht wie ich das hinkriegen kann.



  • private int konto = 50;
    private void button1_Click(object sender, EventArgs e)
    {
        int textbox_betrag = Convert.ToInt32(textBox1.Text);
        if (textbox_betrag <= konto)
        {
            konto -= textbox_betrag;
        }
        else
        {
            //zu wenig Geld
        }
    }
    

    ich glaube dass es irgendwie daran liegt, das b einen konstanten wert hat und zwar 50 deswegen substrahiert das programm immer von dieser 50.
    ich weiss nicht wie ich das hinkriegen kann.

    Was hast du auch erwartet? 😃 Wenn du in der Methode jedesmal b den Wert 50 zuweißt, ist doch wohl logisch, dass man immer wieder von der 50 subtrahiert.



  • danke für die antwort , ich bekomme leider noch eine fehlermeldung :

    Fehler 1 'System.Windows.Forms.RichTextBox' does not contain a definition for 'text' and no extension method 'text' accepting a first argument of type 'System.Windows.Forms.RichTextBox' could be found (are you missing a using directive or an assembly reference?) C:\Users\Houmya\Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form2.cs 128 66 WindowsFormsApplication1



  • Zeig halt mal Code...



  • !T!ext groß



  • Na wundert mich trotzdem was er da hat, auch wenn die Fehlermeldung klar sein sollte, denn Visual Sutdio formatiert das Eingegebene eig. direkt. Wenn ich console.readkey eingebe, wird das zu Console.ReadKey.



  • danke danke es hat geklappt. ich versuche andere kleine probleme jetzt zu besitigen. danke nochmal.



  • hallo, ich hoffe ihr seid auch noch wach.
    so ich habe jetzt das nächste und hoffentlich letzte Problem bei diesem Programm.

    private void button1_Click(object sender, EventArgs e)
            {
                double b;
    
                b = 1.8;
                  textbox_betrag = Convert.ToDouble(textBox1.Text);
                if (textbox_betrag != 0){
                result = b * textbox_betrag;
                textBox2.Text = result.ToString();
                }
                else
                    textBox2.Text = b.ToString();
            }
    

    Das Problem ist :das Programm soll zwei Beträge multiplizieren zb 4 (Essensmarken)* 1.8(Preis für eine marke). Die 4 steht dann im textbox1 und das Ergebniss im textbox2. Aber wenn textbox1 leer ist , also wenn man nur auf button1 klickt funktioniert das nicht. Mein ziel ist es wenn man auf Button1 klickt sollte da 1.8 stehen.
    Wie geht das? ich habe es mit !=0 versucht , aber das ist falsch.

    habt Ihr eine idee? Danke im Voraus.



  • private void button1_Click(object sender, EventArgs e)
    {
        if(textBox1.Text == "")
        {
            textBox2.Text = "1.8";
        }
        else
        {
            textBox2.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * 1.8));
        }
    }
    


  • FreakY<3Cpp schrieb:

    private void button1_Click(object sender, EventArgs e)
    {
        if(textBox1.Text == "")
        {
            textBox2.Text = "1.8";
        }
        else
        {
            textBox2.Text = Convert.ToString(Convert.ToDouble(textBox1.Text) * 1.8));
        }
    }
    

    Danke schön es hat super geklappt. Jetzt ist mein Programm endlich mal fertig, jetzt kann ich schlafen gehen 😃 .


Anmelden zum Antworten