Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created May 12, 2026 16:36
Show Gist options
  • Select an option

  • Save sunmeat/7b8cdfbe07c362a392e8ec52655b701e to your computer and use it in GitHub Desktop.

Select an option

Save sunmeat/7b8cdfbe07c362a392e8ec52655b701e to your computer and use it in GitHub Desktop.
ДЗ на класи та конструктори

На основі попереднього домашнього завдання про картки товарів:


Перепишіть програму з використанням двох класів:

1. Клас Продукт (Product)

Клас має описувати один товар і містити такі властивості:

  • imageUrl — посилання на зображення товару (рядок)
  • name — назва товару (рядок)
  • rating — рейтинг від 1 до 5 (дробове число)
  • price — ціна без знижки (дробове число)
  • discountedPrice — ціна зі знижкою (дробове число)

Клас повинен мати метод render() або createCard(), який повертає DOM-елемент (div.card) з повністю сформованою карткою товару.


2. Клас ГенераторПродуктів (ProductGenerator)

Клас, який відповідає за створення та вставку товарів на сторінку.

Він повинен мати метод:

  • generate(productsCount) — створює задану кількість об’єктів Продукт і вставляє їх на сторінку у вигляді сітки.

Вимоги до картки товару:

  • Картка реалізується через div з дочірніми елементами.
  • На картці має бути:
    • Зображення товару
    • Назва товару
    • Рейтинг у вигляді зірок (1–5)
    • Ціна без знижки (закреслена)
    • Ціна зі знижкою (виділена)
    • Кнопка «Додати в кошик» (поки що не функціональна)
  • Картка має бути красиво оформлена за допомогою CSS (сучасний вигляд, як у Rozetka, OLX, Prom, Monobazar тощо).

Основне завдання:

  • Використовуючи клас ГенераторПродуктів, згенеруйте наприклад 25 товарів (виклик generate(25)).
  • Товари мають формувати сітку 5×5.
  • Сітка має бути адаптивною (рекомендується використовувати CSS Grid).

  • Рішення викласти у публічний GitHub-репозиторій.
  • У репозиторії мають бути скріншоти результату!!!
  • Посилання на репозиторій надати у коментарі до цього ДЗ.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment