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;
}
我应该如何初始化开始和结束? – savannaalexis