【发布时间】:2020-08-01 16:55:55
【问题描述】:
我正在创建一个计算器,其中每个计算器的函数都必须位于一个单独的类中,并使用扫描仪输入从 main 方法调用。
1.添加
2.减法
3.乘法
4.部门
5.正方形
6.电源
7.Mod操作
8.阶乘
0.退出
我必须创建一个对象调用的每个方法。该计算器需要一个主类(具有 main () 方法)和一个具有上述计算方法的用户定义类。程序必须让用户选择一个操作(上述计算之一)和操作数(数字)。有些计算需要两个操作数。 (例如 A + B、AB)有些计算需要一个操作数。 (例如 A2、N!)附加功能:
•让计算功能一直持续到用户想要退出这个程序。
•当一个计算完成后,让用户选择另一个操作。
•当用户选择 END 选项时,该程序终止。
•执行所有操作。不要使用 Java 库数学方法。
我有一个使用 switch 语句和 case 的程序的代码,但是我们的班级甚至还没有学到任何东西。在过去的两天里,我在网上到处寻找,只是无法弄清楚,所以如果解决方案很简单,我深表歉意,并提前感谢大家的帮助。到目前为止,这是我的程序的代码。
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int choice;
do
{
System.out.println("[1] Add ");
System.out.println("[2] Subtract ");
System.out.println("[3] Multiply ");
System.out.println("[4] Division ");
System.out.println("[5] Square ");
System.out.println("[6] Power ");
System.out.println("[7] Mod Operation ");
System.out.println("[8] Factorial ");
System.out.println("[0] Quit ");
System.out.println("Please enter your choice: ");
choice = s.nextInt();
int num1, num2;
switch(choice)
{
case 1 : System.out.println("Enter two numbers to add: ");
num1 = s.nextInt();
num2 = s.nextInt();
System.out.println("The sum of " + num1 + " and " + num2 +
" is: " + add(num1, num2));
break;
case 2 : System.out.println("Enter two numbers to subtract: ");
num1 = s.nextInt();
num2 = s.nextInt();
System.out.println("The difference of " + num1 + " and " + num2 +
" is: " + diff(num1, num2));
break;
case 3 : System.out.println("Enter two numbers to multiply: ");
num1 = s.nextInt();
num2 = s.nextInt();
System.out.println("The product of " + num1 + " and " + num2 +
" is: " + prod(num1, num2));
break;
case 4 : System.out.println("Enter two numbers to divide: ");
num1 = s.nextInt();
num2 = s.nextInt();
System.out.println("The quotient of " + num1 + " and " + num2 +
" is: " + quo(num1, num2));
break;
case 5 : System.out.println("A number to square: ");
num1 = s.nextInt();
System.out.println("The square of " + num1 + " is: " + square(num1));
break;
case 6 : System.out.println("Enter the base and the exponent: ");
num1 = s.nextInt();
num2 = s.nextInt();
System.out.println("The power of " + num1 + " to the " + num2 +
"th power is: " + power(num1, num2));
break;
case 7 : System.out.println("Enter two numbers to get the interger remainder of (modulo): ");
num1 = s.nextInt();
num2 = s.nextInt();
System.out.println("The modulo of " + num1 + " and " + num2 +
" is: " + mod(num1, num2));
break;
case 8 : System.out.println("Enter a number to get the factorial of: ");
num1 = s.nextInt();
System.out.println("The factorial of " + num1 + " is: " + factorial(num1));
break;
case 0: System.out.println("Thank you for using my program...good bye!");
System.exit(0);
}
}
while(choice != 0);
s.close();
}
public static int add(int num1, int num2)
{
return num1 + num2;
}
public static int diff(int num1, int num2)
{
return num1 - num2;
}
public static int prod(int num1, int num2)
{
return num1 * num2;
}
public static double quo(int num1, int num2)
{
return (double)num1 / num2;
}
public static int mod(int num1, int num2)
{
return num1 % num2;
}
public static long power(int base, int exp)
{
long result = 1;
while (exp != 0)
{
result *= base;
--exp;
}
return result;
}
public static int square(int num)
{
return num * num;
}
public static int factorial(int base)
{
if (base == 0)
return 1;
else
return(base * factorial(base - 1));
}
}
【问题讨论】:
-
问题在哪里?
-
@user3341564 问题是如何使用用户的扫描仪输入从与主方法分开的类中调用计算器方法。所以比如提示用户有9个选项,无论用户选择哪个选项,程序都会使用其他类中对应的方法来完成功能。
标签: java methods java.util.scanner calculator