Перейти к основному содержанию
EDU-MMCS
  • В начало
  • Дополнительно
Вы используете гостевой доступ
Вход
В начало
  1. Prog_3
  2. Лабораторная работа 5. Классы и функции

Лабораторная работа 5. Классы и функции

Требуемые условия завершения
Открыто с: пятница, 10 октября 2025, 00:00
Срок сдачи: пятница, 17 октября 2025, 00:00

Задание 1: Базовая структура

  1. Объявите перечисление MusicGenre с музыкальными жанрами

  2. Создайте структуру Song с полями: id, название, исполнитель, альбом, год, жанр, длительность, количество прослушиваний

  3. Напишите функцию addSong() для добавления трека в коллекцию

Задание 2: Функции вывода

  1. Напишите функцию printSong() для вывода информации о треке

  2. Создайте функцию displayAllSongs() для показа всей коллекции

  3. Напишите функцию showSongsByGenre() для фильтрации по жанру

Задание 3: Функции с возвращаемыми значениями

  1. Реализуйте функцию playSong(), которая увеличивает счетчик прослушиваний

  2. Напишите функцию getTotalDuration(), которая возвращает общую длительность коллекции

  3. Создайте функцию findMostPopularSong(), которая возвращает указатель на самый популярный трек

Задание 4: Поиск и фильтрация

  1. Напишите функцию searchByArtist(), которая ищет все треки исполнителя

  2. Реализуйте функцию findSongsFromYear() для поиска треков по году выпуска

  3. Создайте функцию getLongestSong(), которая возвращает указатель на самый длинный трек

Задание 5: Статистика

  1. Напишите функцию showStatistics() которая показывает:

    • Общее количество треков

    • Общую длительность

    • Самый популярный жанр

    • Среднюю длительность треков

🎹 Пример реализации меню:

cpp
int main() {
    const int MAX_SONGS = 20;
    Song playlist[MAX_SONGS];
    int songCount = 0;
    
    int choice;
    do {
        std::cout << "\n=== МУЗЫКАЛЬНАЯ КОЛЛЕКЦИЯ ===" << std::endl;
        std::cout << "1. Добавить трек" << std::endl;
        std::cout << "2. Показать все треки" << std::endl;
        std::cout << "3. Показать треки по жанру" << std::endl;
        std::cout << "4. Найти треки исполнителя" << std::endl;
        std::cout << "5. Воспроизвести трек" << std::endl;
        std::cout << "6. Показать статистику" << std::endl;
        std::cout << "7. Найти самый популярный трек" << std::endl;
        std::cout << "8. Найти самый длинный трек" << std::endl;
        std::cout << "0. Выход" << std::endl;
        std::cout << "Выберите действие: ";
        std::cin >> choice;
        
        // обработка выбора
    } while (choice != 0);
    
    return 0;
}



Вы используете гостевой доступ (Вход)
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика
На платформе Moodle