Results 1 to 3 of 3
Thread: Please help me with my program
- 11-05-2009, 04:24 AM #1
Member
- Join Date
- Nov 2009
- Posts
- 1
- Rep Power
- 0
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:
Here is my class: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); } }
Everything compiles, I just dont get the right answer.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; } }Last edited by Eranga; 11-05-2009 at 09:34 AM. Reason: code tags added
- 11-05-2009, 04:52 AM #2
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 ?
so, to use thisJava 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)); } }
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);
- 11-05-2009, 09:33 AM #3
- Join Date
- Jul 2007
- Location
- Colombo, Sri Lanka
- Posts
- 11,374
- Blog Entries
- 1
- Rep Power
- 18
Just an info to our thread starter. Please use code tags when you posting again. Un-formatted codes are hard to read.
Similar Threads
-
execute java program within java program
By popey in forum New To JavaReplies: 2Last Post: 10-22-2009, 05:32 PM -
Execute A program from a Program!
By Moncleared in forum Advanced JavaReplies: 2Last Post: 02-22-2009, 04:17 PM -
Executing a program within a program
By gibsonrocker800 in forum New To JavaReplies: 5Last Post: 05-12-2008, 08:24 AM -
How to execute an External Program through Java program
By Java Tip in forum java.ioReplies: 0Last Post: 04-04-2008, 02:40 PM -
How to execute an External Program through Java program
By JavaBean in forum Java TipReplies: 0Last Post: 10-04-2007, 09:33 PM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks