Терміново!!! Програма C++
Описати структуру з ім’ям NOTE, що містить наступні поля: NAME –
прізвище, ім’я, TEL – номер телефону, BDAY – день народження (масив
із трьох чисел). Написати програму, що окремими функціями виконує
наступні дії:
– введення з клавіатури даних у масив BLOCKNOTE, що складається з N
змінних типу NOTE;
– впорядкування записів за зростанням дат днів народження;
– виведення на екран інформації про людей, чиї дні народження
припадають на місяць, значення якого введено з клавіатури; якщо таких
людей немає, то вивести відповідне повідомлення.
Answers & Comments
Ответ:
Ниже приведен код на C++, который решает данную задачу:
```cpp
#include <iostream>
#include <string>
using namespace std;
// описание структуры NOTE
struct NOTE {
string NAME; // прізвище, ім'я
string TEL; // номер телефону
int BDAY[3]; // день народження (масив із трьох чисел)
};
// функция для ввода данных в массив BLOCKNOTE
void input(NOTE BLOCKNOTE[], int N) {
for (int i = 0; i < N; i++) {
cout << "Введіть прізвище та ім'я: ";
getline(cin, BLOCKNOTE[i].NAME);
cout << "Введіть номер телефону: ";
getline(cin, BLOCKNOTE[i].TEL);
cout << "Введіть день народження (формат: дд.мм.рррр): ";
scanf("%d.%d.%d", &BLOCKNOTE[i].BDAY[0], &BLOCKNOTE[i].BDAY[1], &BLOCKNOTE[i].BDAY[2]);
cin.ignore(); // очистка буфера ввода
}
}
// функция для сортировки записей по возрастанию дней рождения
void sort(NOTE BLOCKNOTE[], int N) {
for (int i = 0; i < N - 1; i++) {
for (int j = i + 1; j < N; j++) {
if (BLOCKNOTE[i].BDAY[0] > BLOCKNOTE[j].BDAY[0] ||
(BLOCKNOTE[i].BDAY[0] == BLOCKNOTE[j].BDAY[0] && BLOCKNOTE[i].BDAY[1] > BLOCKNOTE[j].BDAY[1])) {
NOTE temp = BLOCKNOTE[i];
BLOCKNOTE[i] = BLOCKNOTE[j];
BLOCKNOTE[j] = temp;
}
}
}
}
// функция для вывода информации о людях, чьи дни рождения приходятся на заданный месяц
void printByMonth(NOTE BLOCKNOTE[], int N, int month) {
bool found = false;
cout << "Список людей, чьи дни рождения приходятся на месяц " << month << ":" << endl;
for (int i = 0; i < N; i++) {
if (BLOCKNOTE[i].BDAY[1] == month) {
cout << BLOCKNOTE[i].NAME << ", " << BLOCKNOTE[i].TEL << ", " << BLOCKNOTE[i].BDAY[0] << "." << BLOCKNOTE[i].BDAY[1] << "." << BLOCKNOTE[i].BDAY[2] << endl;
found = true;
}
}
if (!found) {
cout << "Немає людей, чиї дні народження припадають на місяць " << month << endl;
}
}
int main() {
const int N = 3; // количество записей в массиве BLOCKNOTE
NOTE BLOCKNOTE[N]; // массив записей
input(BLOCKNOTE, N); // ввод данных в массив BLOCKNOTE
sort(BLOCKNOTE, N); // сортировка записей по дням рождения
printByMonth(BLOCKNOTE, N, 6); // вывод информации о людях, чьи дни рождения приходятся на июнь
return 0;
}
```
В данном коде имеется структура NOTE, которая содержит данные о человеке (прізвище, ім'я, номер телефона, день рождения). В функции input происходит ввод данных в массив BLOCKNOTE. Функция sort сортирует записи по возрастанию дней рождения. Функция printByMonth выводит информацию о людях, чьи дни рождения приходятся на заданный месяц (в данном случае на июнь).