-1

这是我被问到的问题:

编写一个名为 CalcTotalPrice 的完整 Java 程序。该程序必须包括五个方法:getSaleTotal、getSalePrice、getSaleWe​​ight、calcTax 和 calcShipping。

  • getSaleTotal 不接受输入参数并返回一个双精度数,即销售总额,它通过调用其他四个方法来计算。
  • getSalePrice 返回一个双精度值,它在命令行从用户那里获得。
  • getSaleWe​​ight 返回一个 double,它在命令行从用户那里获得。
  • calcTax 将 double 作为参数(销售价格)并以 double 形式返回税额(使用 6% 作为固定税率)。
  • calcShipping 将双精度值作为参数(销售重量)并将运费金额作为双精度值返回(如果重量小于 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,然后调用适当的方法。

您需要进行一些代码重构。首先,将您的 Scanner 移至 main 方法。然后将它作为参数传递给其他方法以从 main 中读取数据或读取数据并直接传递值。我建议后者

您还需要在方法之外和类中声明您使用的变量,以便它们的值一直持续到程序结束,并且您可以通过各种方法访问它们。一定要声明它们是静态的。

于 2013-10-31T01:07:43.990 回答
0

您有一个空的 main 方法 - 它没有做任何事情或调用任何代码。

尝试实例化您的类并在其中调用一些方法。它看起来也期待用户的一些输入。所以也尝试在你的 main 中实例化一个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 回答