Advertisement
GieeF

PO - Lab1

Feb 26th, 2020
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.19 KB | None | 0 0
  1. import java.util.Locale;
  2. import java.util.Scanner;
  3.  
  4. /** Klasa realizująca prosty kalkulator
  5.  *
  6.  * @author Kamil Bałaban
  7.  *
  8.  */
  9. public class Calculator {
  10.  
  11.     /** Metoda wykonująca operację na argumench
  12.      *
  13.      * @param operation przyjmuje operator wykonywanej operacji
  14.      * @param a przyjmuje pierwszą wartość wykonywanego działania
  15.      * @param b przyjmuje drugą wartość wykonywanego działania
  16.      * @return zwraca wynik operacji
  17.      */
  18.     public double Calculate(String operation, double a, double b) {
  19.        
  20.         switch(operation) {
  21.         case "+":
  22.             return a + b;
  23.         case "-":
  24.             return a - b;
  25.         case "*":
  26.             return a * b;
  27.         case "/":
  28.             if(b == 0) {
  29.                 throw new IllegalArgumentException("Nie można obliczyć wyniku - nie można dzielić przez 0!");
  30.             }
  31.             else {
  32.                 return a / b;
  33.             }
  34.         case "%":
  35.             return a % b;
  36.         case "^":
  37.             return Math.pow(a, b);
  38.         case "v":
  39.             if(a < 0) {
  40.                 throw new IllegalArgumentException("Nie można obliczyć wyniku - nie może być ujemna liczba pod pierwiastkiem!");
  41.             }
  42.             return Math.pow(a, 1.0/b);
  43.         default:
  44.             throw new IllegalArgumentException("Nie można obliczyć wyniku - nieprawidłowy operator działania!");
  45.         }
  46.     }
  47.    
  48.     /** Statyczna metoda main
  49.      *
  50.      * @param args przyjmuje argumenty podane z linii wywołania programu
  51.      * pobiera argumenty z tablicy args lub od użytkownika i wykonuje działanie
  52.      */
  53.     public static void main(String[] args) {
  54.  
  55.         Calculator calculator = new Calculator();   //tworzy nowy obiekt typu Calculator
  56.         Scanner scanner = new Scanner(System.in);   //
  57.         scanner.useLocale(Locale.US);   //ustawia kropkę jako separator liczb rzeczywistych
  58.        
  59.         String arg0;
  60.         double arg1, arg2, result;
  61.        
  62.         if(args.length == 0) {
  63.             System.out.println("Podaj działanie w którym na pierwszym miejscu znajduje się "
  64.                     + "operator działania a następnie dwie liczby, każdy w nowej linii");
  65.             arg0 = scanner.next();
  66.             arg1 = scanner.nextDouble();
  67.             arg2 = scanner.nextDouble();
  68.         }
  69.         else {
  70.             arg0 = args[0];
  71.             arg1 = Double.parseDouble(args[1]);
  72.             arg2 = Double.parseDouble(args[2]);
  73.         }
  74.        
  75.         result = calculator.Calculate(arg0, arg1, arg2);
  76.        
  77.         System.out.println(result);
  78.        
  79.         scanner.close();
  80.     }
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement