public void AuswahlRechnung(Bruch zahlLinks, Bruch zahlRechts, Operand aktion) { Bruch ergebnis = null; switch (aktion) { case Operand.Add: ergebnis = zahlLinks + zahlRechts; break; case Operand.Sub: ergebnis = zahlLinks - zahlRechts; break; case Operand.Multi: ergebnis = zahlLinks * zahlRechts; break; case Operand.Teilen: ergebnis = zahlLinks / zahlRechts; break; case Operand.Ungültig: menü.Fehler(); break; default: throw new Exception($"{aktion} wird nicht unterstützt"); } if (ergebnis == null) { menü.ErgebnisError(); NutzerEingabe(); } menü.AusgabeErgebnis(ergebnis.ToString()); NutzereingabeWeitereAuswahl(ergebnis); }
public void NutzerEingabe(Bruch bruchLinks) { var parser = new Parser(); Bruch bruchRechts; Operand operand; string eingabe; string eingabeOperator; do { menü.Operator(); eingabeOperator = menü.NutzerEingabe(); } while (!parser.IstOperator(eingabeOperator)); do { menü.Zahl2(); eingabe = menü.NutzerEingabe(); } while (!parser.TryParseBruch(eingabe, out bruchRechts)); operand = EingabeMap.TryGetValue(eingabeOperator, out var value) ? value : Operand.Ungültig; AuswahlRechnung(bruchLinks, bruchRechts, operand); }
public double UmrechnungInDezimal(Bruch ergebnisBruch) { var ergebnisDezimal = ergebnisBruch.Zähler / ergebnisBruch.Nenner; return(ergebnisDezimal); }
private static Bruch ParsePeriode(Match match) { var vorKomma = match.Groups["VorKomma"].Value; var nachKomma = match.Groups["NachKomma"].Value; var periode = match.Groups["Periode"].Value; if (!string.IsNullOrEmpty(periode)) { return(Bruch.Parse(vorKomma, nachKomma, periode)); } return(string.IsNullOrEmpty(periode) && !string.IsNullOrEmpty(nachKomma) ? Bruch.Parse(vorKomma, nachKomma) : Bruch.Parse(vorKomma)); }