GithubHelp home page GithubHelp logo

urfu-java-project's Introduction

Итоговый проект по курсу "Java. Основы программирования на РТФ."

Информация о проекте

  • Вариант 1
  • Используемые maven модули:
    • com.opencsv:opencsv:5.7.1 - модуль для упрощённого парсинга csv файлов
    • org.xerial:sqlite-jdbc:3.40.0.0 - модуль для работы с базой данных SQLite
    • org.knowm.xchart:xchart:3.6.5 - модуль для построения графиков

Ход работы

В первую очередь необходимо написать класс для парсинга csv-таблицы и сохранения результата в качестве базы данных SQLite. Для этого было решено использовать модули opencsv и sqlite-jdbc.

Поскольку мне не нравится писать классы сугубо для одной задачи, я решил сделать все классы в модуле Table универсальными и легко расширяемыми.

Все SQL команды для создания бд в модуле Table генерируются в зависимости от исходной таблицы. Все типы для столбцов также определяются автоматически.

Названия столбцов в базе данных генерируются по следующим правилам: используется camelCase, пробелы игнорируются, все символы после любого не-буквенно-числового символа игнорируются. Например:

  • Happiness Score -> happinessScore
  • Health (Life Expectancy) -> health

После написания модуля Table я написал главную функцию main в модуле Main, чтобы проверить его работоспособность.

Коммит

Далее уже было необходимо делать сами задания. Для этого я создал класс Tasks, в котором будут реализованы все три задачи.

В классе Table.Database был реализован дополнительный метод для обработки запросов, возвращающий все необходимые результаты.

В первом задании для построения графика я решил использовать модуль xchart, так как он мне показался более простым, чем jfreechart.

Тут вызывает вопросы формулировка "объеденив их по странам". Я просто составил график, в котором все страны представлены как отдельные столбцы, на которые можно навестись и получить информацию о стране. Они отсортированы в алфавитном порядке.

На графике отсутствуют легенда и значения по оси X, поскольку они не несут никакой полезной информации в таком плотном графике.

Второе задание не вызвало никаких проблем.

В третьем задании в расчёт "самых средних показателей" я включил только столбцы economy, family, health, freedom, trust, generosity. Все прочие столбцы, как мне показалось, являются производными или дополнительными, и их не стоит включать в расчёт.

Коммит

Ответы на задания

Tasks

Задание 1:

«Сформируйте график по показателю экономики объеденив их по странам»

  • график на скриншоте выше

Задание 2:

«Выведите в консоль страну с самым высоким показателем экономики среди "Latin America and Caribbean" и "Eastern Asia"»

  • Hong Kong

Задание 3:

«Найдите страну с "самыми средними показателями" среди "Western Europe" и "North America"»

  • Austria

urfu-java-project's People

Contributors

fufsob avatar

Watchers

 avatar

Forkers

pigr

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.