Java Simple Engli sh Калькулятор, выходной выпуск - PullRequest
0 голосов
/ 04 мая 2020

Я пишу программу калькулятора, которая принимает входные данные от 0 до 9 и выводит результаты как в числовом, так и в простом английском языке sh (Пример: два плюс три равны 5). Я получил его, чтобы можно было распечатать результат словами, но теперь я застрял на том, как заставить его распечатать исходную задачу в числовой форме. Выходные данные должны включать как результат в числах, так и в словах.

Числа уже были преобразованы в строки с помощью оператора switch, но есть ли возможность распечатать исходную проблему? Если бы не я должен был полностью реструктурировать это вместо этого? Буду признателен за любую помощь, я застрял на этом некоторое время.

Вот мой код

import java.util.Scanner;
public class Project {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        char operation;
        int num1, num2;

        //Asks for user to input first number
        System.out.println("Please enter the first number (0-9)");
        num1 = input.nextInt();

        //Asks user for an operation
        System.out.println("Please enter the type of operation that you would like to perform");
        operation = input.next().charAt(0);

        //Asks user to input the second number
        System.out.println("Please enter the second number (0-9)");
        num2 = input.nextInt();


        //Limits the numbers to the range of 0-9 
        if(num1 > 9 || num2 > 9){

            System.out.println("Invalid Digit!!");
        System.exit(0);}

        //An array that converts number into a string
        String num[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
        switch(operation){

            case '-': //Subtraction conversion
                System.out.println(num[num1]+" minus "+num[num2] + " is " + (num1-num2));
                break;

            case '+':   //Addition conversion
                System.out.println(num[num1]+" plus "+num[num2] + " is " + (num1+num2));
                break;   

            case '*':   //Multipication conversion
                System.out.println(num[num1]+" multiplied by "+num[num2] + " is " + (num1*num2));
                break;

            case '/': //Division conversion
                System.out.println(num[num1]+" divided by "+num[num2] + " is " + (num1/num2));
                break;

            case '^':   //Exponentiation conversion

                if(num2 == 0){ //checks to see if the second number entered is 0

                System.out.println("Error: Cannot divide by Zero"); //Divide by Zero error message
                break;}

                System.out.println(num[num1]+" to the power of "+num[num2] + " is " + Math.pow(num1,num2));
                break;

            default:
        System.out.println("Error: Invalid Operation Entered"); }


    }
}

Ответы [ 3 ]

1 голос
/ 04 мая 2020

Это очень просто, я думаю, вы запутались. Рассмотрим следующие моменты:

  • У вас есть оригинальные номера, сохраненные в num1 и num2, поэтому, если вы хотите отобразить оригинальные числа в целочисленной форме, просто используйте num1 вместо num[num1]
  • Вы проверяете zero division при поиске экспоненты. Вы должны перенести эту проверку в регистр деления.

Замените свой switch следующим образом:

switch(operation){

    case '-': //Subtraction conversion
        System.out.println(num[num1]+" minus "+num[num2] + " is " + (num1-num2));
        System.out.println(num1+" - "+num2 + " = " + (num1-num2));
        break;

    case '+':   //Addition conversion
        System.out.println(num[num1]+" plus "+num[num2] + " is " + (num1+num2));
        System.out.println(num1+" + "+num2 + " = " + (num1+num2));
        break;   

    case '*':   //Multipication conversion
        System.out.println(num[num1]+" multiplied by "+num[num2] + " is " + (num1*num2));
        System.out.println(num1+" * "+num2 + " = " + (num1*num2));
        break;

    case '/': //Division conversion
        if(num2 == 0){ //checks to see if the second number entered is 0

            System.out.println("Error: Cannot divide by Zero"); //Divide by Zero error message
            break;
        }
        System.out.println(num[num1]+" divided by "+num[num2] + " is " + (num1/num2));
        System.out.println(num1+" / "+num2 + " = " + (num1/num2));
        break;

    case '^':   //Exponentiation conversion
        System.out.println(num[num1]+" to the power of "+num[num2] + " is " + Math.pow(num1,num2));
        System.out.println(num1+" ^ "+num2 + " = " + Math.pow(num1,num2));
        break;

    default:
        System.out.println("Error: Invalid Operation Entered"); 
}

0 голосов
/ 04 мая 2020

это то, что вы ищете? Например, для 9 + 9 вы получите:

девять плюс девять - это 18
9 + 9 = 18

import java.util.Scanner;
public class Project {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        char operation;
        int num1, num2;

        //Asks for user to input first number
        System.out.println("Please enter the first number (0-9)");
        num1 = input.nextInt();

        //Asks user for an operation
        System.out.println("Please enter the type of operation that you would like to perform");
        operation = input.next().charAt(0);

        //Asks user to input the second number
        System.out.println("Please enter the second number (0-9)");
        num2 = input.nextInt();


        //Limits the numbers to the range of 0-9 
        if(num1 > 9 || num2 > 9){

            System.out.println("Invalid Digit!!");
        System.exit(0);}

        //An array that converts number into a string
        String num[] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
        switch(operation){

            case '-': //Subtraction conversion
                System.out.println(num[num1]+" minus "+num[num2] + " is " + (num1-num2));
                System.out.println(num1+" "+operation + "  "+num2+ " = "+(num1 - num2)); 
                break;

            case '+':   //Addition conversion
                System.out.println(num[num1]+" plus "+num[num2] + " is " + (num1+num2));
                System.out.println(num1+" "+operation + "  "+num2+ " = "+(num1 + num2)); 
                break;   

            case '*':   //Multipication conversion
                System.out.println(num[num1]+" multiplied by "+num[num2] + " is " + (num1*num2));
                System.out.println(num1+" "+operation + "  "+num2+ " = "+(num1 * num2)); 
                break;

            case '/': //Division conversion
                System.out.println(num[num1]+" divided by "+num[num2] + " is " + (num1/num2));
                System.out.println(num1+" "+operation + "  "+num2+ " = "+(num1 / num2)); 
                break;

            case '^':   //Exponentiation conversion

                if(num2 == 0){ //checks to see if the second number entered is 0

                System.out.println("Error: Cannot divide by Zero"); //Divide by Zero error message
                break;}

                System.out.println(num[num1]+" to the power of "+num[num2] + " is " + Math.pow(num1,num2));
                System.out.println(num1+" "+operation + "  "+num2+ " = "+(Math.pow(num1,num2))); 
                break;

            default:
        System.out.println("Error: Invalid Operation Entered"); }


    }
}
0 голосов
/ 04 мая 2020

Посмотрите, помогут ли приведенные ниже операторы печати

case '-': //Subtraction conversion
            System.out.println(num[num1]+" minus "+num[num2] + " is " + (num1-num2));
            System.out.println(num1+" "+operation + "  "+num2+ "="+(num1 - num2));
            break;

case '+':   //Addition conversion
            System.out.println(num[num1]+" plus "+num[num2] + " is " + (num1+num2));
            System.out.println(num1+" "+operation + "  "+num2+ "="+(num1 + num2));  
            break;
...