Частина тексту файла (без зображень, графіків і формул):
НАЦІОНАЛЬНИЙ АВІАЦІЙНИЙ УНІВЕРСИТЕТ
Кафедра комп’ютеризованих систем захисту інформації
ЗВІТ
З ЛАБОРАТОРНОЇ РОБОТИ №3
з дисципліни
«Технології програмування»
Київ 2023
Тема: Структури. Вкладені структури. Масиви структур.
Мета: Навчитись використовувати структури, вкладені структури та створювати масиви структур.
Варіант №12.
1. Визначити структуру з іменем APRT1, яка містить наступні поля:
Кількість кімнат;
Поверх;
Площа;
2. Визначити структуру з іменем APRT2, яка містить наступні поля:
Адреса;
Кількість людей, які проживають в квартирі;
3. Визначити структуру з іменем APARTMENTS, елементами якої є елементи структур APART1 та APART2.
4. Ввести з клавіатури дані в масив, який складається з N структур типу APARTMENTS.
5. Сортувати записи за адресами в алфавітному порядку.
6. Обрати найменшу площу серед квартир.
7. Визначити максимальну кількість кімнат на найвищому поверсі з запропонованих квартир.
8. Обрати найбільш густонаселену квартиру.
9. Вивести на екран інформацію про квартиру за введеною з клавіатури адреси. Якщо такої квартири немає, вивести відповідне повідомлення на екран.
Код програми:
#include <iostream>
#include <algorithm>
#include <string>
#include <windows.h>
using namespace std;
struct APRT1 {
int num_rooms;
int floor;
float area;
};
struct APRT2 {
string address;
int num_people;
};
struct APARTMENTS {
APRT1 apartment1;
APRT2 apartment2;
};
bool compareApartments(APARTMENTS a1, APARTMENTS a2) {
return a1.apartment2.address < a2.apartment2.address;
}
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
const int N = 4;
APARTMENTS apartments[N];
// Ввести дані в масив структур
for (int i = 0; i < N; i++) {
cout << "Квартира #" << i + 1 << endl;
cout << "Кількість кімнат: ";
cin >> apartments[i].apartment1.num_rooms;
cout << "Поверх: ";
cin >> apartments[i].apartment1.floor;
cout << "Площа: ";
cin >> apartments[i].apartment1.area;
cout << "Адреса: ";
cin.ignore();
getline(cin, apartments[i].apartment2.address);
cout << "Кількість людей, які проживають в квартирі: ";
cin >> apartments[i].apartment2.num_people;
cout << endl;
}
// Сортування за адресами в алфавітному порядку
sort(apartments, apartments + N, compareApartments);
// Пошук квартири з найменшою площею
float min_area = apartments[0].apartment1.area;
for (int i = 1; i < N; i++) {
if (apartments[i].apartment1.area < min_area) {
min_area = apartments[i].apartment1.area;
}
}
// Пошук максимальної кількості кімнат на найвищому поверсі
int max_rooms = 0;
for (int i = 0; i < N; i++) {
if (apartments[i].apartment1.floor == apartments[N - 1].apartment1.floor) {
if (apartments[i].apartment1.num_rooms > max_rooms) {
max_rooms = apartments[i].apartment1.num_rooms;
}
}
}
// Пошук найбільш густонаселеної квартири
int max_people = 0;
int index_max_people = 0;
for (int i = 0; i < N; i++) {
if (apartments[i].apartment2.num_people > max_people) {
max_people = apartments[i].apartment2.num_people;
index_max_people = i;
}
}
// Виведення на екран інформації про квартиру за введеною адресою
cout << "Введіть адресу квартири: ";
string search_address;
cin.ignore();
getline(cin, search_address);
bool found = false;
for (int i = 0; i < N; i++) {
if (apartments[i].apartment2.address == search_address) {
found = true;
cout << "Квартира знайдена:" << endl
<< "Кількість кімнат: " << apartments[i].apartment1.num_rooms << endl
<< "Поверх: " << apartments[i].apartment1.floor << endl
<< "Площа: " << apartments[i].apartment1.area << endl
<< "Адреса: " << apartments[i].apartment2.address << endl
<< "Кількість людей, які проживають в квартирі: " << apartments[i].apartment2.num_people << endl;
break;
}
}
if (!found) {
cout << "Квартира не знайдена." << endl;
}
// Виведення результатів
cout << endl << "Сортування в алфавітному порядку:" << endl;
for (int i = 0; i < N; i++) {
cout << apartments[i].apartment2.address << endl;
}
cout << endl << "Найменша площа серед квартир: " << min_area << endl;
cout << endl << "Максимальна кількість кімнат на найвищому поверсі: " << max_rooms << endl;
cout << endl << "Найбільш густонаселена квартира:" << endl
<< "Адреса: " << apartments[index_max_people].apartment2.address << endl
<< "Кількість людей, які проживають в квартирі: " << apartments[index_max_people].apartment2.num_people << endl;
return 0;
}
/
/
Блок-схема програми:
/
/
Висновок: Навчилась використовувати структури, вкладені структури та створювати масиви структур.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!