在c++中为Temperature Class读取类中的方法

Read method in classes for Temperature Class in c++

本文关键字:方法 读取 Class c++ 中为 Temperature      更新时间:2023-10-16

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

#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() << "Cn";
}
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;
}

两件事:

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