• Предмет: Информатика
  • Автор: skippiW
  • Вопрос задан 3 месяца назад

Терміново!!! Програма C++
Описати структуру з ім’ям NOTE, що містить наступні поля: NAME –
прізвище, ім’я, TEL – номер телефону, BDAY – день народження (масив
із трьох чисел). Написати програму, що окремими функціями виконує
наступні дії:
– введення з клавіатури даних у масив BLOCKNOTE, що складається з N
змінних типу NOTE;
– впорядкування записів за зростанням дат днів народження;
– виведення на екран інформації про людей, чиї дні народження
припадають на місяць, значення якого введено з клавіатури; якщо таких
людей немає, то вивести відповідне повідомлення.​

Ответы

Ответ дал: ardrig09
0

Ответ:

Ниже приведен код на 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 выводит информацию о людях, чьи дни рождения приходятся на заданный месяц (в данном случае на июнь).

Вас заинтересует