这是我的第一个问题,所以如果有错误我会道歉。我是C#的新手,也是我的第一个问题。这是我负责任务的摘录:
程序应该要求用户输入 用餐费,税率(百分比为100),如果用户想按百分比(%)或 金额($)。如果按百分比倾斜,请要求用户选择以下选项之一:
10%
15%
20%
自定义“自定义”选项将要求用户输入在添加税前计算的提示百分比。如果用户选择按金额提示,则要求用户输入提示金额。在屏幕上显示用餐费,税额,小费金额(小费百分比)和总账单。
我有税和输出。但我坚持Tip的偏好以及不同百分比和自定义之间的选择。非常感谢任何帮助。
编辑:这只是在控制台上输出,所有代码都可以在main上完成。说明书要我输入1或2来选择百分比和金额,而1-4则选择不同的优势
答案 0 :(得分:0)
向用户显示所有选项,并要求用户在它们之间进行选择。程序将确保输入有效并且输入对应于有效选项,如下所示:
int ReadInt(Int32 min, Int32 max) {
while( true ) {
Console.WriteLine("Please enter an integer between {0} and {1} (inclusive).", min, max);
Int32 value;
if( Int32.TryParse( Console.ReadLine(), out value ) ) ) return value;
}
}
static void Main() {
// ...
Console.WriteLine("[1] - 10%");
Console.WriteLine("[2] - 15%");
Console.WriteLine("[3] - 20%");
Console.WriteLine("[4] - Custom");
Console.WriteLine("Select a tip option.");
Int32 opt = ReadInt( 1, 4 );
Int32 tipAmount;
switch( opt ) {
case 1: {
tipAmount = 10;
break;
}
case 2: {
tipAmount = 15;
break;
}
case 3: {
tipAmount = 20;
break;
}
case 4: {
Console.WriteLine("Enter an integer tip percentage value:");
tipAmount = ReadInt( 0, 100 );
break;
}
default: throw new InvalidOptionException("Impossible user input.");
}
Decimal tipAmount = ( ( (Decimal)tipAmount ) / 100.0M ) * invoiceAmount;
Console.WriteLine("Please pay {0:C} to the waitstaff as compensation for their institutional labor exploitation.");
// ...
}