Если вам нужно получить доступ к отдельным элементам массива
int t;
for(t=0; inv_var.itern[t]; t++)
cout << inv_var.item[t];
Структуры могут быть элементами массивов. И в самом деле, массивы структур используются довольно часто. Чтобы объявить массив структур, необходимо сначала определить структуру, а затем объявить массив элементов этого структурного типа. Например, чтобы объявить
inv_type invtry[100];
Чтобы получить доступ к конкретной структуре в массиве структур, необходимо индексировать имя структуры. Например, чтобы отобразить на экране содержимое члена
cout << invtry[2].on_hand;
Подобно всем переменным массивов, у массивов структур индексирование начинается с нуля.
Чтобы продемонстрировать применение структур, разработаем простую программу управления складом, в которой для хранения информации о товарах, размещенных на складе компании, используется массив структур типа
Инвентарная ведомость будет храниться в структурах типа
const int SIZE = 100;
struct inv_type {
char item[40]; // наименование товара
double cost; // стоимость
double retail; // розничная цена
int on_hand; // имеющееся в наличии количество
int lead_time; // число дней до пополнения запасов
} invtry[SIZE];
Размер массива выбран произвольно. При желании его можно легко изменить. Обратите внимание на то, что размерность массива задана с использованием
Разрабатываемая программа должна обеспечить выполнение следующих действий:
■ ввод информации о товарах, хранимых на складе;
■ отображение инвентарной ведомости;
■ модификация заданного элемента.
Прежде всего напишем функцию
int main()
{
char choice;
init_list();
for(;;) {
choice = menu();
switch(choice) {
case 'e': enter();
break;
case 'd': display();
break;
case 'u': update();
break;
case 'q': return 0;
}
}
}
Функция
// Инициализация массива структур.
void init_list()
{
int t;
// Имя нулевой длины означает пустое имя.
for(t=0; t
}
Функция
Функция
// Получение команды меню, выбранной пользователем.
int menu()
{
char ch;
cout << '\n';
do {
cout << "(E)nter\n"; // Ввести новый элемент.
cout << "(D)isplay\n"; // Отобразить всю ведомость.
cout << "(U)pdate\n"; // Изменить элемент.
cout << "(Q)uit\n\n"; // Выйти из программы.
cout << "Выберите команду: ";
cin >> ch;
}while(!strchr("eduq", tolower(ch)));
return tolower(ch);
}