2013-01-14 24 views
-4

我做了一個程序,但輸出顯示0。你能看到我做錯了嗎? 我的評估指示詢問。Arraylist程序

package snippet; 

import java.util.ArrayList; 

public class CO2FromElectricity { 
    // declaration of private instance variables 

    /** 
    * Default constructor to create an object from the CO2FromElectricity class. 
    */ 
    CO2FromElectricity() { 
    } 

    /** 
    * A mutator method which calculates the average annual electricity bill. 
    * 
    * @param monthlyBill 
    *   an ArrayList containing the monthly bills for home electricity use. 
    * @return the average monthly electricity bill. 
    */ 
    public double calcAverageBill(ArrayList<Double> monthlyBill) { 
     monthlyBill.add(279.41); 
     monthlyBill.add(238.03); 
     monthlyBill.add(248.64); 
     monthlyBill.add(258.73); 
     monthlyBill.add(395.48); 
     monthlyBill.add(419.91); 
     monthlyBill.add(431.15); 
     monthlyBill.add(407.56); 
     monthlyBill.add(417.14); 
     monthlyBill.add(308.35); 
     monthlyBill.add(337.91); 
     monthlyBill.add(320.77); 
     double sum = 0.0; 
     double monthlyTotal = 0.0; 

     for (int i = 0; i < monthlyBill.size(); i++) { 
      sum += monthlyBill.get(i); 
     } 

     return monthlyTotal/monthlyBill.size(); 
    } 

    /** 
    * A mutator method which calculates the average annual price of electricity. 
    * 
    * @param monthlyPrice 
    *   an ArrayList containing the monthly price of electricity per kilowatthour. 
    * @return the average monthly price of electricity. 
    */ 
    public double calcAveragePrice(ArrayList<Double> monthlyPrice) { 
     monthlyPrice.add(0.1117); 
     monthlyPrice.add(0.1107); 
     monthlyPrice.add(0.1110); 
     monthlyPrice.add(0.1113); 
     monthlyPrice.add(0.1135); 
     monthlyPrice.add(0.1138); 
     monthlyPrice.add(0.1217); 
     monthlyPrice.add(0.1215); 
     monthlyPrice.add(0.1216); 
     monthlyPrice.add(0.1228); 
     monthlyPrice.add(0.1209); 
     monthlyPrice.add(0.1192); 
     double sum = 0.0; 
     double monthlyTotal = 0.0; 

     for (int i = 0; i < monthlyPrice.size(); i++) { 
      sum += monthlyPrice.get(i); 
     } 
     return monthlyTotal/monthlyPrice.size(); 
    } 

    /** 
    * A mutator method which calculates the annual home CO2 emission from electricity. 
    * 
    * @param avgBill 
    *   the average monthly home electricity bill. 
    * @param avgPrice 
    *   the average monthly price of home electricity. 
    * @return the annual home CO2 emission from home electricity use. 
    */ 
    public double calcElectricityCO2(double avgBill, double avgPrice) { 
     return (avgBill/avgPrice) * 1.37 * 12; 
    } 
} 

輸出結果應該如下所示。請看我做錯了什麼。

Average Monthly Electricity Bill: 191.23 
Average Monthly Electricity Price: 0.11 
Annual CO2 Emissions from Electricity Usage: 28667.1 pounds 
+4

哪裏是你的輸出方式?你做了一堆計算,但從不做任何事情來顯示它們。這些方法如何被調用?看起來你已經提供了一個片段。 – Palpatim

+0

這是你寫的完整代碼嗎? – Smit

+0

您沒有提供調用此方法並輸出的代碼。 – Andremoniy

回答

1

每月總計始終是0.0。所以,你的函數返回0.0 /總和

+1

這是一個* a *問題,但我不確定這是OP在他們說輸出爲0時指的是什麼。由於沒有輸出方法被調用,我猜0是隻是程序的返回碼。 – NullUserException

+0

你絕對正確。我認爲在某個地方會有一個印刷聲明,並在數學上得到隧道視野。 – Stephan

0

輸出爲0,因爲你寫的:

double monthlyTotal = 0.0; 

我想你想

return sum/monthlyPrice.size();