2017-02-21 9 views
-3

まず、これは私が完全だと思った学校の割り当てですが、リワークを求められ、何時間もそれに固執しています。昼食注文総額が集まらない

私はそれが働いていましたが、私が今コメントした総費用をハードコーディングしました。私は各項目の個々の価格を自分の食品クラスに渡す必要があります。それはすべての計算を行い、それを返す必要があります。なぜtotalCostがソーダの価格を保持し、何も追加していないのは分かりません。私は私の問題はsetPrice()とtotal()内にあると信じていますが、どんな情報も高く評価されます。

package lunchOrder; 


import java.util.Scanner; 
import java.lang.String; 
import java.text.NumberFormat; 

public class Lunch { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    double totalCost = 0; 
    NumberFormat money = NumberFormat.getCurrencyInstance(); 

    System.out.print("Enter number of hamburgers: "); 
    double hamburgerTotal = input.nextInt(); 
    Food hamburger = new Food("Hamburger", 1.85, 9.0, 33, 1, hamburgerTotal); 
    System.out.println(hamburger + "\n"); 
//  totalCost += hamburgerTotal = * 1.85;         rework 


    System.out.print("Enter number of salads: "); 
    double saladTotal = input.nextInt(); 
    Food salad = new Food("Salad", 2.00, 1, 11, 5, saladTotal); 
    System.out.println(salad + "\n"); 
    //totalCost += saladTotal * 2.00;          rework 


    System.out.print("Enter number of french fries: "); 
    double frenchFrieTotal = input.nextInt(); 
    Food frenchFrie = new Food("French fries", 1.30, 11, 36, 4, frenchFrieTotal); 
    System.out.println(frenchFrie + "\n"); 
    //totalCost += frenchFrieTotal * 1.30;         rework 


    System.out.print("Enter number of sodas: "); 
    double sodaTotal = input.nextInt(); 
    Food soda = new Food("Soda", 0.95, 0, 38, 0, sodaTotal); 
    System.out.println(soda + "\n"); 
    //totalCost += sodaTotal * .95;           rework 

    System.out.println(soda.setPrice()); 
} 

} 

package lunchOrder; 
import java.lang.String; 
import java.text.NumberFormat; 



public class Food { 
String item; 
double price; 
double fat; 
double carb; 
double fiber; 
double total; 
double foodTotal; 
double totalCost = 0; 
NumberFormat money = NumberFormat.getCurrencyInstance(); 



public Food (String nItem, double nPrice, double nFat, double nCarb, double nFiber, double nfoodTotal){ 
    item = nItem; 
    price = nPrice; 
    fat = nFat; 
    carb = nCarb; 
    fiber = nFiber; 
    foodTotal = nfoodTotal; 
    totalCost = totalCost +(price * foodTotal); 



} 
public void total(){ 

    double totalCost = price * foodTotal; 
    totalCost += (price * foodTotal); 
    System.out.print(totalCost); 
} 

public String setPrice(){ 
    String priceString; 


    priceString = "Your order comes to: " + totalCost; 
    return(priceString); 
} 

public String toString() { 
     String orderString; 



     orderString = "Each " + item + " has " + fat + "g of fat, " 
      + carb + "g of carbs, and " + fiber + ".g of fiber."; 
     return(orderString); 
    } 

} 
+3

申し訳ありませんが、これはStackOverflowの仕組みではありません。フォームの質問_ "私のコードの束は、私のためにそれをデバッグしてください" _は話題外だと考えられています。詳細については、[help]にアクセスし、[ask]をお読みください。 –

+0

申し訳ありませんが、私は非常に私は私の質問を編集する新しいです。 – MikeyBeans

答えて

0

インスタンスににtotalCost値を渡さないでください。私の提案はFoodインスタンスのgetterメソッドを作成して、それだけで、現在の食品の総コストを返します。

public double getCost(){ 
    return price * foodTotal; 
} 

変更コンストラクタFood (String nItem, double nPrice, double nFat, double nCarb, double nFiber)に、nfoodtotal削除します。

double totalCost = 0.0; 
Food hamburger = new Food(....); 
totalCost += hamburger.getCost(); // sum up the cost of hamburger 

Food salad = new Food(...); 
totalCost += salad.getCost(); // sum up the cost of salad 

System.out.println("total cost" + totalCost); 
+0

nfoodTotalをコンストラクタに保持して、注文した数がわかるようにしましたが、最終的にそれを取得しました。本当にありがとう、本当にありがとう。 – MikeyBeans

関連する問題