gpt4 book ai didi

c++ - 关于正确仅使用 setter 和变量的问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:27 24 4
gpt4 key购买 nike

我对当前的编程作业有疑问。我觉得好像我非常接近正确,但有些地方不对劲。我知道我必须做一些不同的事情才能使程序正常运行,因为它现在不能运行,但我不确定它是什么。

我特别纠结于如何使用一个私有(private)变量来生成两种温度。

这是作业:

Make a Temperature class. The class should have a function for setting the temperature in Fahrenheit and function for setting a temperature in Celsius. Keep only one data member in the private section for storing the temperature. Create a function for obtaining the in Fahrenheit and a function for obtaining the temperature in Celsius. Test each function thoroughly with a driver.

F = (9/5)C + 32, C = (5/9)(F - 32)

当前代码:

#include<iostream>
using namespace std;

class Temperature
{
private:
double temperature;

public:
void set_fahrenheit(double f)
{
temperature = f;
}

void set_celsius(double c)
{
temperature = c;
}

double get_fahrenheit()
{
return temperature;
}

double get_celsius()
{
return temperature;
}

double converter(double temperature)
{
if (temperature = f)
{
return (9/5)*temperature + 32;
}
else if (temperature = c))
{
return (5/9)*(temperature - 32;
}
}
};

int main()
{
Temperature Temp1;
double temperaturetemp;
string response;

cout << "Would you like to convert a Celsius temperature to Fahrenheit or convert a Fahrenheit temperature to Celsius? (Enter C2F or F2C respectively)" << endl;
cin >> response;

cout << "Please enter the temperature you would like to convert in degrees" << endl;
cin >> temperaturetemp;

if (response == "C2F"){Temp1.set_fahrenheit(temperaturetemp);}
else if (response == "F2C"){Temp1.set_celsius(temperaturetemp);}

cout << Temp1.converter(temperaturetemp);
}

最佳答案

只需使用一个特定的单位来存储内部温度,最好是开尔文1 IMO(因为它是标准的 SI 物理单位)。

在设置或获取华氏度或摄氏度温度时进行必要的计算。

也不要用整数除法来表示分数:
(5/9) 将得到 0 整数除法,它应该是 (5.0/9.0) 以获得有效的 double 值。
9/5 相同,因为整数除法的结果为 1


您的代码的其他问题:

  1. 在您的函数 double converter(double temperature) 中,您尝试使用 f,它不在此处的范围内
  2. 在同一个函数中,您有一个名为 temperature 的参数,它以相同的名称隐藏您的成员变量

1)0K = -459,67F/0K = -273.15°C

关于c++ - 关于正确仅使用 setter 和变量的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52505069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com