Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Locale;
- import java.util.Scanner;
- /** Klasa realizująca prosty kalkulator
- *
- * @author Kamil Bałaban
- *
- */
- public class Calculator {
- /** Metoda wykonująca operację na argumench
- *
- * @param operation przyjmuje operator wykonywanej operacji
- * @param a przyjmuje pierwszą wartość wykonywanego działania
- * @param b przyjmuje drugą wartość wykonywanego działania
- * @return zwraca wynik operacji
- */
- public double Calculate(String operation, double a, double b) {
- switch(operation) {
- case "+":
- return a + b;
- case "-":
- return a - b;
- case "*":
- return a * b;
- case "/":
- if(b == 0) {
- throw new IllegalArgumentException("Nie można obliczyć wyniku - nie można dzielić przez 0!");
- }
- else {
- return a / b;
- }
- case "%":
- return a % b;
- case "^":
- return Math.pow(a, b);
- case "v":
- if(a < 0) {
- throw new IllegalArgumentException("Nie można obliczyć wyniku - nie może być ujemna liczba pod pierwiastkiem!");
- }
- return Math.pow(a, 1.0/b);
- default:
- throw new IllegalArgumentException("Nie można obliczyć wyniku - nieprawidłowy operator działania!");
- }
- }
- /** Statyczna metoda main
- *
- * @param args przyjmuje argumenty podane z linii wywołania programu
- * pobiera argumenty z tablicy args lub od użytkownika i wykonuje działanie
- */
- public static void main(String[] args) {
- Calculator calculator = new Calculator(); //tworzy nowy obiekt typu Calculator
- Scanner scanner = new Scanner(System.in); //
- scanner.useLocale(Locale.US); //ustawia kropkę jako separator liczb rzeczywistych
- String arg0;
- double arg1, arg2, result;
- if(args.length == 0) {
- System.out.println("Podaj działanie w którym na pierwszym miejscu znajduje się "
- + "operator działania a następnie dwie liczby, każdy w nowej linii");
- arg0 = scanner.next();
- arg1 = scanner.nextDouble();
- arg2 = scanner.nextDouble();
- }
- else {
- arg0 = args[0];
- arg1 = Double.parseDouble(args[1]);
- arg2 = Double.parseDouble(args[2]);
- }
- result = calculator.Calculate(arg0, arg1, arg2);
- System.out.println(result);
- scanner.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement