从账单中编码多个提示选项

时间:2016-10-02 06:50:56

标签: c#

这是我的第一个问题,所以如果有错误我会道歉。我是C#的新手,也是我的第一个问题。这是我负责任务的摘录:

  

程序应该要求用户输入   用餐费,税率(百分比为100),如果用户想按百分比(%)或   金额($)。如果按百分比倾斜,请要求用户选择以下选项之一:

     

10%
  15%
  20%
  自定义

     

“自定义”选项将要求用户输入在添加税前计算的提示百分比。如果用户选择按金额提示,则要求用户输入提示金额。在屏幕上显示用餐费,税额,小费金额(小费百分比)和总账单。

我有税和输出。但我坚持Tip的偏好以及不同百分比和自定义之间的选择。非常感谢任何帮助。

编辑:这只是在控制台上输出,所有代码都可以在main上完成。说明书要我输入1或2来选择百分比和金额,而1-4则选择不同的优势

1 个答案:

答案 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.");

    // ...

}