2015-10-05 61 views
-2

我有一个任务来编程C#Consolecalculator。什么是C#中的“88型”,我该如何使用它?

我的问题是我没有什么“88型”,以及如何使用它。我必须使用它来保证用户只能使用+,-,*, /

以下是我的代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace gmaare_consolen_rechner_1._0 
{ 
    class Program 
    { 
     public static void Main(string[] args) 
     { 
      string jaNein, rechenzeichen; 

      do { 
       int zahl_1 = Convert.ToInt32(null); 
       zahl_1 = (Fehlerklasse.fehlerzahl_1(zahl_1)); 

       rechenzeichen = Console.ReadLine(); 

       int zahl_2 = Convert.ToInt32(null); 
       zahl_2 = (Fehlerklasse.fehlerzahl_2(zahl_2)); 

       var ergebnis = Ergebnis.rechenmethode(zahl_1, zahl_2, rechenzeichen); 
       Console.WriteLine(ergebnis); 


       Console.WriteLine("Möchten sie erneut eine Rechnung stellen ? (ja/nein)"); 
       do 
       { 
        jaNein = Console.ReadLine(); 
        if (!(jaNein == "ja" | jaNein == "nein")) 
        { 
         Console.WriteLine("Ungültige Antwort, bitte wählen sie (ja/nein)"); 
        } 
       } 
       while (!(jaNein == "ja" | jaNein == "nein")); 

       Console.Clear(); 
      } 
      while (jaNein == "ja"); 
     } 
    } 
} 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace gmaare_consolen_rechner_1._0 
{ 
    class Rechner 
    { 
     Fehlerklasse fehlerbehen = new Fehlerklasse(); 

     public int plus(int zahl_1, int zahl_2) 
     { 
      return zahl_1 + zahl_2; 
     } 

     public int minus(int zahl_1, int zahl_2) 
     { 
      return zahl_1 - zahl_2; 
     } 

     public int mal(int zahl_1, int zahl_2) 
     { 
      return zahl_1 * zahl_2; 
     } 

     public int geteiltdurch(int zahl_1, int zahl_2) 
     { 
      if(zahl_2!= 0) 
      { 
       return zahl_1/zahl_2; 
      } 
      else 
      { 
       Console.WriteLine("Die Division durch 0 ist verboten!"); 
       return zahl_2; 
      } 
     } 
    } 
} 

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace gmaare_consolen_rechner_1._0 
{ 
    class Ergebnis 
    { 
     public static int rechenmethode(int zahl_1, int zahl_2, string rechenzeichen) 
     { 
      var ergebnis = 0; 

      Rechner rechnen = new Rechner(); 

      switch (rechenzeichen) 
      { 
       case "+": 
        ergebnis = rechnen.plus(zahl_1, zahl_2); 

        break; 
       case "-": 
        ergebnis = rechnen.minus(zahl_1, zahl_2); 

        break; 
       case "*": 
        ergebnis = rechnen.mal(zahl_1, zahl_2); 

        break; 
       case "/": 
        ergebnis = rechnen.geteiltdurch(zahl_1, zahl_2); 
        break; 
      } 

      return ergebnis; 
     } 
    } 
} 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace gmaare_consolen_rechner_1._0 
{ 
    class Fehlerklasse 
    { 
     public static int fehlerzahl_1(int zahl_1) 
     { 
      bool tryAgain = true; 
      while (tryAgain) 
      { 
       try 
       { 
        zahl_1 = Convert.ToInt32(Console.ReadLine()); 
        tryAgain = false; 
       } 
       catch (FormatException) 

       { 
        Console.WriteLine("Geben sie eine gültige Zahl ein!"); 
       } 
       catch (OverflowException) 
       { 
        Console.WriteLine("Die Zahl ist zu gross, geben sie eine gültige Zahl ein!"); 
       } 
      } 
      return zahl_1; 
     } 

     public static int fehlerzahl_2(int zahl_2) 
     { 
      bool tryAgain = true; 
      while (tryAgain) 
      { 
       try 
       { 
        zahl_2 = Convert.ToInt32(Console.ReadLine()); 
        tryAgain = false; 
       } 
       catch (FormatException) 
       { 
        Console.WriteLine("Geben sie eine gültige Zahl ein!"); 
       } 
       catch (Exception) 
       { 
        Console.WriteLine("Die Zahl ist zu gross, geben sie eine gültige Zahl ein!"); 
       } 
      } 
      return zahl_2; 
     } 
    } 
} 
+2

你在哪里使用魔术'88'类型?我没看到它。 (我的德语理解不好,但并不坏)。唯一知道的'88型'不是中国的主战坦克就是中国的狙击步枪。同时请阅读[mcve]并考虑如何将代码降低到产生您所看到的问题所需的最低限度。 – theB

+1

我知道88的唯一含义是第三帝国之一,我怀疑你的意思。 – HimBromBeere

+0

也许我们的任务是模拟TI-88计算器?还有一个卡西欧88. http://www.datamath.org/Sci/Slanted/TI-88.htm http://www.casio-europe.com/euro/calc/tax/ms88eco/ – gdir

回答

0

你有太多保证用户可以使用运营商+, - ,*,/是这样吗? 我的建议是,你在你的“Fehlerklasse”中添加一个方法来检查操作员(Rechenzeichen)。

public static string fehlerrechenzeichen(string rechenzeichen) 
    { 
     bool tryAgain = true; 
     while (tryAgain) 
     { 
      try 
      { 
       rechenzeichen = Console.ReadLine(); 
       switch (rechenzeichen) 
       { 
        case "+": 
         break; 
        case "-": 
         break; 
        case "*": 
         break; 
        case "/": 
         break; 
        default: 
         throw new FormatException("Geben sie eine gültiges Rechenzeichen ein!"); 
       } 
       tryAgain = false; 
      } 
      catch (FormatException ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 
     } 
     return rechenzeichen; 
    } 
+0

谢谢你的工作很不错! –

相关问题