Elettricità / Energia Bill Calculator: Java


Sto avendo problemi a capire esattamente cosa c'è di sbagliato in questo piccolo calcolatore di elettricità/energia utilizzato per calcolare i costi energetici del computer.

Apprezzerei qualsiasi aiuto.

Programma:

import java.util.Scanner;

public class ElectricityCalculations {
   public static void main (String [] args) {
      Scanner scnr = new Scanner(System.in);
      double usageHoursPerDay      = 0; // Hours computer is on per day
      double usageDaysPerWeek      = 0; // Days computer is used per week
      double usageWeeksPerYear     = 0; // Weeks computer is used per year
      double wattsPerHour          = 0; // Watts used by computer per hour
      final double COST_PER_KWH    = 0.145; // Prices of power per kilowatt hour
      final double LBS_CO2_PER_KWH = 0.58815; // Pounds of CO2 generated per KWH
      double usageHoursPerYear     = 0; // Amount of hours on per year
      double usageWattHoursPerYear = 0; // Amount of watt hours consumed per year
      double usageKWHPerYear       = 0; // Amount of KWH used in a year
      double costPerYear           = 0; // Total cost per year
      double lbsCO2PerYear         = 0; // Total amount of CO2 in pounds released per year

      // Input Values
      System.out.println("How many hours is your computer on per day?");
      usageHoursPerDay  = scnr.nextDouble();
      System.out.println("How many days per week is your computer used?");
      usageDaysPerWeek  = scnr.nextDouble();
      System.out.println("How many weeks per year is your computer used?");
      usageWeeksPerYear = scnr.nextDouble();
      System.out.println("How many watts per hour does your computer use? (Suggestive value for desktop: 100, laptop: 30).");
      wattsPerHour      = scnr.nextDouble();

      // Calculations
      usageHoursPerYear     = usageHoursPerDay * 365;
      usageWattHoursPerYear = wattsPerHour * 8760; // 8760 is the number of hours in a year
      usageKWHPerYear       = usageWattHoursPerYear / 1000;
      costPerYear           = usageKWHPerYear * COST_PER_KWH;
      lbsCO2PerYear         = LBS_CO2_PER_KWH * usageKWHPerYear;

      // Printing Energy Audits
      System.out.println("Computer Energy Audit");
      System.out.println("You use your computer for " + usageHoursPerYear + " hours per year.");
      System.out.println("It will use " + usageWattHoursPerYear + " KWH/year.");
      System.out.println("Whih will cost " + costPerYear + "$/year for electricity.");
      System.out.println("Generating that electricity will produce " + lbsCO2PerYear + " lbs of CO2 pollution.");

      return;
   }
}

Ingressi:

8 ore / giorno

5 giorni / settimana

50 settimane / anno

100 watt / ora

Il mio (output errato):

Audit energetico del computer:

Si utilizza il computer per 2920,0 ore all'anno.

It userà 876000.0 KWH / anno.

Che costerà 127,02$/anno per l'elettricità.

La generazione di elettricità produrrà 515,2194 libbre di inquinamento da CO2.

Uscita corretta:

Audit energetico del computer:

Si utilizza il computer per 2000,0 ore all'anno.

Utilizzerà 200,0 KWH/anno.

Che costerà 28,999999999999996 $/anno per l'elettricità.

La generazione di elettricità produrrà 117,63 libbre di inquinamento da CO2.

Author: Aramza, 2016-09-22

1 answers

Si prende in input il numero di giorni alla settimana e settimane all'anno, ma si dimentica di usarli nei calcoli. Inoltre, invece di stampare KWH, stai visualizzando la variabile che memorizza le ore di Watt.

// Calculations
usageHoursPerYear     = usageHoursPerDay * usageDaysPerWeek * usageWeeksPerYear; //calculate based on time used, not 365 days in the year
usageWattHoursPerYear = wattsPerHour * usageHoursPerYear; //use variable from above line
usageKWHPerYear       = usageWattHoursPerYear / 1000;
costPerYear           = usageKWHPerYear * COST_PER_KWH;
lbsCO2PerYear         = LBS_CO2_PER_KWH * usageKWHPerYear;

// Printing Energy Audits
System.out.println("Computer Energy Audit");
System.out.println("You use your computer for " + usageHoursPerYear + " hours per year.");
System.out.println("It will use " + usageKWHPerYear + " KWH/year."); //changed to correct variable
System.out.println("Whih will cost " + costPerYear + "$/year for electricity.");
System.out.println("Generating that electricity will produce " + lbsCO2PerYear + " lbs of CO2 pollution.");
 2
Author: Jimmy M., 2016-09-22 02:43:59