Merge pull request 'Alpha to main' (#1) from Alpha into master

Reviewed-on: https://kitsunehosting.net/gitea/chris/JavaCalc/pulls/1
This commit is contained in:
chris 2021-03-18 13:00:32 -04:00
commit 52fadcd2f2
3 changed files with 85 additions and 42 deletions

58
src/com/company/Calc.java Normal file
View File

@ -0,0 +1,58 @@
package com.company;
public class Calc {
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);
return add1 + add2;
}
public static double sub(String num1, String num2){
double sub1 = Double.parseDouble(num1);
double sub2 = Double.parseDouble(num2);
return sub1 - sub2;
}
public static double mul(String num1, String num2){
double mul1 = Double.parseDouble(num1);
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);
if (div2 == 0 || div1 == 0){
print("cant divide by zero");
print("error code:");
return -1;
}
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;
}
}
}

View File

@ -4,65 +4,50 @@ import java.util.Scanner;
public class Main {
@SuppressWarnings("InfiniteLoopStatement")
public static void main(String[] args)
{
public static void main(String[] args) {
double total = 0;
String num1;
String num2;
while (true) {
Scanner in = new Scanner(System.in);
print("Enter first number: ");
String num1 = in.nextLine();
print("please enter second number");
String num2 = in.nextLine();
print("Inputs complete");
print("Please input operator");
print("+ , - , * or x , /");
System.out.println("Enter first number: ");
num1 = in.nextLine();
if (num1.equals("ans") || num1.equals("total")) {
num1 = String.valueOf(total);
}
System.out.println("please enter second number");
num2 = in.nextLine();
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 , /");
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 "+" -> {
int total = add(num1, num2);
total = Calc.add(num1, num2);
System.out.println(total);
}
case "-" -> {
int total = sub(num1, num2);
total = Calc.sub(num1, num2);
System.out.println(total);
}
case "*", "x" -> {
int total = mul(num1, num2);
total = Calc.mul(num1, num2);
System.out.println(total);
}
case "/" -> {
int total = div(num1, num2);
total = Calc.div(num1, num2);
System.out.println(total);
}
default -> print("Unexpected value: " + op + " ...restarting program");
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");
}
}
}
private static void print(String text){
System.out.println(text);
}
private static int add(String num1, String num2){
int add1 = Integer.parseInt(num1);
int add2 = Integer.parseInt(num2);
return add1 + add2;
}
private static int sub(String num1, String num2){
int sub1 = Integer.parseInt(num1);
int sub2 = Integer.parseInt(num2);
return sub1 - sub2;
}
private static int mul(String num1, String num2){
int mul1 = Integer.parseInt(num1);
int mul2 = Integer.parseInt(num2);
return mul1 * mul2;
}
private static int div(String num1, String num2){
int div1 = Integer.parseInt(num1);
int div2 = Integer.parseInt(num2);
if (div2 == 0 || div1 == 0){
print("cant divide by zero");
return -1;
}
return div1 / div2;
}
}