ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 7) онлайн

Массивы интервалов

В главе 6 «Объекты и классы» мы показали несколько примеров класса Distance, который объединяет футы и дюймы в своем объекте, представляющем собой но- вый тип данных. Наша следующая программа ENGLARAY демонстрирует массив таких объектов.

// englaray.cpp

// объекты для английских мер

#include <iostream>

using namespace std;

///////////////////////////////////////////////////////////

class Distance

{

  private:

    int feet;

    float inches;

  public:

    void getdist ( ) // получение информации

      {

        cout << "\n  Введите футы: "; cin >> feet;

        cout << "  Введите дюймы: "; cin >> inches;

      }

    void showdist ( ) const // показ информации

      { cout << feet << "\'-" << inches << '\"'; }

};

///////////////////////////////////////////////////////////

int main ( )

{

  Distance dist [ 100 ]; // массив переменных

  int n = 0;             // счетчик данных

  char ans;              // ответ пользователя (y/n)

 

  cout << endl;

 

  do

  {

    cout << "Введите длину номер " << n + 1;

    dist [ n++ ].getdist ( );      // получаем и сохраняем длину

    cout << "Продолжить ввод (y/n)?: ";

    cin >> ans;

  }

  while ( ans != 'n' );            // продолжать, пока не будет введено 'n'

 

  // показываем все введенное

  for ( int j = 0; j < n; j++ )

  {

    cout << "\nДлина номер " << j + 1 << " : ";

    dist [ j ].showdist ( );

  }

 

  cout << endl;

 

  return 0;

}

 

В этой программе пользователь может ввести произвольное количество ин- тервалов. После введения каждого интервала программа спрашивает пользова- теля о том, нужно ли будет ввести еще один интервал. Если нет, то программа выводит все введенные ранее интервалы. Приведем пример взаимодействия с программой; здесь пользователь вводит три интервала:

Введите длину номер 1 Введите футы: 5 Введите дюймы: 4 Продолжить ввод (y/n)?: y Введите длину номер 2 Введите футы: 6 Введите дюймы: 2.5 Продолжить ввод (y/n)?: y Введите длину номер 3 Введите футы: 5 Введите дюймы: 10.75 Продолжить ввод (y/n)?: n

Длина номер 1 : 5'-4" Длина номер 2 : 6'-2.5" Длина номер 3 : 5'-10.75"

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

 

14