C# Mwst-Rechner - radiogroup ansteuern in c#

marivuko

Cadet 3rd Year
Registriert
Mai 2013
Beiträge
48
muss ein kleines Programm mit windows forms machen (Struktur siehe Anhang)

für dieses Programm habe ich mir 3 textbox und 3 radiobox angelegt,

muss im Feld Anfangspreis eine Zahl eintragen, Rabatt wählen, das Programm sollte mir dann den Endpreis berechnen.

habe alles soweit fertig, nur bin ich auf das Problem gestoßen, dass ich den Endpreis nicht berechnen kann.

habe die radiobox mit einer if Funktion angesteuert:
if (radioButton1.Checked)
{

double rabatt = akpreis * 15/100;
textBox2.Text = rabatt.ToString();

}

if (radioButton2.Checked)
{

double rabatt2 = akpreis * 20/100;
textBox2.Text = rabatt2.ToString();

}


da ich für das Ergebnis rabatt und rabatt2 benutzt habe komme ich nicht mehr auf das Endergebis
kann mir jmd vielleicht sagen, wie ich darauf komme ohne die Variablen zu ändern
 

Anhänge

  • app.JPG
    app.JPG
    11,7 KB · Aufrufe: 380
Bin jetzt kein Experte, aber versuch mal
Code:
double rabatt2 = akpreis * 20/100;
textBox2.Text = rabatt2.ToString();
durch
Code:
rabatt = akpreis * 20/100;
textBox2.Text = rabatt.ToString();
zu ersetzen.

Jedoch sollte die Variable rabatt dann vor dem ersten if schonmal mit double rabatt; oder double rabatt = 0.0; deklariert werden.

Dann hast du nur noch einen rabatt
 
Zuletzt bearbeitet:
Hallo,

leider hab ich keine Ahnung was genau dein Problem ist. Hilfreich wäre der komplette Source-Code, der ja nicht wirklich umfangreich sein dürfte. Rein aus der Sicht des Benutzers würde ich die Radioboxen nur als Gui-Hilfsmittel nutzen um den Zahlenwert in der Textbox zu ersetzen. Das geht mit sogenannten Events. Bei dem Klick auf den Button "OK" kannst du dann einfach die Werte deiner Textboxen in deine "ausgekoppelte" Funktion "berechne Rabatt" geben und ein dir einen den Rückgabewert in die Textbox "Endpreis" schreiben.

Grüße
 
Das Problem sind die geschweiften Klammern. Die markieren den Anfang und das Ende eines Kontexts. Variablen sind nur in dem Kontext gültig, in dem sie deklariert wurden. Untergeordnete Kontexte können auf die Variablen der übergeordneten Kontexte zugreifen.
Das selbe Prinzip gilt übrigens auch für Methoden, Klassen und Namespaces. Aber Achtung! Methoden darf man nicht ineinander verschachteln. Die anderen Sachen schon.

Code:
{
    // übergeordneter Kontext

    {
        // untergeordneter Kontext

        int a = 1;
        a++;
    }

    a++; // Fehler! a existiert im übergeordneten Kontext nicht.
}


Code:
{
    // übergeordneter Kontext

    int a = 1;

    {
        // untergeordneter Kontext

        a++; // Zugriff auf den übergeordneten Kontext ist erlaubt und funktioniert!
    }

    a++; // Klappt problemlos.
}
Weil die Kontexte so wichtig sind, werden sie gerne eingerückt, damit man Anfang und Ende sofort sehen kann.
 
Zuletzt bearbeitet:
Es ist eigentlich alles gesagt, trotzdem werfe ich noch etwas nach. Neben meiner Erfahrung, dass es vielen (in meinem Fall Studenten) schwer fällt überhaupt diese Aufstellung von namespace => class => Properies/Methods/etc. => code erstmal zu verstehen. Verweise ich auf den MSDN Eintrag Namespace (C#-Referenz) da kann man sich sehr gut durchklicken, ohne wirklich viel zu lesen. Am ende hat man es dann hoffentlich verstanden, wenn nicht wird die Klausur extrem schwierig. Und ich denke solch eine folgt auch in diesem Fall, wenn ich den Eröffnungsthread richtig deute ;).

Allerdings immer wieder Fraglich wieso Professoren/Lehrer heute noch mit Forms anfangen. Oder schlimmer noch mit Konsolenanwendungen :)

#EDIT: Ups, wollte eigentlich keine Grundsatzdiskussion anfangen :P. @p64y: Ich muss noch unterstreichen das ich mich auf Kurse/Studiengänge in Schulen und Hochschulen beziehe, die nicht den Schwerpunkt Informatik haben. Denn was ich bis dato so mitbekommen habe, geht es dort hauptsächlich um das lernen von Vokabular. Ich will der Konsolenanwendung nicht ihre Berechtigung abstreiten nur halte ich sie nicht für das Mittel der Wahl, wenn es darum geht Programmieren beizubringen ;).
 
Zuletzt bearbeitet:
PapstRatze schrieb:
Allerdings immer wieder Fraglich wieso Professoren/Lehrer heute noch mit Forms anfangen. Oder schlimmer noch mit Konsolenanwendungen :)

Weil man sich nicht mit langweiliger Oberflächenprogrammierung aufhalten möchte, sondern Probleme lösen möchte (dh. Algorithmen entwerfen). Zur Überprüfung, ob der Algorithmus tut was er soll, reichen cin und cout auf der Konsole. ;-)
 
Zurück
Oben