From 47f7e41daeca41592de42b1e24a87d52dde4ed4e Mon Sep 17 00:00:00 2001 From: stegeiss Date: Mon, 12 Feb 2018 14:44:37 +0100 Subject: [PATCH 1/6] =?UTF-8?q?Seit=20WIN10:=20Der=20Wert=20bei=20rechnung?= =?UTF-8?q?en=20durch=20null=20werden=20mit=20"INFINITI"=20angegeben=20und?= =?UTF-8?q?=20in=20der=20Ausgabe=20erfolgt=20immer=20eine=20"8"=20f=C3=BCr?= =?UTF-8?q?=20unendlich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Taschenrechner/RechnerModel.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Taschenrechner/RechnerModel.cs b/Taschenrechner/RechnerModel.cs index 606e186..6ea2cfa 100644 --- a/Taschenrechner/RechnerModel.cs +++ b/Taschenrechner/RechnerModel.cs @@ -36,8 +36,8 @@ public double ErsteZahl } } } - - private double zweiteZahl = 0; + + private double zweiteZahl = 0; public double ZweiteZahl { get { return zweiteZahl; } @@ -48,6 +48,10 @@ public double ZweiteZahl AktuellerFehler = GrenzwertCheck(value); zweiteZahl = value; } + else + { + zweiteZahl = 1; + } } } From 9bd463b87154d847157509761173c19e6a125bcf Mon Sep 17 00:00:00 2001 From: stegeiss Date: Mon, 12 Feb 2018 14:47:15 +0100 Subject: [PATCH 2/6] =?UTF-8?q?Wird=20bei=20ForlaufenderAktion=20keine=20e?= =?UTF-8?q?ingabe=20gemacht,=20schlie=C3=9Ft=20das=20Programm=20"unsauber"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Taschenrechner/ConsoleView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Taschenrechner/ConsoleView.cs b/Taschenrechner/ConsoleView.cs index af5ead5..9976d3e 100644 --- a/Taschenrechner/ConsoleView.cs +++ b/Taschenrechner/ConsoleView.cs @@ -48,7 +48,7 @@ public void HoleEingabenFuerFortlaufendeBerechnung() { string eingabe = HoleNaechsteAktionVomBenutzer(); - if (eingabe.ToUpper() == "FERTIG") + if (eingabe.ToUpper() == "FERTIG" || eingabe == "") { BenutzerWillBeenden = true; } From d9804fd90c3ae6f36dc9090b4abdd2f33309ccfe Mon Sep 17 00:00:00 2001 From: stegeiss Date: Tue, 13 Feb 2018 21:33:50 +0100 Subject: [PATCH 3/6] =?UTF-8?q?Bei=20fortlaufender=20berechnungen=20rechne?= =?UTF-8?q?t=20das=20Programm=20zu=20erst=20mit=20der=20Eins,=20die=20im?= =?UTF-8?q?=20ELSE=20zweig=20steht.=20Die=20EIngabe=20wurde=20nicht=20?= =?UTF-8?q?=C3=BCbernommen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Taschenrechner/RechnerModel.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Taschenrechner/RechnerModel.cs b/Taschenrechner/RechnerModel.cs index 6ea2cfa..8a6f7fa 100644 --- a/Taschenrechner/RechnerModel.cs +++ b/Taschenrechner/RechnerModel.cs @@ -48,10 +48,6 @@ public double ZweiteZahl AktuellerFehler = GrenzwertCheck(value); zweiteZahl = value; } - else - { - zweiteZahl = 1; - } } } From 0893afdbffb23075c4a1c51f4d14eee3f897f2ca Mon Sep 17 00:00:00 2001 From: stegeiss Date: Tue, 13 Feb 2018 22:11:23 +0100 Subject: [PATCH 4/6] =?UTF-8?q?Anzeige=20f=C3=BCr=20Berechnung=20wurde=20?= =?UTF-8?q?=C3=BCberarbeitet,=20zeigt=20nun=204*5*5=3D100.=20=C3=9Cberpr?= =?UTF-8?q?=C3=BCfungen=20f=C3=BCr=20zweite=20Zahl=20hinzugef=C3=BCgt.=20B?= =?UTF-8?q?ei=20Fortlaufenden=20Berechnung,=20st=C3=BCrzte=20das=20Program?= =?UTF-8?q?m=20ab,=20wenn=20nur=20die=20Enter=20taste=20gedr=C3=BCckt=20wu?= =?UTF-8?q?rde.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Taschenrechner/ConsoleView.cs | 57 +++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/Taschenrechner/ConsoleView.cs b/Taschenrechner/ConsoleView.cs index 9976d3e..550af92 100644 --- a/Taschenrechner/ConsoleView.cs +++ b/Taschenrechner/ConsoleView.cs @@ -13,6 +13,7 @@ public ConsoleView(RechnerModel model) } public bool BenutzerWillBeenden { get; private set; } + private string textAusgabe = ""; public void HoleEingabenFuerErsteBerechnungVomBenutzer() { @@ -42,50 +43,43 @@ public void HoleEingabenFuerErsteBerechnungVomBenutzer() } } while (model.AktuellerFehler == Fehler.GrenzwertUeberschreitung); + textAusgabe = model.ErsteZahl + " " + model.Operation + " " + model.ZweiteZahl + " "; } public void HoleEingabenFuerFortlaufendeBerechnung() { string eingabe = HoleNaechsteAktionVomBenutzer(); - if (eingabe.ToUpper() == "FERTIG" || eingabe == "") + if (eingabe.ToUpper() == "FERTIG") { BenutzerWillBeenden = true; } else { model.ErsteZahl = model.Resultat; - model.ZweiteZahl = Convert.ToDouble(eingabe); + //model.ZweiteZahl = Convert.ToDouble(eingabe); + model.ZweiteZahl = eingabeAufZahlUeberpruefen(eingabe); + textAusgabe += model.Operation + " " + model.ZweiteZahl + " "; } } private string HoleNaechsteAktionVomBenutzer() { - Console.Write("Bitte gib eine weitere Zahl ein (FERTIG zum Beenden): "); - return Console.ReadLine(); + string eingabe = ""; + while (eingabe == "") + { + Console.Write("Bitte gib eine weitere Zahl ein (FERTIG zum Beenden): "); + eingabe = Console.ReadLine(); + } + return eingabe; } private double HoleZahlVomBenutzer() { string eingabe; - double zahl; Console.Write("Bitte gib eine Zahl für die Berechnung ein: "); eingabe = Console.ReadLine(); - - while (!double.TryParse(eingabe, out zahl)) - { - Console.WriteLine("Du musst eine gültige Gleitkommazahl eingeben!"); - Console.WriteLine("Neben den Ziffern 0-9 sind lediglich die folgenden Sonderzeichen erlaubt: ,.-"); - Console.WriteLine("Dabei muss das - als erstes Zeichen vor einer Ziffer gesetzt werden."); - Console.WriteLine("Der . fungiert als Trennzeichen an Tausenderstellen."); - Console.WriteLine("Das , ist das Trennzeichen für die Nachkommastellen."); - Console.WriteLine("Alle drei Sonderzeichen sind optional!"); - Console.WriteLine(); - Console.Write("Bitte gib erneut eine Zahl für die Berechnung ein: "); - eingabe = Console.ReadLine(); - } - - return zahl; + return eingabeAufZahlUeberpruefen(eingabe); } private string HoleOperatorVomBenutzer() @@ -110,6 +104,9 @@ private string HoleOperatorVomBenutzer() public void GibResultatAus() { + + Console.WriteLine(textAusgabe + "= " + model.Resultat); + /* switch (model.Operation) { case "+": @@ -132,6 +129,26 @@ public void GibResultatAus() Console.WriteLine("Du hast eine ungültige Auswahl der Operation getroffen."); break; } + */ + } + + public double eingabeAufZahlUeberpruefen(string eingabe) + { + double zahl; + while (!double.TryParse(eingabe, out zahl)) + { + Console.WriteLine("Du musst eine gültige Gleitkommazahl eingeben!"); + Console.WriteLine("Neben den Ziffern 0-9 sind lediglich die folgenden Sonderzeichen erlaubt: ,.-"); + Console.WriteLine("Dabei muss das - als erstes Zeichen vor einer Ziffer gesetzt werden."); + Console.WriteLine("Der . fungiert als Trennzeichen an Tausenderstellen."); + Console.WriteLine("Das , ist das Trennzeichen für die Nachkommastellen."); + Console.WriteLine("Alle drei Sonderzeichen sind optional!"); + Console.WriteLine(); + Console.Write("Bitte gib erneut eine Zahl für die Berechnung ein: "); + eingabe = Console.ReadLine(); + } + + return zahl; } } } From 977ae213d0a8cd431dfc6f40ee6d81948466d16d Mon Sep 17 00:00:00 2001 From: stegeiss Date: Thu, 15 Feb 2018 14:44:35 +0100 Subject: [PATCH 5/6] =?UTF-8?q?"C"=20f=C3=BCr=20Clear.=20Man=20kann=20wied?= =?UTF-8?q?er=20erneut=20rechnen=20ohne=20zu=20Beenden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Taschenrechner/AnwendungsController.cs | 7 ++++--- Taschenrechner/ConsoleView.cs | 29 ++++++++++++++++++++------ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Taschenrechner/AnwendungsController.cs b/Taschenrechner/AnwendungsController.cs index 593a701..5a62702 100644 --- a/Taschenrechner/AnwendungsController.cs +++ b/Taschenrechner/AnwendungsController.cs @@ -16,12 +16,13 @@ public AnwendungsController(ConsoleView view, RechnerModel model) public void Ausfuehren() { view.HoleEingabenFuerErsteBerechnungVomBenutzer(); - model.Berechne(); - view.GibResultatAus(); - view.HoleEingabenFuerFortlaufendeBerechnung(); while (!view.BenutzerWillBeenden) { + if(view.BenutzerWillNeuRechnen) + { + view.HoleEingabenFuerErsteBerechnungVomBenutzer(); + } model.Berechne(); view.GibResultatAus(); view.HoleEingabenFuerFortlaufendeBerechnung(); diff --git a/Taschenrechner/ConsoleView.cs b/Taschenrechner/ConsoleView.cs index 550af92..fa67a27 100644 --- a/Taschenrechner/ConsoleView.cs +++ b/Taschenrechner/ConsoleView.cs @@ -5,16 +5,18 @@ namespace Taschenrechner class ConsoleView { private RechnerModel model; + private string textAusgabe = ""; + public ConsoleView(RechnerModel model) { this.model = model; BenutzerWillBeenden = false; + BenutzerWillNeuRechnen = false; } - public bool BenutzerWillBeenden { get; private set; } - private string textAusgabe = ""; - + public bool BenutzerWillNeuRechnen { get; private set; } + public void HoleEingabenFuerErsteBerechnungVomBenutzer() { // TODO: Refactoring benötigt - Probleme: unübersichtlich, nicht DRY, nicht SLA! @@ -54,13 +56,27 @@ public void HoleEingabenFuerFortlaufendeBerechnung() { BenutzerWillBeenden = true; } + else if (eingabe.ToUpper() == "C") + { + BenutzerWillNeuRechnen = true; + } else { + if (eingabe.ToUpper() == "OPERATOR") + { + string altOperator = model.Operation; + model.Operation = HoleOperatorVomBenutzer(); + if ((altOperator == "+" || altOperator == "-") && (model.Operation == "*" || model.Operation == "/")) + { + textAusgabe = "(" + textAusgabe + ")" + " "; + } + Console.WriteLine("Bitte gib eine weitere Zahl ein"); + eingabe = eingabeAufZahlUeberpruefen(Console.ReadLine()).ToString(); + } model.ErsteZahl = model.Resultat; - //model.ZweiteZahl = Convert.ToDouble(eingabe); model.ZweiteZahl = eingabeAufZahlUeberpruefen(eingabe); textAusgabe += model.Operation + " " + model.ZweiteZahl + " "; - } + } } private string HoleNaechsteAktionVomBenutzer() @@ -68,8 +84,9 @@ private string HoleNaechsteAktionVomBenutzer() string eingabe = ""; while (eingabe == "") { - Console.Write("Bitte gib eine weitere Zahl ein (FERTIG zum Beenden): "); + Console.Write("Bitte gib eine weitere Zahl ein (FERTIG zum Beenden, OPERATION für neuen Operator oder C zum neustarten): "); eingabe = Console.ReadLine(); + } return eingabe; } From e1bcddc5974c65814df9db6872966baea8876031 Mon Sep 17 00:00:00 2001 From: stegeiss Date: Thu, 15 Feb 2018 14:52:02 +0100 Subject: [PATCH 6/6] BenutzerWIllNeuRechnen = false fehlte noch. und den beim Kontruktor BenutzerWIllNeuRechnen auf TRUE gesetzt. Somit wird eine weitere Zeile gespart im Controller --- Taschenrechner/AnwendungsController.cs | 2 -- Taschenrechner/ConsoleView.cs | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Taschenrechner/AnwendungsController.cs b/Taschenrechner/AnwendungsController.cs index 5a62702..a5e0b0c 100644 --- a/Taschenrechner/AnwendungsController.cs +++ b/Taschenrechner/AnwendungsController.cs @@ -15,8 +15,6 @@ public AnwendungsController(ConsoleView view, RechnerModel model) public void Ausfuehren() { - view.HoleEingabenFuerErsteBerechnungVomBenutzer(); - while (!view.BenutzerWillBeenden) { if(view.BenutzerWillNeuRechnen) diff --git a/Taschenrechner/ConsoleView.cs b/Taschenrechner/ConsoleView.cs index fa67a27..92912a9 100644 --- a/Taschenrechner/ConsoleView.cs +++ b/Taschenrechner/ConsoleView.cs @@ -12,13 +12,14 @@ public ConsoleView(RechnerModel model) { this.model = model; BenutzerWillBeenden = false; - BenutzerWillNeuRechnen = false; + BenutzerWillNeuRechnen = true; } public bool BenutzerWillBeenden { get; private set; } public bool BenutzerWillNeuRechnen { get; private set; } public void HoleEingabenFuerErsteBerechnungVomBenutzer() { + BenutzerWillNeuRechnen = false; // TODO: Refactoring benötigt - Probleme: unübersichtlich, nicht DRY, nicht SLA! // Eingabe und Validierung der ersten Zahl