コード例 #1
0
        private String CreateErrorString(CalcInput calc)
        {
            String errorString   = "";
            int    errorPosition = calc.GetErrorPosition();
            String errorInput    = calc.GetOriginArray()[errorPosition];

            errorString += "Fehler bei der Eingabe: " + errorInput + " ";
            errorString += "Vollständiger Term: ";

            foreach (string str in calc.GetOriginArray())
            {
                errorString += str + " ";
            }
            return(errorString);
        }
コード例 #2
0
        private void StartCalc()
        {
            while (true)
            {
                String term = inputField.ReadInput();
                term = term.ToUpper();
                String originInput = term;

                //Wenn nicht das Kürzel zum ändern der Ausgabemenge eingegeben wurde, berechne den Term
                if (ChangeSolutionNumber(term))
                {
                    //Falls kein ANS eingegeben wurde oder ANS eingegeben wurde, nachdem ein Ergebnis gespeichert wurde.
                    if (AnsFunction(ref term))
                    {
                        CalcInput calc      = new CalcInput(term);
                        BasicCalc startCalc = new BasicCalc();
                        Number    solNumber = new Number();

                        String output;
                        if (calc.GetError())
                        {
                            output = CreateErrorString(calc);
                        }
                        else
                        {
                            String[] dezArray = calc.GetCalcArray();
                            long     solution = startCalc.GetSolution(dezArray);

                            solNumber.SetDecNumber(solution);
                            output = Convert.ToString(solution);
                        }
                        solField.SaveAndClearInput(output, calc.GetError());
                        solField.WriteInfoText("Eingabe: " + originInput, false);
                        solField.WriteInfoText(String.Join("", calc.GetCalcArray()) + "=", false);
                        solField.WriteInfoText(output, false);

                        if (this.allSolutions)
                        {
                            solNumber.ToOtherSystems();
                            WriteAllSolutions(solNumber);
                        }
                    }
                    //Falls ANS eingegeben wurde, obwohl noch keine erfolgreiche Berechnung durchgeführt wurde.
                    else
                    {
                        solField.SaveAndClearInput("", true);
                        solField.WriteInfoText("ANS nicht möglich, da kein Ergebnis gespeichert wurde.", false);
                    }
                }
                //Wenn das Kürzel zum Ändern des Ausgabesystems eingegeben wurde
                else
                {
                    solField.SaveAndClearInput("", false);
                    String output;
                    if (this.allSolutions)
                    {
                        output = "Ausgabe zu allen Zahlensystemen geändert.";
                    }
                    else
                    {
                        output = "Ausgabe zu nur dezimal geändert.";
                    }
                    solField.WriteInfoText(output, false);
                }
            }
        }