2014-04-13 21 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