Предмет: Информатика, автор: anastasiyafomina353

С++. Программу Створити за допомогою функцiй і використовуючи regex і string

Описати структуру з ім'ям NOTE, що містить наступні поля:
• Прізвище ім'я;
• Номер телефону;
• День народження (масив з трьох чисел).

Вивести записи які розміщені за алфавітом; Вивести на екран інформації про людей, чиї дні народження припадають на місяць, значення якого введене з клавіатури;

• Якщо такого немає, видати на дисплей відповідне повідомлення. ​

Ответы

Автор ответа: cevase
0

Ответ:

Ось програма на C++, яка відповідає на ваше завдання:

#include <iostream>

#include <string>

#include <regex>

#include <vector>

#include <algorithm>

using namespace std;

struct NOTE {

string name;

string phone;

int birthday[3];

};

// Функція, яка порівнює дві записи за алфавітом

bool compare_notes(const NOTE& note1, const NOTE& note2) {

return note1.name < note2.name;

}

// Функція, яка виводить записі, що мають день народження у заданому місяці

void print_notes_with_birthday_in_month(const vector<NOTE>& notes, int month) {

bool found = false;

for (const NOTE& note : notes) {

if (note.birthday[1] == month) {

cout << note.name << " " << note.phone << " " << note.birthday[0] << "/" << note.birthday[1] << "/" << note.birthday[2] << endl;

found = true;

}

}

if (!found) {

cout << "Немає записів з днем народження у заданому місяці." << endl;

}

}

int main() {

// Створення вектору записів

vector<NOTE> notes = {

{"Іванов Іван", "123456789", {1, 1, 2000}},

{"Петров Петро", "987654321", {2, 2, 1999}},

{"Сидорова Олена", "555555555", {3, 3, 1998}},

};

// Сортування записів за алфавітом

sort(notes.begin(), notes.end(), compare_notes);

// Виведення відсортованих записів

cout << "Записи відсортовані за алфавітом:" << endl;

for (const NOTE& note : notes) {

cout << note.name << " " << note.phone << " " << note.birthday[0] << "/" << note.birthday[1] << "/" << note.birthday[2] << endl;

}

// Введення місяця дня народження

int month;

cout << "Введіть місяць дня народження: ";

cin >> month;

// Виведення записів з днем народження у заданому місяці

print_notes_with_birthday_in_month(notes, month);

return 0;

}

У цій програмі використовуються функції compare_notes і print_notes_with_birthday_in_month. Перша функція порівнює дві записи за алфавітом і повертає true, якщо перша запис має менше ім'я, ніж друга. Друга функція виводить всі записи, які мають день народження у заданому місяці, або повідомляє, що таких записів немає. Для роботи з рядками із використанням регулярних виразів в програмі використовується бібліотека regex. Для зберігання даних про записи використовується структура NOTE, яка містить поля для прізвища та імені, номеру телефону та дати народження. Для зберігання записів у векторі використовується стандартна бібліотека vector. Крім того, в програмі використовується функція sort, яка сортує записи за алфавітом.

Похожие вопросы