Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавлена реализация решения задачи по анализу рабочего времени сотрудников #10

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

theinlaoq
Copy link

Добавлено решение задачи, включающее следующие изменения:
Реализована программа на Java для анализа данных о списании рабочего времени сотрудников из файла report.txt.
Добавлен файл конфигурации config.properties для указания путей к входным и выходным файлам.
Обновлен README.md с инструкцией по сборке и запуску решения.
Программа выполняет анализ данных и записывает результаты в result.txt согласно заданным условиям.

@@ -0,0 +1,38 @@
target/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Молодец, что добавил .gitignore.
сам писал или автоснегерированный?

Path reportPath = reportFile.toPath();

//чтение каждой строки из файла в список
List<String> textLines = Files.readAllLines(reportPath);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тут не принципиально скорее всего, но что если у тебя размер файла превышает размер памяти? Я бы делал через FileReader (погугли примеры)

Map<String, Employee> employeeMap = new HashMap<>();

//сохранение недельной нормы(первая строка файла)
weeklyNorm = Double.parseDouble(textLines.get(0));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ты подразумеваешь тут, что у тебя чистые данные. parseDouble throws exception надо обрабатывать

}

//вспомогательный класс
static class Employee{

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Почему статик, почему не выделил в отдельный .java file?

//собирается полное имя в соответсвии с выходными данными
//работник помещается в мапу с (K, V) -> (UID, Employee), Employee - статический вложенный класс
for(int i = 1; i < textLines.size(); i++) {
String[] parts = textLines.get(i).split(" ");

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мож ты не доделал еще, но как-будто у тебя схема данных в файле не совсем совпадает с тем, что ты тут процессишь? ID я например в файле вообще не вижу. Использовать пробел в качестве разделителя это опасно (если только это прям не требование), потому что например добавится город в файл, или например фамилия сложная (какой нить Хаджи Магомедов) - твой парсинг посыпется сразу. Используй запятую лучше, csv (comma delimited values) очень распространенный формат данных как раз для таких задач

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants