New Member (Temperature Class)
Hi, I too am struggling with this Temperature Class. Can you help?
Here is the assignment:
Write a Temperature class that has two parameters: a temperature value (a floating-point number) and a character for the scale, either ‘C’ for Celsius or ‘F’ for Fahrenheit. The class should have four constructor methods: one for each instance variable (assume zero degrees if no value is specified and Celsius if no scale is specified), one with two parameters for the two instance variables, and a default constructor (set to zero degrees Celsius). Include (1) two accessor methods to return the temperature, one to return the degrees Celsius, the other to return the degrees Fahrenheit – use the *formulas* from Programming Project 2 of Chapter 3 to write the two methods, and round to the nearest tenth of a degree; (2) three reset methods, one to set the value, one to set the scale (‘F’ or ‘C’), and one to set both; and (3) three comparison methods, one to test whether two temperatures are equal, one to test whether one temperature is greater than another, and one to test whether one temperature is less than another. Then write a driver program that tests all the methods. Be sure to use each of the constructors, to include at least one true and one false case for each of the comparison methods, and to test at least the following temperature equalities: 0.0 degrees C = 32.0 degrees F, -40.0 degrees C= -40.0 degrees F, and 100.0 degrees C = 212.0 degrees F.
*degreesC = 5(degreesF - 32)/9*
*degreesF = (9(degreesC)/5) + 32*
Here is the class definition that I created:
PHP Code:
public class Temperature//Class name
{
double temp;//Variable
char scale;//Varible
public Temperature()//Default Constructor
{
temp = 0;
scale = 'C';
}
public Temperature(char tempScale)//Scale Constructor
{
temp = 0;
scale = tempScale;
}
public Temperature(double tempValue)//Temp Constructor
{
temp = tempValue;
scale = 'C';
}
public Temperature( double tempValue, char tempScale)//Constructor
{
temp = tempValue;
scale = tempScale;
}
public double getC()//Used to get degrees C
{
double value;
if (scale == 'C')
{
return temp;
}
else
{
return ((double)(Math.round((5*(temp - 32.0)/9.0)*10.0))/10);
}
}
public double getF()//Used to get degrees F
{
if (scale == 'F')
{
return temp;
}
else
{
return (Math.round((9*(temp/5) + 32)*10)/10);
}
}
public void setTemp(double newTemp)//set temp
{
temp = newTemp;
}
public void setScale(char newScale)//set scale
{
scale = newScale;
}
public void setTempScale(double newTemp, char newScale)//set both
{
temp = newTemp;
scale = newScale;
}
public boolean equals(Temperature obj)//compares for equality
{
return (getC() == obj.getC());
}
// This is comparing statements to see if the first is greater than the second
public boolean greaterThan(Temperature obj)
{
return (getC() > obj.getC());
}
// This is comparing statements to see if the first is less than the second
public boolean lessThan(Temperature obj)
{
return (getC() < obj.getC());
}
// Returns temp value
public double getTemperatureTemp()
{
return temp;
}
// Returns scale character
public char getTemperatureScale()
{
return scale;
}
}
Additional Information:
PHP Code:
Temperature
# value: double
# scale: char
+ Temperature( )
+ Temperature(double valueIn)
+ Temperature(char scaleIn)
+ Temperature(double valueIn, char scaleIn)
+ getF( ):double
+ getC( ):double
+ reset(double valueIn): void
+ reset(char scaleIn): void
+ reset(double valueIn, char scaleIn): void
+ equals(Temperature objIn): Boolean
+ lessThan(Temperature objIn): Boolean
+ greaterThan(Temperature objIn): Boolean
public double getC( )
{
double result=0.0;
if (scale == 'C')
result = value;
if (scale == 'F')
result = 5.0*(value – 32.0)/9.0;
result = Math.round(result * 10)/10
return result;
}
public boolean equals(Temperature obj)
{
return (obj.getC() == this.getC());
}
My question is, is the class definition correct?
Need help creating the driver class.
Thanks,
~Jo (EST)