GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - AlexaJavaDev/CarManagerApp: Консольное приложение для управления автомобилями.

BranchesTags
Open more actions menu

Latest commit

 

History

3 Commits
3 Commits

Folders and files

NameName
Last commit message
Last commit date
.idea
.idea
 
 
src
src
 
 
.gitignore
.gitignore
 
 
README.md
README.md
 
 
carSorting.iml
carSorting.iml
 
 
pom.xml
pom.xml
 
 

Repository files navigation

Car Manager App

Консольное приложение для управления списком автомобилей с поддержкой сортировки, фильтрации, многопоточности и автосохранения.


Мой вклад в проект

В рамках командной разработки я отвечала за следующие модули:

  • Консольное меню — реализация навигации, обработка выбора и ошибок ввода.
  • Ручное добавление машин — пошаговый ввод модели, мощности и года с валидацией.
  • Генерация случайных машин — добавление рандомного автомобиля.
  • Вывод списка — нумерация, форматирование и отображение всех машин.
  • Сортировки — по модели, мощности, году выпуска (с использованием стратегий).
  • Удаление — одной машины по номеру или всех с подтверждением.
  • Работа с файлами — ручное сохранение/загрузка, автосохранение при выходе, запоминание последнего файла.
  • Отмена последнего действия (Undo) — реализована через декоратор UndoCarCollection.
  • Валидация ввода — проверка полей через FieldValidator, циклы повторного ввода.
  • Поддержка английской раскладки — ответы да/lf, нет/ytn, yes/no.
  • Тестирование — написаны тесты для класса Car и сортировки по модели.
  • Оформление репозитория — подготовка README.md и структуры проекта.

Архитектура проекта разработана совместно с командой.
Ссылка на исходный репозиторий: danypevzner/CarSorting


Возможности

  • Добавление машин вручную или случайной генерацией
  • Загрузка и сохранение списка в CSV-файл
  • Автосохранение при выходе с запоминанием последнего файла
  • Сортировка по модели, мощности или году
  • Расширенная сортировка с выбором алгоритма
  • Многопоточный поиск по модели
  • Удаление одной или всех машин
  • Отмена последнего действия

Стек технологий

  • Java 17+
  • Maven
  • TestNG
  • Многопоточность (parallelStream)
  • Git / GitHub

Что здесь можно делать?

  • Добавлять машины — вручную или случайной генерацией.
  • Загружать и сохранять файлы с машинами (формат .csv с разделителем ;).
  • Сортировать по модели, мощности или году выпуска.
  • Выбирать алгоритм сортировки — пузырьковая, вставками или выбором.
  • Искать машины по модели в многопоточном режиме (да, это быстро).
  • Удалять одну машину по номеру или все сразу (с подтверждением).
  • Автосохранение при выходе — программа запоминает последний файл и предлагает загрузить его при следующем запуске.

Почему это удобно?

  • Файл запоминается.
    При следующем запуске программа спросит: «Загрузить последний сохранённый файл?» — и если ответить «да», всё подхватится автоматически.
  • Ответы на да/нет работают в обеих раскладках.
    Можно вводить да, yes, lf, нет, no, ytn — программа поймёт.
  • Сортировка с выбором — можно сравнить разные алгоритмы на одном и том же списке.
  • Поиск через несколько потоков — ускорение работы на больших данных.

Как это устроено внутри?

  • Car — это record, который содержит модель, мощность и год выпуска.
  • CarCollection — умная коллекция, умеет сортировать по полям, фильтровать чётные значения и считать вхождения.
  • CliClient — консольный интерфейс, который общается с пользователем и управляет данными.
  • FileUtil — отвечает за чтение и запись файлов, работает с CSV.
  • lastFile.txt — маленький служебный файл, в котором хранится имя последнего сохранённого файла.

Как запустить

git clone https://github.com/AlexaJavaDev/CarManagerApp.git
cd CarManagerApp
mvn compile
mvn exec:java -Dexec.mainClass="App"

Или просто открой в IntelliJ IDEA и запусти App.java.

Формат файла:
Файлы сохраняются в простом текстовом формате:

Model;Power;Year
Tesla;250;2020
BMW;200;2010

Разделитель — точка с запятой, чтобы легко открывалось в Excel.


Почему это стоит попробовать?

  1. Потому что это живой проект, а не сухое упражнение.
  2. Потому что он думает за тебя: запоминает файлы, понимает разные раскладки, не даёт удалить всё случайно.
  3. Потому что здесь есть многопоточность — а это уже не совсем «новичковый» уровень.

Что дальше?

  • Проект можно развивать:
  • Добавить GUI.
  • Добавить базу данных.
  • Расширить поиск по годам и мощности.

Но и в текущем виде это — полноценный инструмент, которым можно пользоваться каждый день.

About

Консольное приложение для управления автомобилями.

Resources

Readme
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.