Advertisement
Zidinjo

sdfsd

Nov 21st, 2014
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.09 KB | None | 0 0
  1. import java.util.InputMismatchException;
  2. import java.util.Scanner;
  3.  
  4. public class ExtendedCalculator
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 Scanner scanner1 = new Scanner(System.in);
  9.                 String zahl;
  10.                 double ergebnis = 0;
  11.                 double wert = 0;
  12.                 double wert2 = 0;
  13.                 char vorzeichen;
  14.                 boolean schleife = true;
  15.                 String eingabeHilfe;
  16.                 eingabeHilfe = gibEingabeHilfe();
  17.                 System.out.println(eingabeHilfe);
  18.                 System.out.println("");                                 // Für die Übersicht eine freie Zeile.
  19.                 System.out.print(wert);
  20.                
  21.                 while(schleife)
  22.                 {
  23.                         try
  24.                         {
  25.                                
  26.                        
  27.                                 wert = ergebnis;
  28.                                 zahl = scanner1.nextLine();
  29.                                 Scanner scanner2 = new Scanner(zahl.substring(1));
  30.                                 vorzeichen = zahl.charAt(0);
  31.                                
  32.                                 switch (vorzeichen)
  33.                                 {
  34.                                         case '+':              
  35.                                             wert2 = scanner2.nextDouble();
  36.                                                 ergebnis = wert + wert2;
  37.                                                 break;
  38.                                         case '-':
  39.                                             wert2 = scanner2.nextDouble();
  40.                                                 ergebnis = wert - wert2;
  41.                                                 break;
  42.                                         case '*':
  43.                                             wert2 = scanner2.nextDouble();
  44.                                                 ergebnis = wert * wert2;
  45.                                                 break;
  46.                                         case 'c':
  47.                                                 ergebnis = 0;
  48.                                                 break;
  49.                                         case 'e':
  50.                                                 System.out.println("Eingabe beendet.");
  51.                                                 schleife = false;
  52.                                                
  53.                                         case '/':
  54.                                             wert2 = scanner2.nextDouble();
  55.                                                 if(wert2 != 0)
  56.                                                 {
  57.                                                         ergebnis = wert / wert2;
  58.                                                 }
  59.                                                 else
  60.                                                 {
  61.                                                        
  62.                                                         throw new DivideByZeroException();
  63.                                                 }
  64.                                                 break;
  65.                                         default:
  66.                                                 throw new InvalidOperatorException();
  67.                                 }
  68.                                
  69.                                 if(schleife)
  70.                                 {
  71.                                         System.out.print(ergebnis);
  72.                                 }
  73.                         }
  74.                         catch (InputMismatchException eInputMismatch)
  75.                         {
  76.                                 System.out.println("Fehler - Bitte nur einen Operator und eine Zahl eingeben!");
  77.                         }
  78.                         catch (InvalidOperatorException eInvalid)
  79.                         {
  80.                                 System.out.println(eInvalid.getMessage());
  81.                         }
  82.                         catch (DivideByZeroException eZero)
  83.                         {
  84.                                 System.out.println(eZero.getMessage());
  85.                         }
  86.                         catch (Exception e)
  87.                         {
  88.                                 System.out.println("Error! - Allgemeine Exception");
  89.                                 e.printStackTrace();
  90.                                 schleife=false;
  91.                         }
  92.                 }
  93.         }
  94.         public static String gibEingabeHilfe ()
  95.         {
  96.                 String hilfe = "Bitte geben Sie einen Operator und eine Zahl ein.\nBeenden mit 'e', Zahl auf 0 setzen mit 'c'.\nMögliche Operatoren: '+', '-', '*', '/'";
  97.                 return hilfe;
  98.         }
  99. }
  100.  
  101.  
  102. class DivideByZeroException extends Exception
  103. {
  104.     DivideByZeroException()
  105.     {
  106.         super("Error! - Man darf nicht durch 0 teilen!");
  107.     }
  108. }
  109.  
  110. class InvalidOperatorException extends Exception
  111. {
  112.         InvalidOperatorException()
  113.         {
  114.                 super("Ein ungültiger Operator wurde eingegeben!");
  115.         }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement