Results 1 to 3 of 3
  1. #1
    jhawks8 is offline Member
    Join Date
    Nov 2009
    Posts
    1
    Rep Power
    0

    Default Please help me with my program

    Hi I am new to Java and I am using jgrasp. My assignment is to convert celsius to fahrenheit and vice versa. I can't seem to get the right calculations, can somebody please see what is wrong?

    Here is my driver:
    Java Code:
       import java.util.Scanner;
    
        public class Driver
       {
           public static void main(String args[])
          {
          // Declare variables for user input
          
             double degrees;
             double Celsius;
             String scale;
             String endScale;
             double getCelsius;
             double getFahrenheit;
          // Create a Scanner object to read from the keyboard
             Scanner keyboard = new Scanner (System.in);
          
          // Get the temperature and scale from user
             System.out.print("Enter the temperature: ");
             degrees = keyboard.nextDouble();
             scale = keyboard.nextLine().trim();
          
          // Declare and instantiate an object reference variable
          
             Temperature outsideTemp = new Temperature();
          
          // Set the outside temperature based on the user input
             if (scale.equalsIgnoreCase("C"))
                outsideTemp.setCelsius(degrees);
             else
                outsideTemp.setFahrenheit(degrees);
           
             System.out.print("How would you like the temperature displayed (C or F)?");
             endScale = keyboard.nextLine();
          // Get the scale to display the temperature from the user
          
             if (endScale.equalsIgnoreCase("C"))
                System.out.print("The temperature is " + outsideTemp.getCelsius());
             else
                System.out.print("The temperature is " + outsideTemp.getFahrenheit());
                   
          // Display the temperature based on the user's desired scale
             System.out.print(" degrees " + endScale);
          }
       
       }
    Here is my class:
    Java Code:
        public class Temperature
       {
       // Instance variable
          private double degreesKelvin;      // degrees in Kelvin
          double Celsius;      // degrees in Celsius    
          double Fahrenheit;
        
       // Constructor method: initialize degreesKelvin to zero
           public Temperature()
          {
             degreesKelvin = 0;
                
          }
       
       // Convert and save degreesCelius in the Kelvin scale
           public void setCelsius(double Celsius)
          {
             degreesKelvin = Celsius + 273.16;
          }
       
       // Convert degreesKelvin to Celsius and return the value
           public double getCelsius()
          {
             Celsius = degreesKelvin - 273.16;
             return Celsius;
          }
       
       // Convert and save degreesFahrenheit in the Kelvin scale
           public void setFahrenheit(double Fahrenheit)
          {
             degreesKelvin = (( 5 / 9 ) * (Fahrenheit - 32)) + 273.16;
          }
       
       // Convert degreesKelvin to Fahrenheit and return the value
       
           public double getFahrenheit()
          {
             Fahrenheit    = ((degreesKelvin - 273.16) * (9 / 5 )) + 32;
             return Fahrenheit;
          }
       
       }
    Everything compiles, I just dont get the right answer.
    Last edited by Eranga; 11-05-2009 at 09:34 AM. Reason: code tags added

  2. #2
    travishein's Avatar
    travishein is offline Senior Member
    Join Date
    Sep 2009
    Location
    Canada
    Posts
    684
    Rep Power
    5

    Default

    I don't get why you created a class for Temperature with instance variables, where to get any conversion needs 2 calls, one to set the input and one to get the output.

    would static functions work here ?
    Java Code:
    class Temperature {
      // no instance variables  (and in practice, we wouldnt create an instance even)
      
      public static double celsiusToKelvin(double celsius)
      {
        return celsius + 273.16;
      }
      
      public static double kelvinToCelsius(double degreesKelvin)
      {
       return degreesKelvin - 273.16;
      }
      
      public static double fahrenheitToKelvin(double fahrenheit)
      {
        return (( 5 / 9 ) * (fahrenheit - 32)) + 273.16;
      }
      
        public static double kelvinToFahrenheit(double degreesKelvin)
      {
       return ((degreesKelvin - 273.16) * (9 / 5 )) + 32;
      }
    
      public static double celciusToFahrenheit(double degreesCelsius) {
        return kelvinToFahrenheit(celsiusToKelvin(degreesCelsius));
      }
      
      public static double farenheitToCelsius(double degreesFahrenheit) {
        return kelvinToCelsius(farenheitToCelsius(degreesFahrenheit));
      }
    }
    so, to use this

    Java Code:
        double degrees = keyboard.nextDouble();
        String scale = keyboard.nextLine().trim();
    
        double outsideTemp = 0;
    
        System.out.print("How would you like the temperature displayed (C or F)?");
        String endScale = keyboard.nextLine();
    
        // Set the outside temperature based on the user input
        if (scale.equalsIgnoreCase("C")) {
          if (endScale.equalsIgnoreCase("C")) {
            // wow, nothing to do. celcius in celcius out
            outsideTemp = degrees;
          }
          else {
            outsideTemp = Temperature.celciusToFahrenheit(degrees);
          }
        }
        else {
           if (endScale.equalsIgnoreCase("C")) {
            outsideTemp = Temperature.farenheitToCelsius(degrees);
          }
          else {
            // farenheit in, farenheit out
            outsideTemp = degrees;
          }
        }
    
        // Get the scale to display the temperature from the user
    
        System.out.print("The temperature is " + outsideTemp + " deg " + endScale);

  3. #3
    Eranga's Avatar
    Eranga is offline Moderator
    Join Date
    Jul 2007
    Location
    Colombo, Sri Lanka
    Posts
    11,372
    Blog Entries
    1
    Rep Power
    20

Similar Threads

  1. execute java program within java program
    By popey in forum New To Java
    Replies: 2
    Last Post: 10-22-2009, 05:32 PM
  2. Execute A program from a Program!
    By Moncleared in forum Advanced Java
    Replies: 2
    Last Post: 02-22-2009, 04:17 PM
  3. Executing a program within a program
    By gibsonrocker800 in forum New To Java
    Replies: 5
    Last Post: 05-12-2008, 08:24 AM
  4. Replies: 0
    Last Post: 04-04-2008, 02:40 PM
  5. Replies: 0
    Last Post: 10-04-2007, 09:33 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •