С++. Программу Створити за допомогою функцiй і використовуючи regex
Описати структуру з ім'ям NOTE, що містить наступні поля:
• Прізвище ім'я;
• Номер телефону;
• День народження (масив з трьох чисел).
Вивести записи які розміщені за алфавітом;
Вивести на екран інформації про людей, чиї дні народження припадають на місяць, значення якого введене з клавіатури; • Якщо такого немає, видати на дисплей відповідне повідомлення.
Answers & Comments
Ответ:
#include <iostream>
#include <string>
#include <vector>
#include <regex>
#include <algorithm>
struct NOTE {
std::string name;
std::string phone_number;
int birthday[3];
};
bool compare_notes(const NOTE& note1, const NOTE& note2) {
return note1.name < note2.name;
}
void print_notes(const std::vector<NOTE>& notes) {
for (const auto& note : notes) {
std::cout << "Name: " << note.name << std::endl;
std::cout << "Phone number: " << note.phone_number << std::endl;
std::cout << "Birthday: " << note.birthday[0] << "/" << note.birthday[1] << "/" << note.birthday[2] << std::endl;
std::cout << std::endl;
}
}
void print_notes_by_month(const std::vector<NOTE>& notes, int month) {
bool found_note = false;
for (const auto& note : notes) {
if (note.birthday[1] == month) {
std::cout << "Name: " << note.name << std::endl;
std::cout << "Phone number: " << note.phone_number << std::endl;
std::cout << "Birthday: " << note.birthday[0] << "/" << note.birthday[1] << "/" << note.birthday[2] << std::endl;
std::cout << std::endl;
found_note = true;
}
}
if (!found_note) {
std::cout << "No notes found with birthday in the specified month." << std::endl;
}
}
int main() {
std::vector<NOTE> notes = {
{"John Smith", "123-456-7890", {1, 2, 1980}},
{"Alice Johnson", "234-567-8901", {3, 4, 1990}},
{"Bob Jones", "345-678-9012", {5, 6, 2000}},
{"Charlie Brown", "456-789-0123", {7, 8, 1970}},
{"David Lee", "567-890-1234", {9, 10, 1985}},
{"Emily Davis", "678-901-2345", {11, 12, 1995}},
};
// Sort notes by name
std::sort(notes.begin(), notes.end(), compare_notes);
// Print sorted notes
std::cout << "Notes sorted by name:" << std::endl;
print_notes(notes);
// Print notes with birthday in specified month
int month;
std::cout << "Enter month to search for (1-12): ";
std::cin >> month;
print_notes_by_month(notes, month);
return 0;
}
Объяснение:
У цьому коді структура NOTE містить ім'я, номер телефону та день народження як масив з трьох чисел. Функція `compare