Member 13934783 Ответов: 3

Кто-нибудь, помогите мне понять этот вопрос


Привет. Ладно, у меня есть это задание, вот вопрос и мой подход:
_______________________________________________________________________
Рассмотрим следующее объявление температурного класса. Класс держит информацию на высоком уровне
и низкие значения температуры. Конструктор присваивает начальные значения двум частным элементам данных
высокие и низкие температуры. Функция updateTemp принимает новое значение данных и определяет, является ли одно из них
значения температуры в объекте должны быть обновлены. Если значение отмечает новый минимум, то lowTemp
обновляемый. Точно так же новый максимум изменил бы highTemp. Функции доступа getHightTemp() и
getLowTemp() возвращает высокую и низкую температуру соответственно.
Class Temperature
{
private:
float highTemp, lowTemp;
public:
//constructor
Temperature(float h, float l)
//update low and high temperatures.
Void updateTemp(float temp);
//access functions
float getHighTemp();
float getLowTemp();
};

Требуемый:
i) реализовать конструктор температурного класса как внешнюю функцию.
ii) реализовать функцию-член updateTemp().
iii) реализовать функции доступа getHighTemp() и getLowTemp()
_______________________________________________________________________

Что я уже пробовал:

#include <iostream>
using namespace std;
class Temperature{
    private:
        float HighTemp, LowTemp;
    public:
        Temperature(float h, float l);

        void updateTemp();

        float getHighTemp(float h){
            return HighTemp;
        }

        float getLowTemp(float l){
            return LowTemp;
        }

        float setHighTemp(float h){
            HighTemp=h;
        }

        float setLowTemp(float l){
            LowTemp=l;
        }
};

Temperature::Temperature(float h, float l){
        setHighTemp(h);
        setLowTemp(l);
}
void updateTemp(float temp){
//I'm stuck here
}
int main()
{
//i unno what to do}

Richard MacCutchan

функция updateTemp принимает новое значение данных и определяет, является ли одно из них
значения температуры в объекте должны быть обновлены. Если значение отмечает новый минимум, то lowTemp
обновляемый. Точно так же новый максимум изменил бы highTemp.

Это кажется совершенно ясным, если новая температура меньше текущего низкого значения, то сохраните ее в переменной низкого значения. Если он выше текущего высокого значения ...

3 Ответов

Рейтинг:
2

CPallini

Я бы начал с правильного объявления класса:

class Temperature
{
private:
  double high, low;
public:
  Temperature(double h, double l);
  void update(double temperature);
  double getHigh();
  double getLow();
};

Ваш конструктор можно улучшить: рассмотрите возможность использования списка инициализации:
Temperature::Temperature(double h, double l) : high(h), low(l)
{
}

Теперь рассмотрим метод, на котором вы застряли, а именно update
void Temperature::update(double temperature )
{
  // here: if 'high' is lower than 'temperature' then update it.
  // here: if 'low' is higher than  'temperature' then update it.
}


KarstenK

это то, что я называю "assistd coding" ;-)

Рейтинг:
2

KarstenK

Когда вы получаете обновление температурного класса, таким образом, это может быть новый максимум или новый минимум. Так что подумайте чем обновление значений...


Рейтинг:
0

Mohibur Rashid

Это ваше домашнее задание, я не дам вам точного ответа.
Из вашего кода я вижу, что вы не совсем правильно поняли свое задание.
Сначала сосредоточьтесь на требовании.
1. реализуйте конструктор. То, что вы сделали, это
2. реализуйте updateTemp; вы этого не сделали. При реализации функции-члена необходимо следовать этому простому правилу. Следуйте этому руководству Функции-Члены Класса C++ [^]
У вас все еще есть проблема понимания требования updateTemp; ваше задание предложило конкретное требование. Вы должны следовать этому. "

The updateTemp function takes a new data value and determines if one of the temperature values in the object should be updated
-... Сосредоточься на этом.
3. Реализовать функции доступа. в объявлении класса аргумент не задан, но ваше определение показывает аргумент. И что бы вы сделали с этими аргументами? Кажется, ничего.