Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
f83cf37
Create PavelTrofimovReadMe
paledmi-java Dec 15, 2025
0c0b4d6
Create FedorPetrovReadMe
paledmi-java Dec 15, 2025
7d7a977
Create NikitaUdinReadMe
paledmi-java Dec 15, 2025
fce627b
Написал выбор способа заполнения данных и способа сортировки.
fendos2014 Dec 16, 2025
f76039c
Изменил имена методов в меню сортировки. Стало читабельней.
fendos2014 Dec 16, 2025
22fbb23
Дополнил логику методов.
fendos2014 Dec 16, 2025
14ff3e7
Prepared the basis for a custom collection with basic methods and con…
Dec 17, 2025
feee5af
Добавил через интерфейс в главное меню выход из программы, добавил во…
fendos2014 Dec 17, 2025
d59a109
- Clear method written
Dec 17, 2025
afa1361
dto annotation
paledmi-java Dec 18, 2025
26f5bda
Change BubbleSort on MergeSort and Sortable on SortingStrategy
ChieFCoffee22 Dec 18, 2025
512dfa5
- FileReader class written
Dec 18, 2025
d841e03
Merge remote-tracking branch 'origin/NikitaUdinDev' into PavelLeonovT…
paledmi-java Dec 19, 2025
85d9ab5
- Реализовал стратегии рандомного RandomDataGeneratorStrategy ввода и…
Dec 20, 2025
d670c06
Merge remote-tracking branch 'origin/NikitaUdinDev' into PavelLeonovT…
paledmi-java Dec 22, 2025
440f2f8
Убраны файлы Intelljidea и добавлены в gitignore
paledmi-java Dec 22, 2025
670ccf8
Merge remote-tracking branch 'origin/FedorPetrovDev' into PavelLeonov…
paledmi-java Dec 22, 2025
3308943
Merge remote-tracking branch 'origin/PavelTrofimovDev' into PavelLeon…
paledmi-java Dec 22, 2025
f1b1ea5
Реализован метод sortEvenValuesOnly для сортих
ChieFCoffee22 Dec 22, 2025
8c59a03
Merge remote-tracking branch 'origin/PavelTrofimovDev' into PavelLeon…
paledmi-java Dec 22, 2025
b5c62e2
Перевел на русский интерфейс printable и добавил перемещение назад по…
fendos2014 Dec 22, 2025
ac9c9a6
Merge remote-tracking branch 'origin/FedorPetrovDev' into PavelLeonov…
paledmi-java Dec 22, 2025
9a3ca28
Вынес scanner.close в метод закрытия программы и убрал его из цикла. …
fendos2014 Dec 22, 2025
4ddc140
Merge remote-tracking branch 'origin/FedorPetrovDev' into PavelLeonov…
paledmi-java Dec 22, 2025
f3e1b4c
- Удалены фабричные методы createFileStrategy(), createManualStrategy…
Dec 22, 2025
e97f0c6
Добавлен соединяющий класс AppController
paledmi-java Dec 23, 2025
728ec68
Убрал лишний код, оставил в методах по сортировке имён и телефонов то…
fendos2014 Dec 23, 2025
2f2f657
Разрешил конфликт слияния в Printable.java
fendos2014 Dec 23, 2025
1fc7ef9
Исправил цифру в меню. Теперь читабельней.
fendos2014 Dec 23, 2025
864b23e
Классы сортировки, заполнения коллекций и пользовательский интерфейс …
paledmi-java Dec 23, 2025
c1995ae
Реализован метод sortEvenValuesOnly для сортих
ChieFCoffee22 Dec 23, 2025
e61f263
- Удалены фабричные методы createFileStrategy(), createManualStrategy…
Dec 23, 2025
5e069dc
Merge remote-tracking branch 'origin/PavelLeonovTeamLead' into Nikita…
Dec 23, 2025
cfa6cee
- Реализован интерфейс CollectionInterface
Dec 23, 2025
e23c10f
Программа полностью готова, осталось написать тесты
paledmi-java Dec 24, 2025
e08f960
- Реализован интерфейс CollectionInterface
Dec 24, 2025
9d93ec9
Merge remote-tracking branch 'origin/PavelLeonovTeamLead' into Nikita…
Dec 24, 2025
948dae9
- Реализован метод remove() с использованием Objects.equals()
Dec 24, 2025
b278f80
фиксы багов
paledmi-java Dec 25, 2025
3290544
Merge remote-tracking branch 'origin/NikitaUdinDev' into PavelLeonovT…
paledmi-java Dec 25, 2025
5186c34
добавлена часть тестов
paledmi-java Dec 25, 2025
f2935e3
Все тесты написаны
paledmi-java Dec 25, 2025
c14d4d7
добавлены небольшие изменения
paledmi-java Dec 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.gradle
.idea/
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
Expand All @@ -10,6 +11,7 @@ build/
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
.idea/misc.xml
*.iws
*.iml
*.ipr
Expand Down Expand Up @@ -40,4 +42,4 @@ bin/
.vscode/

### Mac OS ###
.DS_Store
.DS_Store
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

17 changes: 0 additions & 17 deletions .idea/gradle.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/inspectionProfiles/Project_Default.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/misc.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

10 changes: 10 additions & 0 deletions FedorPetrovReadMe
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
### Работа с пользовательским вводом (Фёдор Петров)

Задачи:

- Реализовать меню для пользователя:
- Выбор способа заполнения данных (рандом, из файла, ручной ввод).
- Ввод длины массива/списка.
- Возможность выхода из цикла только по соответствующему выбору.
- Обеспечить корректный цикл программы, чтобы интерфейс оставался интерактивным.
- Реализовать вывод данных через интерфейс Printable.
13 changes: 13 additions & 0 deletions NikitaUdinReadMe
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
### Генерация и валидация данных (Никита Юдин)

Задачи:

- Создать классы и методы, которые заполняют коллекцию выбранного класса:
- Генерация случайных объектов.
- Чтение объектов из файла.
- Ручной ввод объектов пользователем.
- Сделать валидацию данных .
- Работать с Builder, чтобы объекты создавались корректно.
- Дополнительное задание 3: заполнение коллекций должно осуществляться посредством стримов. (Генерация данных тоже через стримы)
- 3* Коллекции для заполнения должны быть кастомными.
- (Использовать стрим для генерации данных, а результат перекладывать в кастомную коллекцию)
12 changes: 12 additions & 0 deletions PavelTrofimovReadMe
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Задача:
### Реализация паттерна «Стратегия» для сортировки (Павел Трофимов)

Задачи:

- Реализовать конкретные стратегии сортировки по каждому полю.
- Обеспечить возможность динамического выбора стратегии во время выполнения программы.
- Убедиться, что сортировка корректно работает с любым количеством объектов.

Дополнительное задание 1: дополнительно к основным сортировкам реализовать эти же алгоритмы сортировки таким образом,
что объекты классов будут сортироваться по какому-либо числовому полю: объекты с четными значениями этого поля должны быть отсортированы в натуральном порядке,
а с нечетными – оставаться на исходных позициях.
Binary file added Test.class
Binary file not shown.
1 change: 1 addition & 0 deletions Test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
public class Test { public static void main(String[] a) {} }
18 changes: 17 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,24 @@ dependencies {
testImplementation platform('org.junit:junit-bom:5.10.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'com.github.javafaker:javafaker:1.0.2'
}

test {
useJUnitPlatform()
}
}

java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}

task run(type: JavaExec) {
classpath = sourceSets.main.runtimeClasspath
mainClass = 'App'
standardInput = System.in
}
32 changes: 32 additions & 0 deletions savedData.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

Client{name='Андреева Дарья', phoneNumber='+79384195474', idNumber=999}
Client{name='Анжела Викторовна Блохина', phoneNumber='+79296568824', idNumber=661}
Client{name='Анжелика Кошелева', phoneNumber='+79804707713', idNumber=78}
Client{name='Антон Воронов', phoneNumber='+79938685129', idNumber=262}
Client{name='Аркадий Игнатьевич Тихонов', phoneNumber='+79337132205', idNumber=23}
Client{name='Бобылев Вячеслав', phoneNumber='+79549089324', idNumber=573}
Client{name='Большаков Матвей Эдуардович', phoneNumber='+79051246042', idNumber=591}
Client{name='Василиса Антоновна Лапина', phoneNumber='+79971387677', idNumber=853}
Client{name='Вера Артёмовна Капустина', phoneNumber='+79591168118', idNumber=461}
Client{name='Вероника Моисеева', phoneNumber='+79058575995', idNumber=889}
Client{name='Виктор Леонидович Зиновьев', phoneNumber='+79272614762', idNumber=627}
Client{name='Гаврилова Алла Владимировна', phoneNumber='+79303034501', idNumber=387}
Client{name='Екатерина Филатова', phoneNumber='+79524244998', idNumber=669}
Client{name='Ефремова Ольга Вячеславовна', phoneNumber='+79201039302', idNumber=778}
Client{name='Игнатий Ильич Антонов', phoneNumber='+79946035137', idNumber=829}
Client{name='Игнатьева Зинаида Вячеславовна', phoneNumber='+79468715374', idNumber=813}
Client{name='Кулагин Дмитрий', phoneNumber='+79019463584', idNumber=93}
Client{name='Лаврентьев Вячеслав Сергеевич', phoneNumber='+79639495445', idNumber=459}
Client{name='Маргарита Викторовна Кузьмина', phoneNumber='+79571424972', idNumber=549}
Client{name='Медведева Валентина', phoneNumber='+79282932301', idNumber=594}
Client{name='Мухина Алина Сергеевна', phoneNumber='+79841015291', idNumber=296}
Client{name='Мухина Раиса Валентиновна', phoneNumber='+79204742853', idNumber=512}
Client{name='Оксана Кулагина', phoneNumber='+79538510155', idNumber=860}
Client{name='Панфилова Арина', phoneNumber='+79678575110', idNumber=927}
Client{name='Попов Роман Евгеньевич', phoneNumber='+79392077705', idNumber=996}
Client{name='Русакова Валентина', phoneNumber='+79499915311', idNumber=3}
Client{name='Субботина Евгения', phoneNumber='+79883134731', idNumber=275}
Client{name='Фадеев Игорь Даниилович', phoneNumber='+79907800005', idNumber=194}
Client{name='Фокин Матвей Витальевич', phoneNumber='+79274394409', idNumber=933}
Client{name='Шаров Юрий', phoneNumber='+79408809462', idNumber=699}

6 changes: 3 additions & 3 deletions src/main/java/App.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import userInterface.MenuManager;

import java.util.stream.IntStream;
import java.io.IOException;

public class App {
public static void main(String[] args) {
public static void main(String[] args) throws IOException {
MenuManager menuManager = new MenuManager();

menuManager.run();

}
}

2 changes: 0 additions & 2 deletions src/main/java/ClientSortingSystem.java

This file was deleted.

20 changes: 20 additions & 0 deletions src/main/java/dto/Client.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,17 @@ public Client build(){
return new Client(this);
}

public String getName() {
return name;
}

public String getPhoneNumber() {
return phoneNumber;
}

public int getIdNumber() {
return idNumber;
}
}

public String getName() {
Expand All @@ -48,4 +59,13 @@ public String getPhoneNumber() {
public int getIdNumber() {
return idNumber;
}

@Override
public String toString() {
return "Client{" +
"name='" + name + '\'' +
", phoneNumber='" + phoneNumber + '\'' +
", idNumber=" + idNumber +
'}';
}
}
7 changes: 7 additions & 0 deletions src/main/java/enums/Field.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package enums;

public enum Field {
NAME,
ID_NUMBER,
PHONE_NUMBER
}
14 changes: 8 additions & 6 deletions src/main/java/input/CollectionInterface.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package input;

public interface CollectionInterface<T> {
boolean add(T car); // important
boolean remove(T car); // important
boolean removeAt(int index);
import java.util.stream.Stream;

public interface CollectionInterface<T> extends Iterable<T>{
boolean add(T element); // important
boolean remove(T element);// important
void removeByIndex(int index);
void clear(); // important
T get(int index);
boolean add(T car, int index);
int size(); // important
boolean contains(T car);
boolean isEmpty();
Stream<T> stream();
}
Loading
Loading