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

Массивы структур

Массивы могут содержать в себе не только данные основных типов, но и струк- туры. Вот пример, основанный на структуре part из главы 4 «Структуры».

// partaray.cpp

// массив из структур

#include <iostream>

using namespace std;

const int SIZE = 4;

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

struct part

{

  int modelnumber;

  int partnumber;

  float cost;

};

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

int main ( )

{

  int n;

  part apart [ SIZE ];

 

  for ( n = 0; n < SIZE; n++ )

  {

    cout << endl;

    cout << "Введите номер модели: ";

    cin >> apart [ n ].modelnumber;

    cout << "Введите номер части: ";

    cin >> apart [ n ].partnumber;

    cout << "Введите стоимость: ";

    cin >> apart [ n ].cost;

  }

  cout << endl;

  for ( n = 0; n < SIZE; n++ )

  {

    cout << "Модель " << apart [ n ].modelnumber;

cout << "  Часть  " << apart [ n ].partnumber;

    cout << "  Стоимость  " << apart [ n ].cost << endl;

  }

  return 0;

}

Пользователь вводит номер модели, номер части и стоимость части. Програм- ма записывает эти данные в структуру. Однако эта структура является только одним из элементов массива структур. Программа запрашивает данные для раз- ных частей и хранит их в четырех элементах массива apart. Затем она выводит информацию. Примеры вывода программы:

Введите номер модели: 44 Введите номер части: 4954 Введите стоимость: 133.45

Введите номер модели: 44 Введите номер части: 8431 Введите стоимость: 97.59

Введите номер модели: 77 Введите номер части: 9343 Введите стоимость: 109.99

Введите номер модели: 77 Введите номер части: 4297 Введите стоимость: 3456.55

Модель 44 Часть 4954 Стоимость         133.45

Модель 44 Часть 8431 Стоимость         97.59

Модель 77 Часть 9343 Стоимость         109.99

Модель 77 Часть 4297 Стоимость         3456.55

Массив структур определен в строке: part apart [ SIZE ];

Здесь применен тот же синтаксис, что и для массивов, использующих основ- ные типы данных. Только имя типа part показывает нам, что этот массив содер- жит данные более сложного типа.

Доступ к данным, членам структуры, которая является элементом массива, требует нового синтаксиса. Например, apart [ n ].modelnumber

ссылается на переменную modelnumber структуры, которая является n элемен- том массива apart. На рис. 7.5 показано, как это выглядит.

Массивы структур — это полезный тип данных, используемый в различных ситуациях. Мы показали массив запчастей для машины, но мы могли хранить в массиве и личные данные сотрудников (имя, возраст, зарплата), и географиче- ские особенности городов (название, количество населения, высота над уровнем моря), и многое другое.

Рис. 7.5. Массив структур

 

11