Zum Inhalt springen

C# Taschenrechner


dreampimp89

Empfohlene Beiträge

Hallo @ all,

ich habe folgende Probleme ich habe schon mal was programmiert für meinen Taschenrechner. Es is mit einzelnen Button bsp 1,2,3 usw.. und button für +,-,/ und * grafisch fertig gemacht. dann habe ich einen textbox für zeigen was eingeben wurde. bsp 23+56

so jetzt möchte ich Die Funktionalität und die

Bedienung soll ähnlich dem

Windows Taschenrechner

sein.

Also dass es für alles nur einen Texbox gibt der rechnet indem

man zahl1 und bsp. Zeichen (+) dann die zahl2 eingibt: bsp.: 23+56

Anschließend soll es ganz unten

im Ergebnis Texbox das Erg. angezeigen.

ich hab überall rechechiert und nach geschaut, in Büchern gelesen.

Aber leider komme ich nicht auf eine Lösung.

ich wäre froh wenn Sie mir einen Beispiel code schicken würden, bitte.

Mit freundlichen Grüßen

:(

Bearbeitet von dreampimp89
Link zu diesem Kommentar
Auf anderen Seiten teilen

@DFens Und die am besten noch vorgekaut...

Nein, mal ernsthaft:

1. Das ist das falsche Forum. C# hat nix mit C/C++ zu tun. Das gehört in .NET.

2. Erwartest du eine fertige Lösung und genau das gibt es nicht. Wir leisten Hilfe, aber wir machen nicht deine Arbeit.

@TDM Er sagte doch, dass er die UI im Designer hat. Ich vermute mal der Code hat (wenn überhaupt) erstmal nur die leeren Eventhandler vom Designer.

Grüße, JasonDelife.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@TDM Er sagte doch, dass er die UI im Designer hat. Ich vermute mal der Code hat (wenn überhaupt) erstmal nur die leeren Eventhandler vom Designer.

hmm, ok, ich las raus, dass er zumindest die Buttons schon mit Methoden belegt hatte, alles in allem aber optisch nicht an den Windows-Rechner rankommt.

Hätte er wirklich überall rechechiert wäre er mit der Forensuche sicher weiter gekommen. :floet:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hätte er wirklich überall rechechiert wäre er mit der Forensuche sicher weiter gekommen. :floet:

Klingt nach nem Wink mit dem ganzen Zaun :bimei

Generell gibt es 2 Möglichkeiten, wie du vorgehen kannst.

zum einen kannst du die Eingaben der Zahlen und rechenzeichen zwischenspeichern, um sie dann der reihe nach auszuwerten. Dies ist relativ einfach, bringt aber probleme bei manchen Regeln mit sich (Punkt-vor-Strich, Klammern,...)

Die andere (und meiner Meinung nach elegantere) Methode wäre, die Werte als String immer zusammenzuführen. Am Ende macht man sich dann ne Funktion, die diesen String nach allen Regeln der Mathematik zerlegt und berechnet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

leute ich danke trotzdem für ihre antworten.

ich muss sagen ich bin ganz neu in der sache mit programmieren.

derzeit mache ich die berufkolleg 2 technik und medien und da habe ich einen projekt zu machen.

jeder hat einen eigenen projekt.meine idee ist dass ich einen rechner programmiere in elektrotechnik und physik mit einer datenbank jedoch weiss ich nich wie soein rechner mache der aussieht wie der von windows. ich kann nur den einfachen. das is das mit dem zwie textboxen und dann die ausgabe.

die buttons mit den zahlen hab ich schon

hier mein code


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using MySql.Data.MySqlClient;


namespace WindowsApplication1

{


    public partial class Form1 : Form

    {


        string meineVerbindung = "SERVER=localhost;" + "DATABASE=bibliothek;" +

                                     "UID=root;" + "PASSWORD=lololol;";


        public Form1()

        {

            InitializeComponent();

        }


        private void pictureBox2_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }


        private void btnfilter_Click(object sender, EventArgs e)

        {

            MySqlConnection connection = new MySqlConnection(meineVerbindung);


            MySqlCommand command = connection.CreateCommand();

            command.CommandText = "SELECT hebel FROM hebel";


            MySqlDataReader Reader;

            connection.Open();

            Reader = command.ExecuteReader();


            while (Reader.Read())

            {

                string zeile = "";


    //Einlesen der Datensätze, bis keine Datensätze mehr vorhanden sind

                for (int i = 0; i < Reader.FieldCount; i++)

                {

                    zeile = Reader.GetValue(i).ToString();


                    //Hinzufügen jedes einzelnen Datensatzes zur Listbox

                    lbxEinträge.Items.Add(zeile);

                }

            }


            connection.Close();

        }


        private void cbxPhysikformeln_SelectedIndexChanged(object sender, EventArgs e)

        {


        }


        private void btn1_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 1;

        }


        private void btn2_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 2;

        }


        private void btn3_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 3;

        }


        private void btn4_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 4;

        }


        private void btn5_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 5;

        }


        private void btnPlus_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += '+' ;

        }


        private void btnMinus_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += '-';

        }


        private void btn6_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 6;

        }


        private void btn7_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 7;

        }


        private void btn8_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 8;

        }


        private void btn9_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 9;

        }


        private void btn0_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += 0;

        }


        private void btnMal_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += '*';

        }


        private void btnGeteilt_Click(object sender, EventArgs e)

        {

            txbZeigen.Text += '/';

        }


        private void btn1E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 1;

        }


        private void btn2E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 2;

        }


        private void btn3E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 3;

        }


        private void btn4E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 4;

        }


        private void btn5E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 5;

        }


        private void btnPlusE_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += '+';

        }


        private void btnMinusE_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += '-';

        }


        private void btn6E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 6;

        }


        private void btn7E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 7;

        }


        private void btn8E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 8;

        }


        private void btn9E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 9;

        }


        private void btn0E_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += 0;

        }


        private void btnMalE_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += '*';

        }


        private void btnGeteiltE_Click(object sender, EventArgs e)

        {

            txbZeigenE.Text += '/';

        }


        private void btnFilter1_Click(object sender, EventArgs e)

        {

            MySqlConnection connection = new MySqlConnection(meineVerbindung);


            MySqlCommand command = connection.CreateCommand();

            command.CommandText = "SELECT hebel FROM hebel";


            MySqlDataReader Reader;

            connection.Open();

            Reader = command.ExecuteReader();


            while (Reader.Read())

            {

                string zeile = "";


                //Einlesen der Datensätze, bis keine Datensätze mehr vorhanden sind

                for (int i = 0; i < Reader.FieldCount; i++)

                {

                    zeile = Reader.GetValue(i).ToString();


                    //Hinzufügen jedes einzelnen Datensatzes zur Listbox

                    lbxEinträge.Items.Add(zeile);

                }

            }


            connection.Close();

        }

    }


}

Bearbeitet von grueni
Link zu diesem Kommentar
Auf anderen Seiten teilen

... jedoch weiss ich nich wie soein rechner mache der aussieht wie der von windows. ich kann nur den einfachen. das is das mit dem zwie textboxen und dann die ausgabe.

Hast du auch gelesen, was ich geschrieben habe. Das waren nämlich schonmal Ansätze für dich. Aber den Quellcode wird hier keiner für dich machen. Eigeninitiative ist gefragt

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich frag mich was der taschenrechner mit SQL will o.0

der windows rechner schreibt auch nich die ganze gleichung in das textfeld.

der standard rechner ignoriert auch punkt vor strich, der wissenschaftliche beachtet es.

wenn du die zahlen auch per tastatur eingeben willst, kannst du events an das form hängen.

mach dir am besten mal n plan wie der windows rechner arbeitet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was du brauchst ist ...

du musst nen String mathematisch parsen.

D.h. du musst auf Klammern entsprechend reagieren,Operatoren wie + - * /, und die grundegenden Axiome (Rechenregeln) beachten.

Das ist was, da wirste viel spass mit haben, das wird umfangreich, aber ist machbar.

Was du tun musst, ist einen Ausdruck zerlegen in Teilprobleme. Also erstmal die (innerste) Klammer berechnen, und dann dich von Innen nach Aussen arbeiten.

Wie gesagt, wirste lange viel Spass mit haben, aber ist logisch recht einfach, d.h. is gut machbar. Dauert halt a weile bis de soweit bist nen String so zu parsen dass de verwertbare mathematische Ausdrücke von hast, die du dann auch berechnest.

Und wenn du dazu irgendwen nach sourcecode fragst, dann wird derjenige dich sicherlich fragen, ob du dir DAS leisten kannst ....

divide & conquer is hier das Zauberwort, und mit genug Zeit is das ganze ganz gut machbar.

Gruß

Sven

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was du brauchst ist ...

du musst nen String mathematisch parsen.

D.h. du musst auf Klammern entsprechend reagieren,Operatoren wie + - * /, und die grundegenden Axiome (Rechenregeln) beachten.

Das ist was, da wirste viel spass mit haben, das wird umfangreich, aber ist machbar.

Was du tun musst, ist einen Ausdruck zerlegen in Teilprobleme. Also erstmal die (innerste) Klammer berechnen, und dann dich von Innen nach Aussen arbeiten.

Wie gesagt, wirste lange viel Spass mit haben, aber ist logisch recht einfach, d.h. is gut machbar. Dauert halt a weile bis de soweit bist nen String so zu parsen dass de verwertbare mathematische Ausdrücke von hast, die du dann auch berechnest.

Und wenn du dazu irgendwen nach sourcecode fragst, dann wird derjenige dich sicherlich fragen, ob du dir DAS leisten kannst ....

divide & conquer is hier das Zauberwort, und mit genug Zeit is das ganze ganz gut machbar.

Gruß

Sven

Danke Sven

du bist ehrlich der einzigste der mir geholfen hat.

ich hab auch schon mein Programm fast fertig

mein Programm kann bis jetzt rechnen mit dem taschenrechner.

dann habe ich mit sql ein datenbank aber des muss ich noch mal machen hab

glaub was falsch.

und mein einziger problem ist nur noch dass ich nich weiss wie ich die Punktvor strich regelung machen soll

hier kannst du mal runter laden und dir des mal anschaun

MEGAUPLOAD - The leading online storage and file delivery service

ich könnt dich ganz fest umarmen man =)

nich wie ein schwuler sondern wie glücklicher freund haha

danke

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...