应用程序应对输入的两个数字执行所选的菜单数学运算并显示答案。您必须使用每个数学运算的方法,并且必须使用决策来选择应该执行的方法。 如果未输入正确的菜单编号,应用程序将显示错误消息。这是一个决定,其中1-5是有效选择,其他一切都是“无效”。 申请不得允许除以零。如果第二个数字变量为零,则不执行除法运算,而是显示错误消息。
我编写了代码,但程序显示以下错误: 1.方法AddNumber没有重载需要0个参数。 switch语句中的所有数学运算方法都显示此错误。 2.对于DivideNumber方法 - 并非所有代码路径都返回值
class Program
{
static void Main(string[] args)
{
double n1 = Convert.ToDouble(Console.ReadLine());
//string n2 = "";
double n2 = Convert.ToDouble(Console.ReadLine());
Console.Clear();
Console.WriteLine("Simple Calculator");
Console.WriteLine("\t 1) ADD");
Console.WriteLine("\t 2) SUBTRACT");
Console.WriteLine("\t 3) MULTIPLY");
Console.WriteLine("\t 4) DIVIDE");
Console.WriteLine("\t 5) QUIT");
Console.Write("Enter Selection: ");
int menuSelection =0;
// double total;
// menuSelection = Console.ReadLine();
switch (menuSelection)
{
case 1:
// total = Convert.ToInt32(AddNumbers("Results:"));
Console.WriteLine(AddNumbers(n1,n2));
break;
case 2:
Console.WriteLine(SubtractNumber(n1,n2));
break;
case 3:
Console.WriteLine(MultiplyNumber(n1,n2));
break;
case 4:
Console.WriteLine(DivideNumber(n1,n2));
break;
case 5:
break;
default:
Console.WriteLine("Invalid Selection !");
Console.ReadLine();
return;
}
//Ask user to enter two numbers
Console.WriteLine();
Console.Write("Enter Number 1:", n1);
// number1 = Console.ReadLine();
Console.Write("Enter Number 2:", n2);
// number2 = Console.ReadLine();
}
public static double AddNumbers(double number1, double number2)
{
return number1 + number2;
}
public static double SubtractNumber(double number1, double number2)
{
return number1 - number2;
}
public static double MultiplyNumber(double number1, double number2)
{
return number1 * number2;
}
public static double DivideNumber(double number1, double number2)
{
if (number1 == 0 && number2 == 0)
{
Console.WriteLine("Cannot Divide by Zero. Try Again");
return 0;
}
else
{
return number1 / number2;
}
}
答案 0 :(得分:1)
第一个错误您在拨打开关案例后正在接受输入
第二个错误你的函数有两个参数,所以传递它们。
与您的切换案例中的DivideNumber(number1,number2)
一样
希望你理解
我注意到的一件事是您正在string
中输入,而您的函数需要double parameters
,因此您需要将字符串转换为double。
让你知道使用double来获取像double n1 = Convert.ToDouble(console.readline());
这样的输入,因为来自console的输入是字符串。
答案 1 :(得分:1)
您正在调用您的函数return AddNumbers();
但已将其声明为public static double AddNumbers(double number1, double number2)
AddNumbers预期有2个数字,你已经过了0。
您不会从DivideNumbers返回任何内容,但您已声明它返回double。 public static double DivideNumber
程序毫无意义。你试图在他们给你数字之前做手术。您应该自己尝试Rubber Duck这个
答案 2 :(得分:0)
This应该做你想要完成的事情。