Anfänger Problem!

Anio

Grünschnabel
Guten Abend Leute :D
Ich habe irgendwie ein problem bei meinem Programm.
Ich will das es wenn das ergebniss richtig ist bei dem laben richtig 1 dazuzählt also richtg 1, richtig 2 usw
Ich bin kurzfristig auf c# umgestiegen habe mich eigentlich fuer C++ interessiert. Aber es ist wirklich zäh und ich wollte Fenster erstellen usw, ich finde wenn man eine sprache kann dann ist es leichter C++ zu lernen.

Hier zum Programm
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Rechentrainer
{
    public partial class Form1 : Form
    {
        void zufallszahl2()
        {
            int a, b;
            Random ORand = new Random();
            a = ORand.Next(1, 100);
            b = ORand.Next(1, 100);

            lblZahl1.Text = Convert.ToString(a);
            lblZahl2.Text = Convert.ToString(b);
        }

        void zufallszahl3()
        {
            int a, b;
            Random ORand = new Random();
            a = ORand.Next(1, 1000);
            b = ORand.Next(1, 1000);

            lblZahl1.Text = Convert.ToString(a);
            lblZahl2.Text = Convert.ToString(b);
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void cmdNeu_Click(object sender, EventArgs e)
        {
            if(opt2stellig.Checked == true)
            {
                zufallszahl2();
            }
            if(opt3stellig.Checked == true)
            {
                zufallszahl3();
            }


        }

        private void cmdEnde_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void cmdTest_Click(object sender, EventArgs e)
        {

            int d;
            int a, b, c;

           
            a = Convert.ToInt32(lblZahl1.Text);
            b = Convert.ToInt32(lblZahl2.Text);
            c = a + b;
            
            if(Convert.ToInt32(txtErgebnis.Text) == c)
            {
                MessageBox.Show("Geschafft", "",MessageBoxButtons.OK, MessageBoxIcon.Information);

            }   
            else
            {
                MessageBox.Show("Falsch", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            if(Convert.ToInt32(txtErgebnis.Text)== c)      //hier irgendwo ist der fehler glaube ich :D
            {
                d = 0;

                lblrichtig.Text = Convert.ToString(d);
                d++;
            }
          
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {

        }
    }
}

Code:
if (Convert.ToInt32(txtErgebnis.Text) == c)
            {
                lblrichtig.Text = "Richtig " + Convert.ToString(Convert.ToInt32(d++));
                
            }
So habe ich es auch versucht warscheinlich
 
Zuletzt bearbeitet:
Hallo Anio,

dein Post ist wirklich schwer zu lesen und das Problem hast du auch nicht richtig beschrieben.


Ich vermute mal, dass sich dein Problem lösen lässt, wenn du die Variable "d" nicht in der Methode "cmdTest_Click" sondern als Member der Form-Klasse deklarierst und initialisierst.
C#:
public partial class Form1 : Form
{
    private int d = 0;

    void zufallszahl2()
    {
    
    ...

Gruß
MCoder
 
Wenn ich mir jetzt meinen Post so durchlese dann glaube ich auch das es nicht gerade perfekt beschrieben ist, war zimlich spät gestern und ich war muede.
Also um mal genau zu beschreiben was ich meine, das Programm soll eine Art Rechentrainer darstellen wo zwei Zahlen addiert werden und man das Ergebniss eingeben muss wenn es richtig ist dann kommt die msgbox geschafft und sonnst falsch. Danach habe ich noch eingestellt das man mit 2 stelligen oder mit 3stelligen zahlen rechnen kann. Aber ich wollte das wenn man eine Rechnung richtig hat das irgendwo ein Punktezähler immer den Punktestand darstellt, also wie viele richtige man hat und wie viele falsche. Und ich schaffe es einfach nicht das er immer einen punkt dazu zählt wenn man die rechnung schafft ich schreibe d++ aber er bleibt immer bei 0.

Ach mich verwirren die ganzen Convert usw.
 
Zuletzt bearbeitet:
Habe ich gemacht so wie er gesagt hat oben als member deklariert und danach in einer if schleife engefuegt aber ich glaube ich mache was in der if schleife falsch ich blick da nicht mehr so richtig durch in der Kosnole war das alles einfacher ;P
Code:
if (Convert.ToInt32(txtErgebnis.Text) == c)
            {
                lblrichtig.Text = "Richtig " + d++;              //Convert.ToString(Convert.ToInt32(d++));
                
            }
einmal habe ich es so wie es im Code steht und einmal mit dem befehl der im Kommentar steht.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück