2014-04-13 69 views
0

我正尝试使用读取方法读取温度和华氏度或摄氏度字符的值。在编程手册中,我找不到任何关于读取方法的内容。我也必须在我的主程序中更改我的for循环来遍历一系列值,但这也不起作用。这是我的代码:读取C++中温度类的类中的方法

#include <iostream> 
using namespace std; 

// Interface for Temperature class 
class Temperature 
{ 
public: 
    Temperature(); 
    Temperature(const Temperature & Temp); 
    ~Temperature(); 
    double getCelsius() const; 
    double getFahrenheit() const; 
    void setCelsius(double Temp); 
    void setFahrenheit(double Temp); 
    void print(); 
    void read(); 

private: 
    static const double ABSOLUTE_ZERO = -273.15; 
    double CelsiusTemperature; 
}; 

// Implementation of Temperature class 
void Temperature::print() 
{ 
     cout << getFahrenheit() << "F = " << getCelsius() << "C\n"; 
} 
void Temperature::read() 
{ 
    double num; 
    char C; 

    cin >> num >> C; 
    cin >> num >> C; 
    if (C != 'F' || C != 'f' || C != 'C' || C != 'c') 
    cout << " "; 
} 
Temperature::Temperature() 
{ 
    CelsiusTemperature = 0; 
} 
Temperature::Temperature(const Temperature & Temp) 
{ 
    CelsiusTemperature = Temp.CelsiusTemperature; 
} 

Temperature::~Temperature() 
{ 
} 

double Temperature::getCelsius() const 
{ 
    return CelsiusTemperature; 
} 

double Temperature::getFahrenheit() const 
{ 
    return 9.0 * CelsiusTemperature/5.0 + 32.0; 
} 

void Temperature::setCelsius(double Temp) 
{ 
    CelsiusTemperature = Temp; 
    if (CelsiusTemperature < ABSOLUTE_ZERO) 
     CelsiusTemperature = ABSOLUTE_ZERO; 
} 

void Temperature::setFahrenheit(double Temp) 
{ 
    CelsiusTemperature = (Temp - 32.0) * 5.0/9.0 ; 
    if (CelsiusTemperature < ABSOLUTE_ZERO) 
     CelsiusTemperature = ABSOLUTE_ZERO; 
} 

// Program to test Temperature class 
int main() 
{ 
    Temperature Start; 
    Temperature End; 
    Temperature Temp; 
    cout << "Enter start temperature: "; 
    Temp.read(); 
    cout << "Enter end temperature: "; 
    Temp.read(); 

    cout.precision(3); 
    for (F = Start; F <= End; F++) 
    { 
     Temperature Temp; 
     Temp.setFahrenheit(F); 
     Temp.print(); 
    } 
    return 0; 
} 

回答

0

几件事情:

  • 你不初始化StartEnd
  • read函数不设置CelsiusTemperature
  • 你不” t声明变量F
  • 您使用相同的Temp变量来读取开始和结束温度
  • 您没有为Temperature类定义的任何特定比较运算符,或者任何将其转换为整数/浮点值的转换运算符,您也没有非显式构造函数的值不是Temperature
+0

我应该如何初始化开始和结束? – savannaalexis