-1

これが私が尋ねられた質問です:

CalcTotalPrice という完全な Java プログラムを作成します。プログラムには、getSaleTotal、getSalePrice、getSaleWe​​ight、calcTax、および calcShipping の 5 つのメソッドが含まれている必要があります。

  • getSaleTotal は入力パラメーターをとらず、double を返します。これは販売合計であり、他の 4 つのメソッドを呼び出して計算します。
  • getSalePrice は double を返します。これは、コマンド ラインでユーザーから取得します。
  • getSaleWe​​ight は double を返します。これは、コマンド ラインでユーザーから取得します。
  • calcTax は double をパラメーター (販売価格) として取り、税額を double として返します (固定税率として 6% を使用)。
  • calcShipping は double をパラメータ (販売重量) として取り、配送料を double として返します (重量が 10 未満の場合は $10、重量が 10 以上の場合は $20 として配送料を計算します)。
  • getSaleTotal は、販売価格、税額、送料、および販売合計額をコマンド ラインに出力する必要があります。

コンパイラには何も出力されません。私を助けてください。これが私のコードです:

import java.util.Scanner;
/**
 *
 * @author Kramer1
 */
public class CalcTotalPrice {



/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here


}
public static double getSaleTotal(){
    Scanner in = new Scanner(System.in);
    double price = getSalePrice(in);
    System.out.println(price);
    double tax = calcTax(.06);
    System.out.println(tax);
    double shipping = calcShipping(in.nextDouble());
    System.out.println(shipping);
    double saleTotal = ((price)*tax)+price+shipping;
    System.out.println(saleTotal);
    return saleTotal;
}
public static double getSalePrice(Scanner in){
    double salePrice = in.nextDouble();
    return salePrice;
}
public static double getSaleWeight(Scanner in){
    double saleWeight = in.nextDouble();
    return saleWeight;
}
public static double calcTax(double salePrice){
    double salesTax = .06;
    return salesTax;
}
public static double calcShipping(double saleWeight){
    double amountShipping = 0;
    if (saleWeight < 10){
        amountShipping = 10.; 
    }else if(saleWeight > 10){
        amountShipping = 20.;
    } 
    return amountShipping;
}
}
4

2 に答える 2

1

main() では何もしてい
ません。出力を表示するには、main で Scanner を作成し、適切なメソッドを呼び出す必要があります。

コードのリファクタリングを行う必要があります。まず、スキャナをメイン メソッドに移動します。次に、それを引数として他のメソッドに渡し、メインからデータを読み取るか、メインでデータを読み取り、値を直接渡します。私は後者を提案します

また、メソッドの外で使用する変数をクラス内で宣言して、それらの値がプログラムの最後まで持続し、さまざまなメソッドでそれらにアクセスできるようにする必要もあります。それらを静的に宣言してください。

于 2013-10-31T01:07:43.990 に答える
0

空のメイン メソッドがあります。何も実行していないか、コードを呼び出していません。

クラスをインスタンス化し、その中でいくつかのメソッドを呼び出してみてください。また、ユーザーからの入力を期待しているようにも見えます。また、メインでScannerクラスをインスタンス化してみてください。これをいくつかのメソッドに渡すことができます。in.nextLine();次を呼び出す前に、入力をフラッシュするためにも呼び出すことを忘れないでくださいin.nextDouble();

試す

Static Double salesPrice = null;

public static void main(String[] args) {

    CalcTotalPrice ctp = new CalcTotalPrice ();
    Scanner sc = new Scanner(System.in);

    salesPrice = ctp.getSalesPrice (in);
    in.nextLine();
    //etc

}
于 2013-10-31T01:07:25.333 に答える