diff --git a/out/production/untitled/com/company/Main.class b/out/production/untitled/com/company/Main.class index 34f443d..eaf6313 100644 Binary files a/out/production/untitled/com/company/Main.class and b/out/production/untitled/com/company/Main.class differ diff --git a/src/com/company/Calc.java b/src/com/company/Calc.java index 8e680e6..63ca972 100644 --- a/src/com/company/Calc.java +++ b/src/com/company/Calc.java @@ -2,14 +2,10 @@ package com.company; public class Calc { - //constructor of num variables - int num1; - int num2; - - //math functions - public static void print(String text){ - System.out.println(text); + public static void print(String text) { //this is a small function to makes it easier to print out to terminal + System.out.println(text); //similar to python output } + //math functions public static double add(String num1, String num2){ double add1 = Double.parseDouble(num1); double add2 = Double.parseDouble(num2); @@ -25,6 +21,7 @@ public class Calc { double mul2 = Double.parseDouble(num2); return mul1 * mul2; } + public static double div(String num1, String num2){ double div1 = Double.parseDouble(num1); double div2 = Double.parseDouble(num2); @@ -35,5 +32,27 @@ public class Calc { } return div1 / div2; } + public static String mulRound(String num1, String num2){ + double mul1 = Double.parseDouble(num1); + double mul2 = Double.parseDouble(num2); + return Math.round(mul1 * mul2) + "rounded"; + } + public static String divRemain(String num1, String num2){ + double div1 = Double.parseDouble(num1); + double div2 = Double.parseDouble(num2); + if (div2 == 0){ + print("cant divide by zero"); + print("error code:"); + return "-1"; + } + else if (div1 == 0) + return "0"; + else { + int div1I = (int) div1; + int div2I = (int) div2; + int divT = div1I / div2I; + return divT + " with remainder of: " + div1 % div2; + } + } } diff --git a/src/com/company/Main.java b/src/com/company/Main.java index 564d81b..fc52820 100644 --- a/src/com/company/Main.java +++ b/src/com/company/Main.java @@ -9,7 +9,6 @@ public class Main { String num1; String num2; while (true) { - Scanner in = new Scanner(System.in); System.out.println("Enter first number: "); num1 = in.nextLine(); @@ -21,30 +20,34 @@ public class Main { if (num2.equals("ans") || num2.equals("total")) { num2 = String.valueOf(total); } - System.out.println("Inputs complete"); - System.out.println("Please input operator"); - System.out.println("+ , - , * or x , /"); - String op = in.nextLine(); + System.out.println("Inputs complete"); + System.out.println("Please input operator"); + System.out.println("+ , - , * or x , /"); + System.out.println("'for rounded multiplication: use '*r', 'Xr' or 'xr'"); + System.out.println("'for remainder division: use '/R' or '/r'"); + String op = in.nextLine(); - switch (op) { - case "+" -> { - total = Calc.add(num1, num2); - System.out.println(total); - } - case "-" -> { - total = Calc.sub(num1, num2); - System.out.println(total); - } - case "*", "x" -> { - total = Calc.mul(num1, num2); - System.out.println(total); - } - case "/" -> { - total = Calc.div(num1, num2); - System.out.println(total); - } - default -> System.out.println("Unexpected value: '" + op + "' ...restarting program"); + switch (op) { + case "+" -> { + total = Calc.add(num1, num2); + System.out.println(total); } + case "-" -> { + total = Calc.sub(num1, num2); + System.out.println(total); + } + case "*", "x" -> { + total = Calc.mul(num1, num2); + System.out.println(total); + } + case "/" -> { + total = Calc.div(num1, num2); + System.out.println(total); + } + case "*/", "xR", "xr" -> System.out.println(Calc.mulRound(num1, num2)); + case "/R", "/r" -> System.out.println(Calc.divRemain(num1, num2)); + default -> System.out.println("Unexpected value: '" + op + "' ...restarting program"); + } } } } \ No newline at end of file