/Music-Chart

Simulation of music chart changes in time

Primary LanguageC++

Music Chart

Exam Practice

var 58

GUI

На главной форме сверху находится переключатель даты (месяц, год), при изменении выполняется автоматическая генерация истории популярности и её подсчет в данный момент, что можно наблюдать в таблицах слева (для исполнителей) и справа для композиций.

Что бы можно было осуществлять перемотку во времени и при этом не хранить всю историю, при создании нового автора/композиции ему присваивается семя в зависимости от имени и уже на основе этого хеша выполняется генерация.

Ниже поля даты находится интерфейс фильтрации композиций по жанру и по исполнителю, можно фильтровать одновременно по нескольким жанрам и исполнителю. Что бы отфильтровать нужно нажать на кнопку Filter, что бы снять фильтрацию и восстановить интерфейс фильтрации в начальное состояние нужно нажать на кнопку Clear filter.

Так же можно фильтровать композиции по автору просто нажимая на автора в таблице слева.

Нажимая на композицию в таблице справа, в таблице авторов выделится автор данной композиции.

Авторы и композиции автоматически сортируются по популярности.

Можно добавить новых авторов и композиции нажав на соответствующие кнопки. Автор добавится только в том случае если его имя будет не пустым и будет выбран хотя бы 1 жанр. На имя исполнителя и композиции наложен валидатор, который разрешает использовать только латинские символы a-Z, пробелы и цифры.

После добавления система обновляется.

Если выбрать композицию в таблице справа и нажать на кнопку Show selected composition history, сгенерируется график популярности от времени для данной композиции с момента её релиза.

Выделенные элементы таблиц сохраняют выделения после пересортировки/фильтрации/обновления.

Все формы адаптивны.

Для создания графиков использовалась библиотека QCustomPlot https://www.qcustomplot.com