Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Taschenrechner im Windows-Style

Empfohlene Antworten

Veröffentlicht

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

Willkommen im Forum,

kannst du dein "nicht einwandfrei" etwas definieren, also was läuft nicht so wie du willst.

Der Code an sich sieht ganz gut aus, nur finde ich das man meines erachtens sämtliche this-operatoren entfernen kann, aber wenn du die haben magst :-)

LG

it_crowd

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

für eure antworten!

oke, hab ein paar definierte fragen ;) :

- wie krieg ich das mit punkt vor strich hin?

- wenn ich zb 3-3 rechne kriegt der -6 (warum?)

- wie kann ich die pfeiltaste definieren?, also die delete-taste?

danke im voraus und gruss

mistajeff

das mit der delete-taste war ja kein ding ;), das hab ich schon mal, bleibt nur noch das mit punkt vor strich und die sache mit dem minus-operator (zb 3-3 = -6)....

        private void _btnDelete_Click(object sender, EventArgs e)

        {

            _txtResult.Text = _txtResult.Text.Remove(_txtResult.Text.Length - 1);

        }

also so wie ich das an deinem code sehe kannst du doch nur zwei zahlen auf einmal miteinader verechnen oder hab ich mich da verschaut?

hast du schonmal versucht dein programm zu debuggen um den fehler bei dem minusrechnen zu finden, schau einfach mal die werte im debugmodus an

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.