3. Третій етап виконання курсової роботи - 8bit-number/coursework-project GitHub Wiki

Table of Contents

Абстрактний тип даних, який необхідний для вирішення завдань дослідження

Оскільки завданнм даного проекту є допомога в підборі маршруту для лазіння певної складності, то для полегшення взаємодії з маршрутами створено абстракцію Ascent. Клас Ascent допомагає отримати наступну інформацію про гірські підйоми:

  • country - країна гори
  • location - пповна локація гори, яка містить інформацію про назву маршрута та додаткову інформацію про її місценаходження
  • style - стиль лазіння
  • grade - складність маршруту
  • category - категорія, до якої можна віднести певний маршрут за складністю (Beginner, Intermediate, Expert, Elite)

Методи, які використовуються в абстракції Ascent

  • category()
Окрім Ascent, також є створений клас Database, для полегшеної роботи з базою даних. Цей клас приймає назву бази даних, в якою в подальшому відбуватиметься робота. Для створення нової табиці в базі даних даних використовується метод create_table(), який додає таблицю наступні колонки: id, location, name, style, difficulty, category, coordinates. Для більш зручної роботи з даними використовується метод merge_columns(), який поєднує назву гори і її локацію в одну колонку в таблиці бази даних. Метод insert_to_table() дістає дані з файлу data.csv, опрацбовує їх, і записує вже об'єкти класу Ascent в таблицю бази даних. Для зручної роботи з записаними даними є два методи: execute_selection_by_country(country), execute_selection_by_difficulty(county, difficulty), які, відповідно,здійснюють запит в базу даних за країною, та країною і складністю.

Приклад використання абстрактного типу даних

Діаграма класів

⚠️ **GitHub.com Fallback** ⚠️