コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: Bruch.cs プロジェクト: Muslix/Taschenrechner
        public double UmrechnungInDezimal(Bruch ergebnisBruch)
        {
            var ergebnisDezimal = ergebnisBruch.Zähler / ergebnisBruch.Nenner;

            return(ergebnisDezimal);
        }
コード例 #4
0
ファイル: Parser.cs プロジェクト: Muslix/Taschenrechner
        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));
        }