Zum Inhalt springen

Taschenrechner im Windows-Style


mistajeff

Empfohlene Beiträge

Hallo miteinander

Es ist mein erster Beitrag hier (eher ein Hilfeschrei), jedoch nicht mein erster Besuch. Ich hatte schon mehrmals die Lösung auf ein Problem hier gefunden (Super Forum!)

IIch habe im moment ein Problem. Ich muss einen Taschenrechner so programmieren, wie der taschenrechner beim windows es ist. (ohne wissenschaftl. funktionen etc.) also nur die grundfunktionen +,-,*,/

Ich bin mit meinem Lehrmeister mal soweit gekommen, das meiste hab ich gemacht, er hat mir etwas geholfen und verbessert, jedoch läuft es immer noch nicht einwandfrei.

Meine Frage: Was muss ich noch verbessern?

Würdet ihr diesen Rechner als "ok" bezeichnen??

 

namespace MyFirstCalculator

{

    public partial class Form1 : Form

    {

        private double zwischenwert = 0;

        private Operator letzterOperator;


        public Form1()

        {

            InitializeComponent();

        }


        private void _btnGleich_Click(object sender, EventArgs e)

        {

            this.Rechne(Convert.ToDouble(this._txtResult.Text));

            this._txtResult.Text = zwischenwert.ToString();

        }


        private void _btnZahl1_Click(object sender, EventArgs e)

        {

            if (sender is Button)

            {

                if (this._txtResult.Text == "0")

                {

                    this._txtResult.Text = "";

                }


                this._txtResult.Text += ((Button)sender).Text;

            }

        }


        private void _btnPlus_Click(object sender, EventArgs e)

        {

            if (_txtResult != null)

            {

                this.Rechne(Convert.ToDouble(this._txtResult.Text));

                this.letzterOperator = Operator.Plus;

                this._txtResult.Text = "0";

            }

        }


        private void button1_Click(object sender, EventArgs e)

        {

            this.zwischenwert = 0;

            this._txtResult.Text = "0";

        }


        private void _btnMinus_Click(object sender, EventArgs e)

        {

            if (_txtResult != null)

            {

                this.Rechne(Convert.ToDouble(this._txtResult.Text));

                this.letzterOperator = Operator.Minus;

                this._txtResult.Text = "0";

            }

        }


        private void _btnDiv_Click(object sender, EventArgs e)

        {

            if (_txtResult != null)

            {

                this.Rechne(Convert.ToDouble(this._txtResult.Text));

                this.letzterOperator = Operator.Dividiert;

                this._txtResult.Text = "0";

            }

        }


        private void _btnMultiplizieren_Click(object sender, EventArgs e)

        {

            if (_txtResult != null)

            {

                this.Rechne(Convert.ToDouble(this._txtResult.Text));

                this.letzterOperator = Operator.Mal;

                this._txtResult.Text = "0";

            }

        }


        private void Rechne(double neueZahl)

        {

            switch (this.letzterOperator)

            {

                case Operator.Plus:

                    this.zwischenwert += neueZahl;

                    break;

                case Operator.Minus:

                    this.zwischenwert -= neueZahl;

                    break;

                case Operator.Mal:

                    this.zwischenwert *= neueZahl;

                    break;

                case Operator.Dividiert:

                    this.zwischenwert = this.zwischenwert / neueZahl;

                    break;

            }

        }


        private enum Operator

        {

            Plus, Minus, Mal, Dividiert

        }

    }

}

danke im voraus und gruss

mistajeff

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo

also ich bin zwar nicht nicht gut in c# aber ein paar kleinigkeiten sind mir aufgefallen die sich aber nicht auf die Funktionalität auswirken.

- button1_Click würd ich umbenennen damit man weiß was hinter dieser Funktion tatsächlich steht z.B. btn_Clear

- _btnZahl1_Click würd ich umbenennen in einen allgemeineren Begriff da der auch bestimmt für das "," gehen soll !?

- Die Unterstriche vor dem Funktionsnamen würde ich pers. entfernen, ich bin nämlich nicht so der Fan von Unterstrichen am Anfang (aber könnte durchaus sein dass dies in c# zur Standardnotation gehört.

- Die Funktionen für die Rechenarten würde ich "einheitlich" bezeichnen, Beispiel: btnAdd_Click, btnSub_Click, btnMulti_Click, btnDiv_Click

Gruß Hans-Jörg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...