古詩詞大全網 - 成語大全 - Java編程:請看題目,在下面,麻煩給出完整的解答。我是個菜鳥,謝謝

Java編程:請看題目,在下面,麻煩給出完整的解答。我是個菜鳥,謝謝

import?java.util.Scanner;

class?Test?{

public?static?final?String?STR_INPUT_N?=?"請輸入小明的自有話費(整數),N:";

public?static?final?String?STR_INPUT_M?=?"請輸入每使用多少元就可以獲贈1元,M:";

public?static?final?String?STR_INPUT_N_AGAIN?=?"請再次輸入小明的自有話費N,註意是整數:";

public?static?final?String?STR_INPUT_M_AGAIN?=?"請再次輸入每使用多少元就可以獲贈1元,M,註意是整數:";

/**

*?當前正在輸入M

*/

public?static?final?int?INPUT_M?=?0;

/**

*?當前正在輸入N

*/

public?static?final?int?INPUT_N?=?1;

/**

*?某通訊公司開展壹個活動,電話費每使用M元就可以獲贈1元。已知小明的電話費壹開始有N元,每天的電話費為1元,小明最多能打多少天的電話?(2?<=?M<=?N?<=?1000)

*?說明:首先輸入壹個整數N,代表小明自有的電話費,然後輸入壹個整數M,代表活動中每使用M元即可獲贈1元。請輸出小明可以通話的天數。

*?例如輸入:20?5程序需要輸出:24

*?要求:用循環語句實現。

*/

public?static?void?main(String?args[])?{

int?phoneCharge?=?getLeftCharge(INPUT_N);

int?discounts?=?getLeftCharge(INPUT_M);

if?(phoneCharge?>=?discounts)?{

//計算可多獲得的收益

printResult(phoneCharge?/?discounts?+?phoneCharge);

}?else?{

printResult(phoneCharge);

}

}

/**

*?獲取當前輸入的現金,如果輸入的不是整數,要求重新輸入

*

*?@param?type?輸入的類型?{@link?#INPUT_N};?{@link?#INPUT_M}

*?@return?話費

*/

private?static?int?getLeftCharge(int?type)?{

printInputHint(type?==?INPUT_NSTR_INPUT_N?:?STR_INPUT_M);

while?(true)?{

try?{

Scanner?scanner?=?new?Scanner(System.in);

return?scanner.nextInt();

}?catch?(Exception?e)?{

printInputHint(type?==?INPUT_NSTR_INPUT_N_AGAIN?:?STR_INPUT_M_AGAIN);

}

}

}

/**

*?打印輸入提示語

*?@param?type

*/

private?static?void?printInputHint(String?type)?{

System.out.println(type);

}

/**

*?打印計算的結果

*?@param?result

*/

private?static?void?printResult(int?result)?{

System.out.println(String.format("小明可以通話的天數:%d",result));

}

}