C/C++

Каталог текстов песен на C++

задание
Создайте приложение «Каталог текстов песен». Приложение должно иметь следующие возможности:
Добавление текста песни:
• Текст песни:
хх может быть введен с клавиатуры; хх загружен из файла.
• Для каждой песни нужно указывать название песни, автора текста и год создания песни (если он известен).
Удаление текста песни. Изменение текста песни.
Отображение текста песни на экран. Сохранение текста песни в файл.
Поиск и отображение всех песен одного автора. Поиск и отображение всех песен, содержащих слово, указанное пользователем.


Прошу помочь мне написать код! На C++ Дураки к ответу не допускаются.
Убеждаю вас, НЕ КОПИРОВАТЬ С САЙТОВ, И НЕ КОПИРОВАТЬ С СЫРОЙ НЕЙРОСЕТИ
Для создания приложения "Каталог текстов песен" на C++, вам потребуется использовать структуры данных и функции для выполнения указанных задач. Вот пример реализации, который включает основные функции, описанные в задании:

```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

struct Song {
std::string title;
std::string author;
int year;
std::string lyrics;
};

std::vector<Song> catalog;

void addSong() {
Song newSong;
std::cout << "Введите название песни: ";
std::getline(std::cin >> std::ws, newSong.title);
std::cout << "Введите автора текста песни: ";
std::getline(std::cin >> std::ws, newSong.author);
std::cout << "Введите год создания песни (если известен): ";
std::cin >> newSong.year;
std::cout << "Введите текст песни: ";
std::getline(std::cin >> std::ws, newSong.lyrics);
catalog.push_back(newSong);
std::cout << "Песня успешно добавлена!\n";
}

void deleteSong() {
std::string title;
std::cout << "Введите название песни для удаления: ";
std::getline(std::cin >> std::ws, title);

auto it = std::find_if(catalog.begin(), catalog.end(), [&](const Song& song) {
return song.title == title;
});

if (it != catalog.end()) {
catalog.erase(it);
std::cout << "Песня успешно удалена!\n";
} else {
std::cout << "Песня не найдена.\n";
}
}

void modifySong() {
std::string title;
std::cout << "Введите название песни для изменения: ";
std::getline(std::cin >> std::ws, title);

auto it = std::find_if(catalog.begin(), catalog.end(), [&](const Song& song) {
return song.title == title;
});

if (it != catalog.end()) {
std::cout << "Введите новый текст песни: ";
std::getline(std::cin >> std::ws, it->lyrics);
std::cout << "Песня успешно изменена!\n";
} else {
std::cout << "Песня не найдена.\n";
}
}

void displaySong(const Song& song) {
std::cout << "Название: " << song.title << std::endl;
std::cout << "Автор: " << song.author << std::endl;
std::cout << "Год создания: " << song.year << std::endl;
std::cout << "Текст песни:\n" << song.lyrics << std::endl;
std::cout << std::endl;
}

void displayAllSongs() {
if (catalog.empty()) {
std::cout << "Каталог пуст.\n";
return;
}

for (const auto& song : catalog) {
displaySong(song);
}
}

void saveToFile() {
std::string filename;
std::cout << "Введите имя файла для сохранения: ";
std::getline(std::cin >> std::ws, filename);

std::ofstream file(filename);
if (file
АА
Андрей Абеляшев
14 368
Лучший ответ