Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 06:11

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Mein erster Taschenrechner in c#

Discussion on Mein erster Taschenrechner in c# within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2013
Posts: 51
Received Thanks: 1
Mein erster Taschenrechner in c#

Hi Leute ich hab da ne Frage
Undzwar hab ich vor kurzem meinen ersten taschenrechner programmiert und
1. Was haltet ihr von dem Code ?
2. In dem folgenden Code hab ich eine try catch Anweisung benutzt die einmal komplett checkt , aber ich möchte für jede Rechenart einzeln kontrollieren.
Hier ein Screen von der Form falls jemand wissen will wie´s aussieht:
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 WindowsFormsApplication10
{
    public partial class Mein_erster_Taschenrechner : Form
    {
        public Mein_erster_Taschenrechner()
        {
            InitializeComponent();
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Eingabefeld2.Text = string.Empty;//<-Entweder so 
            Ergebnisfeld.Text = "";//<-oder so
            Eingabefeld1.Text = "";
            Addition.Checked = false;
            Subtraktion.Checked = false;
            Multiplikation.Checked = false;
            Division.Checked = false;
        }

        private void button9_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 0;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 0;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {

            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 1;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 1;
            }
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            try
            {
            }
            catch (Exception)
            {
                throw;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
           [B]try
            {
                double zahl1 = Convert.ToDouble(Eingabefeld1.Text);
                double zahl2 = Convert.ToDouble(Eingabefeld2.Text);
                if (Addition.Checked == true)
                {
                    double ergebnis = zahl1 + zahl2;
                    Ergebnisfeld.Text = Convert.ToString(ergebnis);
                }
                else if (Subtraktion.Checked == true)
                {
                    double ergebnis = zahl1 - zahl2;
                    Ergebnisfeld.Text = Convert.ToString(ergebnis);
                }
                else if (Multiplikation.Checked == true)
                {
                    double ergebnis = zahl1 * zahl2;
                    Ergebnisfeld.Text = Convert.ToString(ergebnis);
                }
                else if (Division.Checked == true)
                {
                    double ergebnis = zahl1 / zahl2;
                    Ergebnisfeld.Text = Convert.ToString(ergebnis);
                }
            }
            catch
            {
                Ergebnisfeld.Text = "Ungültig";
            }[/B]
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 2;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 2;
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 3;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 3;
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 4;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 4;
            }
        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 5;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 5;
            }
        }

        private void button7_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 6;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 6;
            }
        }

        private void button12_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 7;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 7;
            }
        }

        private void button11_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 8;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 8;
            }
        }

        private void button10_Click(object sender, EventArgs e)
        {
            if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 9;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 9;
            }
        }

        private void Division_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void Subtraktion_CheckedChanged(object sender, EventArgs e)
        {

        }


    }
}
IchkenneDICH is offline  
Old 04/18/2013, 20:43   #2
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Benutz einfach Double.TryParse und check den Rückgabewert.
Ausserdem ist '== true' redundant.

Was mir noch auffällt: Benutz für die Buttons 0-9 besser nur einen Eventhandler und check das aufrufende Objekt.
Schlüsselbein is offline  
Old 04/18/2013, 20:45   #3
 
elite*gold: 0
Join Date: Mar 2013
Posts: 51
Received Thanks: 1
Ja das mit == true , dass man das auch ohne das machen kann hab ich erst später dazugelernt und dachte mir ist ja jetzt auch egal
Aber man sieht dass ich dort auch schon ohne das ==true und ==false was gemacht hab :P
Achja und das mit dem Try catch kann ich mir nicht aussuchen das muss ich so machen Ich bin momentan im Praktikum und hab vorgestern mit c# angefangen.
Ich soll try und catch für jede Rechenart einzeln nochma machen , aber irgendwie klappt das nicht so ganz. Ein Beispiel wäre hilfreich
IchkenneDICH is offline  
Old 04/18/2013, 20:50   #4
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,354
Received Thanks: 280
PHP Code:
   Ergebnisfeld.Text "Ungültig"
Du kannst auch
PHP Code:
MessageBox.Show("DEIN TEXT"); 
benutzen das sieht ein stück besser aus wenn man versehentlich einen Buchstaben eingibt

P.s bin auch noch neu in C#
Twist' is offline  
Old 04/18/2013, 20:50   #5
 
P3enguin's Avatar
 
elite*gold: 0
Join Date: Jun 2009
Posts: 154
Received Thanks: 53
Hey ichkenneDich,

grundsätzlich ist dein Code ganz Okay.

Worauf du meines Erachtens nach schauen solltest wäre
1.) Die Variablen benennung würde ich nochmal überdenken ist in so kleinen sachen nicht so schlimm aber z.b. eine Double var mit dem namen DouZahl1 oder DouZahl2 bennenen

2.) C# ist nicht umsonst objektorientiert du hättest eine Funktion schrieben können der du Die Paramter beim Buttonclick mitgeben hättest können dann hättest dur dir das sparen können

Code:
if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
            {
                Eingabefeld1.Text += 5;
            }
            else if (Addition.Checked || Subtraktion.Checked || Multiplikation.Checked || Division.Checked)
            {
                Eingabefeld2.Text += 5;
            }
bzw. nur einmal schreiben müssen

sonst immer weiter machen das kommt mit der zeit
P3enguin is offline  
Thanks
1 User
Old 04/18/2013, 20:59   #6
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Quote:
1.) Die Variablen benennung würde ich nochmal überdenken ist in so kleinen sachen nicht so schlimm aber z.b. eine Double var mit dem namen DouZahl1 oder DouZahl2 bennenen
Die Variablennamen würde ich auch nochmal überdenken, allerdings nicht so. Variablen beginnen (unter C#) klein.

Quote:
2.) C# ist nicht umsonst objektorientiert du hättest eine Funktion schrieben können der du Die Paramter beim Buttonclick mitgeben hättest können dann hättest dur dir das sparen können
Man benötigt keine OOP für Funktionen.
Wie schonmal angesprochen, kann der TS ja über die Parameter des Handlers herausbekommen, welcher Button gedrückt wurde.




Gruß
Schlüsselbein is offline  
Old 04/18/2013, 21:12   #7

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Das hier:
Code:
if (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked)
kannst du auch durch eine eigene Funktion ersetzen:

Code:
private bool firstBox() {

 return (!Addition.Checked && !Subtraktion.Checked && !Multiplikation.Checked && !Division.Checked);
}
und dann mit if (firstBox()) aufrufen. Für die 2. Abfrage ebenso eine Funktion schreiben.
Finde ich persönlich viel angenehmer, als die ganze Zeit solche riesigen Abfragen zu erstellen.

Code:
else if (Division.Checked == true) {
                double ergebnis = zahl1 / zahl2;
          }
Was machst du, wenn zahl2 == 0 ist?
snow is offline  
Thanks
1 User
Old 04/18/2013, 21:22   #8
 
elite*gold: 0
Join Date: Mar 2013
Posts: 51
Received Thanks: 1
Quote:
Was machst du, wenn zahl2 == 0 ist?
Bisher bin ich zufrieden wie der Taschenrechner es ohnehin schon macht. Er gibt als Ergebnis "+unendlich" aus. Sofern er nicht abschmiert war mir das erstmal egal und hab deswegen auch nix gegen gemacht.
Aber ich weiß , dass man eine DivideByZero Ausnahme einfügen kann.
Das nehm ich mir mal für später vor
IchkenneDICH is offline  
Old 04/18/2013, 21:32   #9
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Quote:
Er gibt als Ergebnis "+unendlich" aus.
Was falsch ist
Quote:
Aber ich weiß , dass man eine DivideByZero Ausnahme einfügen kann.
Das nehm ich mir mal für später vor
Ist ja sowieso nur ne Sache von paar Minuten.

Jedenfalls lässt sich das Programm für n Anfänger schon sehen, also immer weiter so. Leg deinem Vorgesetzten trotzdem mal eine 2. Version mit Double.TryParse usw. vor. Eigeninitiative kommt immer gut!
Schlüsselbein is offline  
Thanks
1 User
Old 04/18/2013, 22:44   #10
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Wurd ja schon das meiste zu gesagt.
Da das mit der Variablenbennenung schon angesprochen wurde.



Hier nochmal ausführlich
Lerns am anfang und du sparst dir ne Menge graue Haare wenn du es dann tatsächlich so machen musst.

Ansonsten kann ich mich dem Rest nur anschliessen, kann sich sehen lassen und ist erfrischend mal jemanden hier zu sehen der versucht das ganze strukturiert von Grundauf zu lernen ;D
dready is offline  
Thanks
1 User
Old 04/19/2013, 12:25   #11
 
elite*gold: 0
Join Date: Mar 2013
Posts: 51
Received Thanks: 1
€: Kann geclosed werden , Hab mein Feedback erhalten
IchkenneDICH is offline  
Reply


Similar Threads Similar Threads
Mein Taschenrechner :)
11/10/2012 - AutoIt - 4 Replies
Hallo , Ich biete euch hier meinen Taschenrechner an ... Ich bin neu, d.h er ist Hesslich :DD aber nun gut Er Erfüllt seinen Zweck (Rechnen :D ) Screens: http://img5.fotos-hochladen.net/uploads/bild2xh0u qlse7.png http://img5.fotos-hochladen.net/uploads/bildjrasd ibhvu.png
Mein Taschenrechner Failt
11/10/2012 - AutoIt - 2 Replies
hey Also ich bin Ziemlich neu in AutoIT und wollte mir für den Anfang einen Taschenrechner Scripten.. Doch der geht nicht hier mein Script Dim $erstezahl, $auswahl, $ergebnis, $zweitezahl $auswahl = InputBox ("Auswählen:", _ "Was möchtest du Rechnen?" & _ @LF & "Addieren (1)" _ @LF & "Subtrahieren (2)" _ @LF & "Multiplizieren (3)" _ @LF & "Division (4)", "Gib hier 1, 2, 3 oder 4 ein!") Switch, $auswahl
Mein erster Bot
01/24/2010 - Guild Wars - 1 Replies
HI Bottergemeinschaft ich habe mich mal an einen bot gemacht und wollte wissen ob ihr noch verbesserungen Vorschläge habt. Der Bot farmt Assa elite Folis bei den Ran Musu gärten. Ich hab Die einstellungen dabei gelegt ich wüsch euch viel Spaß :D Die Vorschläge bitte mit einer PM senden PS: Sorry falsches Unterforum
Mein erster Bot
02/07/2009 - GW Exploits, Hacks, Bots, Tools & Macros - 23 Replies
hier noch ein link wo man die exe mit anleitungen runterlaen kann: http://www.fileuploadx.de/144364 ok^^



All times are GMT +1. The time now is 06:12.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.