From 756c3d08ccf8e6cdefd5c22341cd0b16a390be3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 18:35:59 +0300 Subject: [PATCH 01/23] part 1 --- src/ru/skypro/Main.java | 18 ++++++++- src/ru/skypro/transport/Bus.java | 18 +++++++++ src/ru/skypro/transport/Car.java | 17 +++++++++ src/ru/skypro/transport/Transport.java | 53 ++++++++++++++++++++++++++ src/ru/skypro/transport/Truck.java | 18 +++++++++ 5 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 src/ru/skypro/transport/Bus.java create mode 100644 src/ru/skypro/transport/Car.java create mode 100644 src/ru/skypro/transport/Transport.java create mode 100644 src/ru/skypro/transport/Truck.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 625884e..49df5fe 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,7 +1,23 @@ package ru.skypro; +import ru.skypro.transport.Bus; +import ru.skypro.transport.Car; +import ru.skypro.transport.Transport; +import ru.skypro.transport.Truck; + public class Main { public static void main(String[] args){ - + Transport car1 = new Car("brand1","car1",1.6); + Transport car2 = new Car("brand2","car2",2.0); + Transport bus1 = new Bus("brand1","bus1",3.0); + Transport truck1 = new Truck("brand2","truck1",4.0); + car1.startMoving(); + car2.startMoving(); + bus1.startMoving(); + truck1.startMoving(); + truck1.stopMoving(); + car1.stopMoving(); + bus1.stopMoving(); + car2.stopMoving(); } } diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java new file mode 100644 index 0000000..c5f5e8b --- /dev/null +++ b/src/ru/skypro/transport/Bus.java @@ -0,0 +1,18 @@ +package ru.skypro.transport; + +public class Bus extends Transport { + + public Bus(String brand, String model, Double engineVolume) { + super(brand, model, engineVolume); + } + + @Override + public void startMoving() { + super.startMoving(); + } + + @Override + public void stopMoving() { + super.stopMoving(); + } +} diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java new file mode 100644 index 0000000..c46cd2b --- /dev/null +++ b/src/ru/skypro/transport/Car.java @@ -0,0 +1,17 @@ +package ru.skypro.transport; + +public class Car extends Transport{ + public Car(String brand, String model, Double engineVolume) { + super(brand, model, engineVolume); + } + + @Override + public void startMoving() { + super.startMoving(); + } + + @Override + public void stopMoving() { + super.stopMoving(); + } +} diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java new file mode 100644 index 0000000..dcb6486 --- /dev/null +++ b/src/ru/skypro/transport/Transport.java @@ -0,0 +1,53 @@ +package ru.skypro.transport; + +public abstract class Transport { + private String brand; + private String model; + private Double engineVolume; + + public Transport(String brand, String model, Double engineVolume) { + this.brand = brand == null || brand.equals("") ? "default" : brand; + this.model = model == null || model.equals("") ? "default" : model; + this.engineVolume = (engineVolume == null || engineVolume<0) ? 1.6 : engineVolume; + } + + public void startMoving(){ + System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Начал движение"); + } + public void stopMoving(){ + System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Закончил движение"); + } + + @Override + public String toString() { + return "Transport{" + + "brand='" + brand + '\'' + + ", model='" + model + '\'' + + ", engineVolume=" + engineVolume + + '}'; + } + + public String getBrand() { + return brand; + } + + public String getModel() { + return model; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public void setModel(String model) { + this.model = model; + } + + public Double getEngineVolume() { + return engineVolume; + } + + public void setEngineVolume(Double engineVolume) { + this.engineVolume = engineVolume; + } +} diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java new file mode 100644 index 0000000..30cd4ab --- /dev/null +++ b/src/ru/skypro/transport/Truck.java @@ -0,0 +1,18 @@ +package ru.skypro.transport; + +public class Truck extends Transport{ + + public Truck(String brand, String model, Double engineVolume) { + super(brand, model, engineVolume); + } + + @Override + public void startMoving() { + System.out.println(super.getBrand() +" "+ super.getModel() + " Начал движение"); + } + + @Override + public void stopMoving() { + System.out.println(super.getBrand() +" "+ super.getModel() + " Закончил движение"); + } +} From 6263c3f6206820ba0f2c349ea0c908a45dfa4eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 18:38:29 +0300 Subject: [PATCH 02/23] part 2 --- src/ru/skypro/transport/Competitive.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/ru/skypro/transport/Competitive.java diff --git a/src/ru/skypro/transport/Competitive.java b/src/ru/skypro/transport/Competitive.java new file mode 100644 index 0000000..6fe64c3 --- /dev/null +++ b/src/ru/skypro/transport/Competitive.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public interface Competitive { + void pitStop(); + void maxSpeed(); + void bestTime(); +} From 1217fb2fa2e5350e0034f2e30001bebb6d3cd224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 18:44:27 +0300 Subject: [PATCH 03/23] part 3 --- src/ru/skypro/Main.java | 15 ++++++++++++--- src/ru/skypro/transport/Bus.java | 16 +++++++++++++++- src/ru/skypro/transport/Car.java | 17 ++++++++++++++++- src/ru/skypro/transport/Truck.java | 17 ++++++++++++++++- 4 files changed, 59 insertions(+), 6 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 49df5fe..6e01618 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -7,10 +7,10 @@ public class Main { public static void main(String[] args){ - Transport car1 = new Car("brand1","car1",1.6); + Car car1 = new Car("brand1","car1",1.6); Transport car2 = new Car("brand2","car2",2.0); - Transport bus1 = new Bus("brand1","bus1",3.0); - Transport truck1 = new Truck("brand2","truck1",4.0); + Bus bus1 = new Bus("brand1","bus1",3.0); + Truck truck1 = new Truck("brand2","truck1",4.0); car1.startMoving(); car2.startMoving(); bus1.startMoving(); @@ -19,5 +19,14 @@ public static void main(String[] args){ car1.stopMoving(); bus1.stopMoving(); car2.stopMoving(); + car1.pitStop(); + car1.bestTime(); + car1.maxSpeed(); + truck1.pitStop(); + truck1.bestTime(); + truck1.maxSpeed(); + bus1.pitStop(); + bus1.bestTime(); + bus1.maxSpeed(); } } diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java index c5f5e8b..85dcf64 100644 --- a/src/ru/skypro/transport/Bus.java +++ b/src/ru/skypro/transport/Bus.java @@ -1,6 +1,6 @@ package ru.skypro.transport; -public class Bus extends Transport { +public class Bus extends Transport implements Competitive { public Bus(String brand, String model, Double engineVolume) { super(brand, model, engineVolume); @@ -15,4 +15,18 @@ public void startMoving() { public void stopMoving() { super.stopMoving(); } + @Override + public void pitStop() { + System.out.println("false"); + } + + @Override + public void maxSpeed() { + System.out.println("200"); + } + + @Override + public void bestTime() { + System.out.println("9.00"); + } } diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index c46cd2b..88dc3f0 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -1,6 +1,6 @@ package ru.skypro.transport; -public class Car extends Transport{ +public class Car extends Transport implements Competitive{ public Car(String brand, String model, Double engineVolume) { super(brand, model, engineVolume); } @@ -14,4 +14,19 @@ public void startMoving() { public void stopMoving() { super.stopMoving(); } + + @Override + public void pitStop() { + System.out.println("false"); + } + + @Override + public void maxSpeed() { + System.out.println("160"); + } + + @Override + public void bestTime() { + System.out.println("10.00"); + } } diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 30cd4ab..84edcee 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -1,6 +1,6 @@ package ru.skypro.transport; -public class Truck extends Transport{ +public class Truck extends Transport implements Competitive{ public Truck(String brand, String model, Double engineVolume) { super(brand, model, engineVolume); @@ -15,4 +15,19 @@ public void startMoving() { public void stopMoving() { System.out.println(super.getBrand() +" "+ super.getModel() + " Закончил движение"); } + + @Override + public void pitStop() { + System.out.println("true"); + } + + @Override + public void maxSpeed() { + System.out.println("330"); + } + + @Override + public void bestTime() { + System.out.println("6.00"); + } } From 0b0bb9211f1dede4fe48ac7b79a072c29b0da94c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 19:11:06 +0300 Subject: [PATCH 04/23] part 4 --- src/ru/skypro/Main.java | 13 +++++++++---- src/ru/skypro/transport/Driver.java | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 src/ru/skypro/transport/Driver.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 6e01618..5af92ac 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,9 +1,6 @@ package ru.skypro; -import ru.skypro.transport.Bus; -import ru.skypro.transport.Car; -import ru.skypro.transport.Transport; -import ru.skypro.transport.Truck; +import ru.skypro.transport.*; public class Main { public static void main(String[] args){ @@ -28,5 +25,13 @@ public static void main(String[] args){ bus1.pitStop(); bus1.bestTime(); bus1.maxSpeed(); + Driver driver1 = new Driver<>("F I O 1", true,5); + Driver driver2 = new Driver<>("F I O 2", false,0); + Driver driver3 = new Driver<>("F I O 3", true,9); + Driver driver4 = new Driver<>("F I O 4", true,7); + driver1.refill(car1); + driver2.refill(car2); + driver3.refill(bus1); + driver4.refill(truck1); } } diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java new file mode 100644 index 0000000..f11e4a8 --- /dev/null +++ b/src/ru/skypro/transport/Driver.java @@ -0,0 +1,24 @@ +package ru.skypro.transport; + +public class Driver { + private String fio; + private Boolean haveRights; + private Integer stazh; + + public Driver(String fio, Boolean haveRights, Integer stazh) { + this.fio = fio; + this.haveRights = haveRights; + this.stazh = stazh; + } + + public void startMoving(T transport){ + transport.startMoving(); + } + public void stopMoving(T transport){ + transport.stopMoving(); + + } + public void refill(T transport){ + System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде"); + } +} From 435a9ad445cddb666de662ba38b0eeaea2226673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 13:30:59 +0300 Subject: [PATCH 05/23] fixes --- src/ru/skypro/Main.java | 17 +++++++++-------- src/ru/skypro/transport/Driver.java | 13 ++++++++----- src/ru/skypro/transport/DriverB.java | 7 +++++++ src/ru/skypro/transport/DriverC.java | 7 +++++++ src/ru/skypro/transport/DriverD.java | 7 +++++++ 5 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 src/ru/skypro/transport/DriverB.java create mode 100644 src/ru/skypro/transport/DriverC.java create mode 100644 src/ru/skypro/transport/DriverD.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 5af92ac..35e44ee 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -25,13 +25,14 @@ public static void main(String[] args){ bus1.pitStop(); bus1.bestTime(); bus1.maxSpeed(); - Driver driver1 = new Driver<>("F I O 1", true,5); - Driver driver2 = new Driver<>("F I O 2", false,0); - Driver driver3 = new Driver<>("F I O 3", true,9); - Driver driver4 = new Driver<>("F I O 4", true,7); - driver1.refill(car1); - driver2.refill(car2); - driver3.refill(bus1); - driver4.refill(truck1); + Car car2c = (Car) car2; + Driver driver1 = new DriverB("F I O 1", true,5, car1); + Driver driver2 = new DriverB("F I O 2", false,0, car2c); + Driver driver3 = new DriverD("F I O 3", true,9, bus1); + Driver driver4 = new DriverC("F I O 4", true,7, truck1); + driver1.refill(); + driver2.refill(); + driver3.refill(); + driver4.refill(); } } diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java index f11e4a8..f900c7d 100644 --- a/src/ru/skypro/transport/Driver.java +++ b/src/ru/skypro/transport/Driver.java @@ -1,24 +1,27 @@ package ru.skypro.transport; -public class Driver { +public abstract class Driver{ + + private final Transport transport; private String fio; private Boolean haveRights; private Integer stazh; - public Driver(String fio, Boolean haveRights, Integer stazh) { + public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) { this.fio = fio; this.haveRights = haveRights; this.stazh = stazh; + this.transport = transport; } - public void startMoving(T transport){ + public void startMoving(){ transport.startMoving(); } - public void stopMoving(T transport){ + public void stopMoving(){ transport.stopMoving(); } - public void refill(T transport){ + public void refill(){ System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде"); } } diff --git a/src/ru/skypro/transport/DriverB.java b/src/ru/skypro/transport/DriverB.java new file mode 100644 index 0000000..41aca26 --- /dev/null +++ b/src/ru/skypro/transport/DriverB.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public class DriverB extends Driver{ + public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) { + super(fio, haveRights, stazh, transport); + } +} diff --git a/src/ru/skypro/transport/DriverC.java b/src/ru/skypro/transport/DriverC.java new file mode 100644 index 0000000..858bae5 --- /dev/null +++ b/src/ru/skypro/transport/DriverC.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public class DriverC extends Driver{ + public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) { + super(fio, haveRights, stazh, transport); + } +} diff --git a/src/ru/skypro/transport/DriverD.java b/src/ru/skypro/transport/DriverD.java new file mode 100644 index 0000000..d3184fd --- /dev/null +++ b/src/ru/skypro/transport/DriverD.java @@ -0,0 +1,7 @@ +package ru.skypro.transport; + +public class DriverD extends Driver{ + public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) { + super(fio, haveRights, stazh, transport); + } +} From a62f95ad723b5556e57bf300fbb0191d87fba62c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:24:47 +0300 Subject: [PATCH 06/23] part 1 --- src/ru/skypro/Main.java | 14 +++++++++- src/ru/skypro/NewClass.java | 28 +++++++++++++++++++ .../exceptions/WrongLoginException.java | 11 ++++++++ .../exceptions/WrongPasswordException.java | 11 ++++++++ 4 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/ru/skypro/NewClass.java create mode 100644 src/ru/skypro/exceptions/WrongLoginException.java create mode 100644 src/ru/skypro/exceptions/WrongPasswordException.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 625884e..9da3a74 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,7 +1,19 @@ package ru.skypro; +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.io.Console; + public class Main { public static void main(String[] args){ - + String login = "1234", pass="43251", cpass="4321"; + try { + NewClass.method(login,pass,cpass); + } catch (WrongLoginException | WrongPasswordException e) { + System.out.println(e); + } finally { + System.out.println("Good"); + } } } diff --git a/src/ru/skypro/NewClass.java b/src/ru/skypro/NewClass.java new file mode 100644 index 0000000..df05e90 --- /dev/null +++ b/src/ru/skypro/NewClass.java @@ -0,0 +1,28 @@ +package ru.skypro; + +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.util.Objects; +import java.util.regex.Pattern; + +public class NewClass { + + private static Boolean check(String string) + { + return Pattern.matches("^[A-Za-z0-9_]+$",string) && string.length() <=20 && string.length()>0; + } + + public static Boolean method(String login,String password , String confirmPassword) throws WrongLoginException, WrongPasswordException { + if (!check(login)){ + throw new WrongLoginException("Login incorrect"); + } + if (!check(password) || !check(confirmPassword)) { + throw new WrongPasswordException("Password incorrect"); + } + if (!Objects.equals(password, confirmPassword)){ + throw new WrongPasswordException("Password incorrect"); + } + return true; + } +} diff --git a/src/ru/skypro/exceptions/WrongLoginException.java b/src/ru/skypro/exceptions/WrongLoginException.java new file mode 100644 index 0000000..4423fa3 --- /dev/null +++ b/src/ru/skypro/exceptions/WrongLoginException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongLoginException extends Exception{ + + public WrongLoginException() { + } + + public WrongLoginException(String message) { + super(message); + } +} diff --git a/src/ru/skypro/exceptions/WrongPasswordException.java b/src/ru/skypro/exceptions/WrongPasswordException.java new file mode 100644 index 0000000..2eaf38e --- /dev/null +++ b/src/ru/skypro/exceptions/WrongPasswordException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongPasswordException extends Exception{ + + public WrongPasswordException() { + } + + public WrongPasswordException(String message) { + super(message); + } +} From 5c4cad74715dcd8a4738a9fad35c97360d605c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 19:16:19 +0300 Subject: [PATCH 07/23] part 1 --- src/ru/skypro/transport/BusType.java | 11 +++++++++++ src/ru/skypro/transport/CarBody.java | 15 +++++++++++++++ src/ru/skypro/transport/TruckBody.java | 5 +++++ 3 files changed, 31 insertions(+) create mode 100644 src/ru/skypro/transport/BusType.java create mode 100644 src/ru/skypro/transport/CarBody.java create mode 100644 src/ru/skypro/transport/TruckBody.java diff --git a/src/ru/skypro/transport/BusType.java b/src/ru/skypro/transport/BusType.java new file mode 100644 index 0000000..8d66bea --- /dev/null +++ b/src/ru/skypro/transport/BusType.java @@ -0,0 +1,11 @@ +package ru.skypro.transport; + +public enum BusType { + + особо_малая , + малая , + средняя, + большая, + особо_большая + + } diff --git a/src/ru/skypro/transport/CarBody.java b/src/ru/skypro/transport/CarBody.java new file mode 100644 index 0000000..e7738fb --- /dev/null +++ b/src/ru/skypro/transport/CarBody.java @@ -0,0 +1,15 @@ +package ru.skypro.transport; + +public enum CarBody { + + Седан, + Хетчбек, + Купе, + Универсал, + Внедорожник, + Кроссовер, + Пикап, + Фургон, + Минивэн + +} diff --git a/src/ru/skypro/transport/TruckBody.java b/src/ru/skypro/transport/TruckBody.java new file mode 100644 index 0000000..e1d2abc --- /dev/null +++ b/src/ru/skypro/transport/TruckBody.java @@ -0,0 +1,5 @@ +package ru.skypro.transport; + +public enum TruckBody { + N1,N2,N3 +} From ce60d2e4f1623078b1ee671037248e725f1d7949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Thu, 13 Oct 2022 19:25:58 +0300 Subject: [PATCH 08/23] part 2 --- src/ru/skypro/Main.java | 33 ++++++++++++++++---------- src/ru/skypro/transport/Bus.java | 4 ++-- src/ru/skypro/transport/Car.java | 4 ++-- src/ru/skypro/transport/Transport.java | 9 ++++++- src/ru/skypro/transport/Truck.java | 4 ++-- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 35e44ee..a520322 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -4,10 +4,10 @@ public class Main { public static void main(String[] args){ - Car car1 = new Car("brand1","car1",1.6); - Transport car2 = new Car("brand2","car2",2.0); - Bus bus1 = new Bus("brand1","bus1",3.0); - Truck truck1 = new Truck("brand2","truck1",4.0); + Car car1 = new Car("brand1","car1",1.6,CarBody.Седан); + Transport car2 = new Car("brand2","car2",2.0, CarBody.Фургон); + Bus bus1 = new Bus("brand1","bus1",3.0, BusType.малая); + Truck truck1 = new Truck("brand2","truck1",4.0, TruckBody.N2); car1.startMoving(); car2.startMoving(); bus1.startMoving(); @@ -25,14 +25,21 @@ public static void main(String[] args){ bus1.pitStop(); bus1.bestTime(); bus1.maxSpeed(); - Car car2c = (Car) car2; - Driver driver1 = new DriverB("F I O 1", true,5, car1); - Driver driver2 = new DriverB("F I O 2", false,0, car2c); - Driver driver3 = new DriverD("F I O 3", true,9, bus1); - Driver driver4 = new DriverC("F I O 4", true,7, truck1); - driver1.refill(); - driver2.refill(); - driver3.refill(); - driver4.refill(); + Driver driver1 = new Driver<>("F I O 1", true,5); + Driver driver2 = new Driver<>("F I O 2", false,0); + Driver driver3 = new Driver<>("F I O 3", true,9); + Driver driver4 = new Driver<>("F I O 4", true,7); + driver1.refill(car1); + driver2.refill(car2); + driver3.refill(bus1); + driver4.refill(truck1); + + System.out.println(car1.getType()); + System.out.println(car2.getType()); + System.out.println(truck1.getType()); + System.out.println(bus1.getType()); + Transport noname = new Car("as",null,null,null); + System.out.println(noname.getType()); + } } diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java index 85dcf64..27c6ea0 100644 --- a/src/ru/skypro/transport/Bus.java +++ b/src/ru/skypro/transport/Bus.java @@ -2,8 +2,8 @@ public class Bus extends Transport implements Competitive { - public Bus(String brand, String model, Double engineVolume) { - super(brand, model, engineVolume); + public Bus(String brand, String model, Double engineVolume, BusType type) { + super(brand, model, engineVolume, type); } @Override diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index 88dc3f0..4823e59 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -1,8 +1,8 @@ package ru.skypro.transport; public class Car extends Transport implements Competitive{ - public Car(String brand, String model, Double engineVolume) { - super(brand, model, engineVolume); + public Car(String brand, String model, Double engineVolume, CarBody type) { + super(brand, model, engineVolume, type); } @Override diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index dcb6486..5adfb73 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -5,10 +5,13 @@ public abstract class Transport { private String model; private Double engineVolume; - public Transport(String brand, String model, Double engineVolume) { + private final Enum type; + + public Transport(String brand, String model, Double engineVolume, Enum type) { this.brand = brand == null || brand.equals("") ? "default" : brand; this.model = model == null || model.equals("") ? "default" : model; this.engineVolume = (engineVolume == null || engineVolume<0) ? 1.6 : engineVolume; + this.type = type; } public void startMoving(){ @@ -50,4 +53,8 @@ public Double getEngineVolume() { public void setEngineVolume(Double engineVolume) { this.engineVolume = engineVolume; } + + public String getType() { + return type == null ? "Данных недостаточно": type.name(); + } } diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 84edcee..24395db 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -2,8 +2,8 @@ public class Truck extends Transport implements Competitive{ - public Truck(String brand, String model, Double engineVolume) { - super(brand, model, engineVolume); + public Truck(String brand, String model, Double engineVolume, TruckBody type) { + super(brand, model, engineVolume, type); } @Override From bb6115b31ba7fdaa00733d164cbd9fce953ad1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:24:47 +0300 Subject: [PATCH 09/23] part 1 --- src/ru/skypro/Main.java | 50 +++++-------------- src/ru/skypro/NewClass.java | 28 +++++++++++ .../exceptions/WrongLoginException.java | 11 ++++ .../exceptions/WrongPasswordException.java | 11 ++++ 4 files changed, 62 insertions(+), 38 deletions(-) create mode 100644 src/ru/skypro/NewClass.java create mode 100644 src/ru/skypro/exceptions/WrongLoginException.java create mode 100644 src/ru/skypro/exceptions/WrongPasswordException.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index a520322..9da3a74 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,45 +1,19 @@ package ru.skypro; -import ru.skypro.transport.*; +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.io.Console; public class Main { public static void main(String[] args){ - Car car1 = new Car("brand1","car1",1.6,CarBody.Седан); - Transport car2 = new Car("brand2","car2",2.0, CarBody.Фургон); - Bus bus1 = new Bus("brand1","bus1",3.0, BusType.малая); - Truck truck1 = new Truck("brand2","truck1",4.0, TruckBody.N2); - car1.startMoving(); - car2.startMoving(); - bus1.startMoving(); - truck1.startMoving(); - truck1.stopMoving(); - car1.stopMoving(); - bus1.stopMoving(); - car2.stopMoving(); - car1.pitStop(); - car1.bestTime(); - car1.maxSpeed(); - truck1.pitStop(); - truck1.bestTime(); - truck1.maxSpeed(); - bus1.pitStop(); - bus1.bestTime(); - bus1.maxSpeed(); - Driver driver1 = new Driver<>("F I O 1", true,5); - Driver driver2 = new Driver<>("F I O 2", false,0); - Driver driver3 = new Driver<>("F I O 3", true,9); - Driver driver4 = new Driver<>("F I O 4", true,7); - driver1.refill(car1); - driver2.refill(car2); - driver3.refill(bus1); - driver4.refill(truck1); - - System.out.println(car1.getType()); - System.out.println(car2.getType()); - System.out.println(truck1.getType()); - System.out.println(bus1.getType()); - Transport noname = new Car("as",null,null,null); - System.out.println(noname.getType()); - + String login = "1234", pass="43251", cpass="4321"; + try { + NewClass.method(login,pass,cpass); + } catch (WrongLoginException | WrongPasswordException e) { + System.out.println(e); + } finally { + System.out.println("Good"); + } } } diff --git a/src/ru/skypro/NewClass.java b/src/ru/skypro/NewClass.java new file mode 100644 index 0000000..df05e90 --- /dev/null +++ b/src/ru/skypro/NewClass.java @@ -0,0 +1,28 @@ +package ru.skypro; + +import ru.skypro.exceptions.WrongLoginException; +import ru.skypro.exceptions.WrongPasswordException; + +import java.util.Objects; +import java.util.regex.Pattern; + +public class NewClass { + + private static Boolean check(String string) + { + return Pattern.matches("^[A-Za-z0-9_]+$",string) && string.length() <=20 && string.length()>0; + } + + public static Boolean method(String login,String password , String confirmPassword) throws WrongLoginException, WrongPasswordException { + if (!check(login)){ + throw new WrongLoginException("Login incorrect"); + } + if (!check(password) || !check(confirmPassword)) { + throw new WrongPasswordException("Password incorrect"); + } + if (!Objects.equals(password, confirmPassword)){ + throw new WrongPasswordException("Password incorrect"); + } + return true; + } +} diff --git a/src/ru/skypro/exceptions/WrongLoginException.java b/src/ru/skypro/exceptions/WrongLoginException.java new file mode 100644 index 0000000..4423fa3 --- /dev/null +++ b/src/ru/skypro/exceptions/WrongLoginException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongLoginException extends Exception{ + + public WrongLoginException() { + } + + public WrongLoginException(String message) { + super(message); + } +} diff --git a/src/ru/skypro/exceptions/WrongPasswordException.java b/src/ru/skypro/exceptions/WrongPasswordException.java new file mode 100644 index 0000000..2eaf38e --- /dev/null +++ b/src/ru/skypro/exceptions/WrongPasswordException.java @@ -0,0 +1,11 @@ +package ru.skypro.exceptions; + +public class WrongPasswordException extends Exception{ + + public WrongPasswordException() { + } + + public WrongPasswordException(String message) { + super(message); + } +} From 9bddef7df48bdcc92d116fafcbc628ad728ab384 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:46:54 +0300 Subject: [PATCH 10/23] part 2 part --- src/ru/skypro/Main.java | 2 -- src/ru/skypro/exceptions/DiagnosticFailException.java | 7 +++++++ src/ru/skypro/exceptions/WrongRightsException.java | 8 ++++++++ src/ru/skypro/transport/Car.java | 9 +++++++++ src/ru/skypro/transport/Transport.java | 6 ++++++ src/ru/skypro/transport/Truck.java | 9 +++++++++ 6 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/ru/skypro/exceptions/DiagnosticFailException.java create mode 100644 src/ru/skypro/exceptions/WrongRightsException.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 9da3a74..55c2e9e 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -3,8 +3,6 @@ import ru.skypro.exceptions.WrongLoginException; import ru.skypro.exceptions.WrongPasswordException; -import java.io.Console; - public class Main { public static void main(String[] args){ String login = "1234", pass="43251", cpass="4321"; diff --git a/src/ru/skypro/exceptions/DiagnosticFailException.java b/src/ru/skypro/exceptions/DiagnosticFailException.java new file mode 100644 index 0000000..2d8bfea --- /dev/null +++ b/src/ru/skypro/exceptions/DiagnosticFailException.java @@ -0,0 +1,7 @@ +package ru.skypro.exceptions; + +public class DiagnosticFailException extends Exception{ + public DiagnosticFailException() { + super("программа должна выбросить ошибку."); + } +} diff --git a/src/ru/skypro/exceptions/WrongRightsException.java b/src/ru/skypro/exceptions/WrongRightsException.java new file mode 100644 index 0000000..abf3da0 --- /dev/null +++ b/src/ru/skypro/exceptions/WrongRightsException.java @@ -0,0 +1,8 @@ +package ru.skypro.exceptions; + +public class WrongRightsException extends Exception{ + + public WrongRightsException() { + super("Необходимо указать тип прав!"); + } +} diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index 4823e59..e3e643e 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.DiagnosticFailException; + public class Car extends Transport implements Competitive{ public Car(String brand, String model, Double engineVolume, CarBody type) { super(brand, model, engineVolume, type); @@ -29,4 +31,11 @@ public void maxSpeed() { public void bestTime() { System.out.println("10.00"); } + + @Override + public void diagnostic() throws DiagnosticFailException { + if (this.getEngineVolume()<2){ + throw new DiagnosticFailException(); + } + } } diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index 5adfb73..03d6dba 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.DiagnosticFailException; + public abstract class Transport { private String brand; private String model; @@ -54,6 +56,10 @@ public void setEngineVolume(Double engineVolume) { this.engineVolume = engineVolume; } + public void diagnostic() throws DiagnosticFailException { + System.out.println("Автобус … … … в диагностике не требуется"); + } + public String getType() { return type == null ? "Данных недостаточно": type.name(); } diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 24395db..59411f1 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.DiagnosticFailException; + public class Truck extends Transport implements Competitive{ public Truck(String brand, String model, Double engineVolume, TruckBody type) { @@ -30,4 +32,11 @@ public void maxSpeed() { public void bestTime() { System.out.println("6.00"); } + + @Override + public void diagnostic() throws DiagnosticFailException { + if (this.getEngineVolume()<2){ + throw new DiagnosticFailException(); + } + } } From 435aac63c82df3eb336c4d0bbac0d43be1d961a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:52:31 +0300 Subject: [PATCH 11/23] part 2 --- src/ru/skypro/Main.java | 11 ++++++++++- src/ru/skypro/transport/Driver.java | 10 ++++++++-- src/ru/skypro/transport/DriverB.java | 4 +++- src/ru/skypro/transport/DriverC.java | 4 +++- src/ru/skypro/transport/DriverD.java | 4 +++- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 55c2e9e..2e23087 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -2,16 +2,25 @@ import ru.skypro.exceptions.WrongLoginException; import ru.skypro.exceptions.WrongPasswordException; +import ru.skypro.exceptions.WrongRightsException; +import ru.skypro.transport.Driver; +import ru.skypro.transport.DriverB; public class Main { public static void main(String[] args){ String login = "1234", pass="43251", cpass="4321"; try { NewClass.method(login,pass,cpass); + System.out.println("Good"); } catch (WrongLoginException | WrongPasswordException e) { System.out.println(e); - } finally { + } + try { + Driver failDriver = new DriverB("asd",true,22,null); System.out.println("Good"); + } catch (WrongRightsException e){ + System.out.println(e); } + } } diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java index f900c7d..b316770 100644 --- a/src/ru/skypro/transport/Driver.java +++ b/src/ru/skypro/transport/Driver.java @@ -1,5 +1,7 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public abstract class Driver{ private final Transport transport; @@ -7,11 +9,15 @@ public abstract class Driver{ private Boolean haveRights; private Integer stazh; - public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) { + public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) throws WrongRightsException { this.fio = fio; this.haveRights = haveRights; this.stazh = stazh; - this.transport = transport; + if (transport == null) { + throw new WrongRightsException(); + } else { + this.transport = transport; + }; } public void startMoving(){ diff --git a/src/ru/skypro/transport/DriverB.java b/src/ru/skypro/transport/DriverB.java index 41aca26..2b3b583 100644 --- a/src/ru/skypro/transport/DriverB.java +++ b/src/ru/skypro/transport/DriverB.java @@ -1,7 +1,9 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public class DriverB extends Driver{ - public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) { + public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) throws WrongRightsException { super(fio, haveRights, stazh, transport); } } diff --git a/src/ru/skypro/transport/DriverC.java b/src/ru/skypro/transport/DriverC.java index 858bae5..9ced660 100644 --- a/src/ru/skypro/transport/DriverC.java +++ b/src/ru/skypro/transport/DriverC.java @@ -1,7 +1,9 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public class DriverC extends Driver{ - public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) { + public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) throws WrongRightsException { super(fio, haveRights, stazh, transport); } } diff --git a/src/ru/skypro/transport/DriverD.java b/src/ru/skypro/transport/DriverD.java index d3184fd..5d8bf8e 100644 --- a/src/ru/skypro/transport/DriverD.java +++ b/src/ru/skypro/transport/DriverD.java @@ -1,7 +1,9 @@ package ru.skypro.transport; +import ru.skypro.exceptions.WrongRightsException; + public class DriverD extends Driver{ - public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) { + public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) throws WrongRightsException { super(fio, haveRights, stazh, transport); } } From 10d32af92c7d3a6d62a471aeeb3efddd6831d66e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:56:33 +0300 Subject: [PATCH 12/23] part 2 --- src/ru/skypro/Main.java | 12 ++++++++++++ src/ru/skypro/transport/Car.java | 6 ++---- src/ru/skypro/transport/Transport.java | 3 ++- src/ru/skypro/transport/Truck.java | 6 ++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 2e23087..e9455b6 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,8 +1,11 @@ package ru.skypro; +import ru.skypro.exceptions.DiagnosticFailException; import ru.skypro.exceptions.WrongLoginException; import ru.skypro.exceptions.WrongPasswordException; import ru.skypro.exceptions.WrongRightsException; +import ru.skypro.transport.Car; +import ru.skypro.transport.CarBody; import ru.skypro.transport.Driver; import ru.skypro.transport.DriverB; @@ -21,6 +24,15 @@ public static void main(String[] args){ } catch (WrongRightsException e){ System.out.println(e); } + Car car = new Car("asd","asd",1.3, CarBody.Кроссовер); + if (!car.diagnostic()){ + try { + throw new DiagnosticFailException(); + } catch (DiagnosticFailException e) { + System.out.println(e); + } + } + } } diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java index e3e643e..b7f3510 100644 --- a/src/ru/skypro/transport/Car.java +++ b/src/ru/skypro/transport/Car.java @@ -33,9 +33,7 @@ public void bestTime() { } @Override - public void diagnostic() throws DiagnosticFailException { - if (this.getEngineVolume()<2){ - throw new DiagnosticFailException(); - } + public Boolean diagnostic() { + return this.getEngineVolume() >= 2; } } diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index 03d6dba..59f1a02 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -56,8 +56,9 @@ public void setEngineVolume(Double engineVolume) { this.engineVolume = engineVolume; } - public void diagnostic() throws DiagnosticFailException { + public Boolean diagnostic() { System.out.println("Автобус … … … в диагностике не требуется"); + return true; } public String getType() { diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java index 59411f1..ebbc46c 100644 --- a/src/ru/skypro/transport/Truck.java +++ b/src/ru/skypro/transport/Truck.java @@ -34,9 +34,7 @@ public void bestTime() { } @Override - public void diagnostic() throws DiagnosticFailException { - if (this.getEngineVolume()<2){ - throw new DiagnosticFailException(); - } + public Boolean diagnostic() { + return this.getEngineVolume() >= 2; } } From 6cfafe8dde2348844e16b124fbb15665cae85f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 14:57:56 +0300 Subject: [PATCH 13/23] part 2 --- src/ru/skypro/{NewClass.java => Data.java} | 2 +- src/ru/skypro/Main.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/ru/skypro/{NewClass.java => Data.java} (97%) diff --git a/src/ru/skypro/NewClass.java b/src/ru/skypro/Data.java similarity index 97% rename from src/ru/skypro/NewClass.java rename to src/ru/skypro/Data.java index df05e90..a6bb3d8 100644 --- a/src/ru/skypro/NewClass.java +++ b/src/ru/skypro/Data.java @@ -6,7 +6,7 @@ import java.util.Objects; import java.util.regex.Pattern; -public class NewClass { +public class Data { private static Boolean check(String string) { diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index e9455b6..119a26f 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -13,7 +13,7 @@ public class Main { public static void main(String[] args){ String login = "1234", pass="43251", cpass="4321"; try { - NewClass.method(login,pass,cpass); + Data.method(login,pass,cpass); System.out.println("Good"); } catch (WrongLoginException | WrongPasswordException e) { System.out.println(e); From a32ea864fddd01077c175c6b4d16699dd1fbdb16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 15:40:12 +0300 Subject: [PATCH 14/23] part 1 --- src/ru/skypro/Data.java | 28 -------- src/ru/skypro/Main.java | 72 ++++++++++++------- src/ru/skypro/Mechanic.java | 50 +++++++++++++ src/ru/skypro/Sponsor.java | 25 +++++++ .../exceptions/WrongLoginException.java | 11 --- .../exceptions/WrongPasswordException.java | 11 --- src/ru/skypro/transport/Driver.java | 10 +++ src/ru/skypro/transport/Transport.java | 37 ++++++++++ 8 files changed, 170 insertions(+), 74 deletions(-) delete mode 100644 src/ru/skypro/Data.java create mode 100644 src/ru/skypro/Mechanic.java create mode 100644 src/ru/skypro/Sponsor.java delete mode 100644 src/ru/skypro/exceptions/WrongLoginException.java delete mode 100644 src/ru/skypro/exceptions/WrongPasswordException.java diff --git a/src/ru/skypro/Data.java b/src/ru/skypro/Data.java deleted file mode 100644 index a6bb3d8..0000000 --- a/src/ru/skypro/Data.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.skypro; - -import ru.skypro.exceptions.WrongLoginException; -import ru.skypro.exceptions.WrongPasswordException; - -import java.util.Objects; -import java.util.regex.Pattern; - -public class Data { - - private static Boolean check(String string) - { - return Pattern.matches("^[A-Za-z0-9_]+$",string) && string.length() <=20 && string.length()>0; - } - - public static Boolean method(String login,String password , String confirmPassword) throws WrongLoginException, WrongPasswordException { - if (!check(login)){ - throw new WrongLoginException("Login incorrect"); - } - if (!check(password) || !check(confirmPassword)) { - throw new WrongPasswordException("Password incorrect"); - } - if (!Objects.equals(password, confirmPassword)){ - throw new WrongPasswordException("Password incorrect"); - } - return true; - } -} diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 119a26f..771ac80 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,38 +1,62 @@ package ru.skypro; -import ru.skypro.exceptions.DiagnosticFailException; -import ru.skypro.exceptions.WrongLoginException; -import ru.skypro.exceptions.WrongPasswordException; import ru.skypro.exceptions.WrongRightsException; -import ru.skypro.transport.Car; -import ru.skypro.transport.CarBody; -import ru.skypro.transport.Driver; -import ru.skypro.transport.DriverB; +import ru.skypro.transport.*; + +import java.util.ArrayList; +import java.util.List; public class Main { public static void main(String[] args){ - String login = "1234", pass="43251", cpass="4321"; + List cars = new ArrayList<>(); + List sponsors = new ArrayList<>(); + List drivers = new ArrayList<>(); + + cars.add(new Car("ad1","asd",2.2,CarBody.Универсал)); + cars.add(new Car("as2","a6sd",2.2,CarBody.Универсал)); + cars.add(new Bus("as3","a7sd",2.2,BusType.малая)); + cars.add(new Truck("ag4","8asd",2.2,TruckBody.N2)); + + sponsors.add(new Sponsor("asdf1", 1234)); + sponsors.add(new Sponsor("asdf2", 12345)); + sponsors.add(new Sponsor("asdf3", 123465)); + sponsors.add(new Sponsor("asdf4", 1234567)); try { - Data.method(login,pass,cpass); - System.out.println("Good"); - } catch (WrongLoginException | WrongPasswordException e) { - System.out.println(e); + drivers.add(new DriverB("asd1", true, 2, (Car) cars.get(0))); + drivers.add(new DriverB("asd2", true, 2, (Car) cars.get(1))); + drivers.add(new DriverD("asd3", true, 2, (Bus) cars.get(2))); + drivers.add(new DriverC("asd4", true, 2, (Truck) cars.get(3))); } - try { - Driver failDriver = new DriverB("asd",true,22,null); - System.out.println("Good"); - } catch (WrongRightsException e){ + catch (WrongRightsException e){ System.out.println(e); } - Car car = new Car("asd","asd",1.3, CarBody.Кроссовер); - if (!car.diagnostic()){ - try { - throw new DiagnosticFailException(); - } catch (DiagnosticFailException e) { - System.out.println(e); - } - } + Mechanic mech1 = new Mechanic("a","b","asd",List.of("Car")); + Mechanic mech2 = new Mechanic("c","d","dsa",List.of("Bus","Truck")); + cars.get(0).addMechanic(mech1); + cars.get(1).addMechanic(mech1); + cars.get(2).addMechanic(mech1); + cars.get(2).addMechanic(mech2); + cars.get(3).addMechanic(mech2); + cars.get(0).setDriver(drivers.get(0)); + cars.get(1).setDriver(drivers.get(1)); + cars.get(2).setDriver(drivers.get(2)); + cars.get(3).setDriver(drivers.get(3)); + cars.get(0).addSponsor(sponsors.get(0)); + cars.get(1).addSponsor(sponsors.get(1)); + cars.get(2).addSponsor(sponsors.get(0)); + cars.get(3).addSponsor(sponsors.get(1)); + cars.get(0).addSponsor(sponsors.get(2)); + cars.get(1).addSponsor(sponsors.get(3)); + for (Transport car: cars) { + System.out.println( + "Для машины: " +car.toString()+"\n"+ + "Водитель: " + car.getDriver().toString()+"\n"+ + "Спонсоры: " + car.getSponsorsList().toString()+"\n"+ + "Механики: " + car.getMechanicList().toString() + ); + + } } } diff --git a/src/ru/skypro/Mechanic.java b/src/ru/skypro/Mechanic.java new file mode 100644 index 0000000..f1f576a --- /dev/null +++ b/src/ru/skypro/Mechanic.java @@ -0,0 +1,50 @@ +package ru.skypro; + +import java.util.List; + +public class Mechanic { + private final String firstName; + private final String lastName; + private final String companyName; + private final List listCarTypes; + + public Mechanic(String firstName, String lastName, String companyName, List listCarTypes) { + this.firstName = firstName; + this.lastName = lastName; + this.companyName = companyName; + this.listCarTypes = listCarTypes; + } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public String getCompanyName() { + return companyName; + } + + public List getListCarTypes() { + return listCarTypes; + } + + private void provestiTechObsluzhivanie(){ + + } + private void repairCar(){ + + } + + @Override + public String toString() { + return "Mechanic{" + + "firstName='" + firstName + '\'' + + ", lastName='" + lastName + '\'' + + ", companyName='" + companyName + '\'' + + ", listCarTypes=" + listCarTypes + + '}'; + } +} diff --git a/src/ru/skypro/Sponsor.java b/src/ru/skypro/Sponsor.java new file mode 100644 index 0000000..c307af4 --- /dev/null +++ b/src/ru/skypro/Sponsor.java @@ -0,0 +1,25 @@ +package ru.skypro; + +public class Sponsor { + private final String name; + private final Integer sumSupport; + + public Sponsor(String name, Integer sumSupport) { + this.name = name; + this.sumSupport = sumSupport; + } + + public String getName() { + return name; + } + + private void sponsirovatZaezd(){} + + @Override + public String toString() { + return "Sponsor{" + + "name='" + name + '\'' + + ", sumSupport=" + sumSupport + + '}'; + } +} diff --git a/src/ru/skypro/exceptions/WrongLoginException.java b/src/ru/skypro/exceptions/WrongLoginException.java deleted file mode 100644 index 4423fa3..0000000 --- a/src/ru/skypro/exceptions/WrongLoginException.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.skypro.exceptions; - -public class WrongLoginException extends Exception{ - - public WrongLoginException() { - } - - public WrongLoginException(String message) { - super(message); - } -} diff --git a/src/ru/skypro/exceptions/WrongPasswordException.java b/src/ru/skypro/exceptions/WrongPasswordException.java deleted file mode 100644 index 2eaf38e..0000000 --- a/src/ru/skypro/exceptions/WrongPasswordException.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.skypro.exceptions; - -public class WrongPasswordException extends Exception{ - - public WrongPasswordException() { - } - - public WrongPasswordException(String message) { - super(message); - } -} diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java index b316770..f9a2787 100644 --- a/src/ru/skypro/transport/Driver.java +++ b/src/ru/skypro/transport/Driver.java @@ -30,4 +30,14 @@ public void stopMoving(){ public void refill(){ System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде"); } + + @Override + public String toString() { + return "Driver{" + + "transport=" + transport + + ", fio='" + fio + '\'' + + ", haveRights=" + haveRights + + ", stazh=" + stazh + + '}'; + } } diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java index 59f1a02..e805262 100644 --- a/src/ru/skypro/transport/Transport.java +++ b/src/ru/skypro/transport/Transport.java @@ -1,7 +1,12 @@ package ru.skypro.transport; +import ru.skypro.Mechanic; +import ru.skypro.Sponsor; import ru.skypro.exceptions.DiagnosticFailException; +import java.util.ArrayList; +import java.util.List; + public abstract class Transport { private String brand; private String model; @@ -9,6 +14,12 @@ public abstract class Transport { private final Enum type; + private List mechanicList = new ArrayList<>(); + + private Driver driver; + + private List sponsorsList = new ArrayList<>(); + public Transport(String brand, String model, Double engineVolume, Enum type) { this.brand = brand == null || brand.equals("") ? "default" : brand; this.model = model == null || model.equals("") ? "default" : model; @@ -16,6 +27,32 @@ public Transport(String brand, String model, Double engineVolume, Enum type) this.type = type; } + public Driver getDriver() { + return driver; + } + + public void setDriver(Driver driver) { + this.driver = driver; + } + + public List getMechanicList() { + return mechanicList; + } + + public List getSponsorsList() { + return sponsorsList; + } + + public void addMechanic(Mechanic mechanic) { + if (mechanic.getListCarTypes().contains(this.getClass().getSimpleName())) { + this.mechanicList.add(mechanic); + } else System.out.println("Механик "+mechanic.getFirstName()+" "+mechanic.getLastName()+" не имеет нужной категории, для автомобиля "+this.brand+" "+this.model); + } + + public void addSponsor(Sponsor sponsors) { + this.sponsorsList.add(sponsors); + } + public void startMoving(){ System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Начал движение"); } From 09124deee0dabeb2429166b60027787a07ea76fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 16:52:24 +0300 Subject: [PATCH 15/23] part 2&3 --- src/ru/skypro/Main.java | 85 ++++++++++++++++++++++- src/ru/skypro/transport/TechStantion.java | 20 ++++++ 2 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 src/ru/skypro/transport/TechStantion.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 771ac80..535c10b 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -3,8 +3,7 @@ import ru.skypro.exceptions.WrongRightsException; import ru.skypro.transport.*; -import java.util.ArrayList; -import java.util.List; +import java.util.*; public class Main { public static void main(String[] args){ @@ -48,7 +47,7 @@ public static void main(String[] args){ cars.get(3).addSponsor(sponsors.get(1)); cars.get(0).addSponsor(sponsors.get(2)); cars.get(1).addSponsor(sponsors.get(3)); - + var texhStantion = new TechStantion<>(); for (Transport car: cars) { System.out.println( "Для машины: " +car.toString()+"\n"+ @@ -56,7 +55,87 @@ public static void main(String[] args){ "Спонсоры: " + car.getSponsorsList().toString()+"\n"+ "Механики: " + car.getMechanicList().toString() ); + texhStantion.addToQueue(car); + } + texhStantion.doTechOsmotr(); + texhStantion.doTechOsmotr(); + texhStantion.doTechOsmotr(); + texhStantion.doTechOsmotr(); + texhStantion.doTechOsmotr(); + + //Part 2 + List> q1 = new ArrayList<>(); + q1.add(new ArrayDeque<>(5)); + q1.add(new ArrayDeque<>(5)); + q1.get(0).offer("11"); + q1.get(0).offer("12"); + q1.get(0).offer("13"); + q1.get(0).offer("14"); + q1.get(0).offer("15"); + q1.get(1).offer("16"); + addInSomeQueue(q1,"qs1"); + addInSomeQueue(q1,"qs2"); + addInSomeQueue(q1,"qs3"); + addInSomeQueue(q1,"qs4"); + addInSomeQueue(q1,"qs5"); + addInSomeQueue(q1,"qs6"); + addInSomeQueue(q1,"qs7"); + addInSomeQueue(q1,"qs8"); + addInSomeQueue(q1,"qs9"); + removeFromSomeQueue(q1); + removeFromSomeQueue(q1); + removeFromSomeQueue(q1); + removeFromSomeQueue(q1); + for (var qqq: q1 + ) { + System.out.println(qqq.size()); + } + //Часть 3 + List> biDemArrList = new ArrayList<>(); +// int ourNumber = biDemArrList.get(0).get(1) +// List> biDemArrList = new ArrayList<>(); + for (int i = 0; i < 8; i++) { + biDemArrList.add(i, new ArrayList<>()); + for (int j = 0; j < 8; j++) { + biDemArrList.get(i).add(j, (i+j)%2==1?"●":"◯"); + } + } + for (int i = 0; i < 8; i++) { + for (int j = 0; j < 8; j++) { + System.out.print(biDemArrList.get(i).get(j) + " "); + } + System.out.println("\n"); } } + + private static void addInSomeQueue(List> q1, String val){ + Queue minindex; + int coun = 99; + boolean addded = false; + minindex=q1.get(0); + for (var qqq: q1 + ) { + System.out.println(qqq.size()); + if (qqq.size()==5) { continue;} + if (coun >= qqq.size()) { + coun = qqq.size(); + minindex = qqq; + addded = true; + } + } + if (!addded){ + System.out.println("полное заполнение всех очередей"); + q1.add(new ArrayDeque<>(5)); + minindex = q1.get(q1.size()-1); + } + minindex.offer(val); +// System.out.println(q1.get(0).size()); +// System.out.println(q1.get(1).size()); + } + + private static void removeFromSomeQueue(List> q1){ + int num = (int) Math.round(Math.random()* (q1.size()-1)); + q1.get(num).poll(); + } } diff --git a/src/ru/skypro/transport/TechStantion.java b/src/ru/skypro/transport/TechStantion.java new file mode 100644 index 0000000..30e2b11 --- /dev/null +++ b/src/ru/skypro/transport/TechStantion.java @@ -0,0 +1,20 @@ +package ru.skypro.transport; + +import java.util.LinkedList; +import java.util.Queue; + +public class TechStantion { + private Queue queue = new LinkedList<>(); + + public void addToQueue(T car){ + queue.offer(car); + } + + public void doTechOsmotr(){ + Transport car = queue.poll(); + if (car != null) + System.out.println("Проведен техосмотр: "+ car.toString()); + else + System.out.println("В очереди нет машин"); + } +} From b8f8eec24e2e56cd01371ff2623665b5748271ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Sun, 23 Oct 2022 16:56:50 +0300 Subject: [PATCH 16/23] Init --- src/ru/skypro/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 625884e..d9f960b 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -3,5 +3,6 @@ public class Main { public static void main(String[] args){ + } } From f0db4ba9cc197718c9367594ac7993d0a16cde11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Oct 2022 11:25:18 +0300 Subject: [PATCH 17/23] Part1 --- src/ru/skypro/Main.java | 40 +++++++++++++- ...\242\320\276\320\262\320\260\321\200.java" | 52 +++++++++++++++++++ 2 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 "src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 535c10b..fca8789 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,12 +1,12 @@ package ru.skypro; -import ru.skypro.exceptions.WrongRightsException; -import ru.skypro.transport.*; +import ru.skypro.products.Товар; import java.util.*; public class Main { public static void main(String[] args){ + /* List cars = new ArrayList<>(); List sponsors = new ArrayList<>(); List drivers = new ArrayList<>(); @@ -107,6 +107,42 @@ public static void main(String[] args){ } System.out.println("\n"); } + */ + Set<Товар> СписокТоваров = new HashSet<>(); + Товар Бананы = new Товар("Банан", 120,10); + Товар Апельсины = new Товар("Апельсин", 240,10); + try { + Товар Тест = new Товар("Тест", 240,null); + } catch (RuntimeException e){ + System.out.println(e); + } + try { + addToSet(СписокТоваров,Бананы); + addToSet(СписокТоваров,Апельсины); + addToSet(СписокТоваров,Бананы); + } catch (RuntimeException e){ + System.out.println(e); + } + try { + remFromSet(СписокТоваров,Бананы); + remFromSet(СписокТоваров,Бананы); + } catch (RuntimeException e){ + System.out.println(e); + } + System.out.println(List.of(СписокТоваров.toArray())); + + } + + private static void addToSet(Set<Товар> set, Товар val){ + if (!set.add(val)){ + throw new RuntimeException("необходимо выбросить исключение"); + } + } + + private static void remFromSet(Set<Товар> set, Товар val){ + if(!set.remove(val)){ + throw new RuntimeException("Ошибка удаления товара"); + } } private static void addInSomeQueue(List> q1, String val){ diff --git "a/src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" "b/src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" new file mode 100644 index 0000000..d17f0b0 --- /dev/null +++ "b/src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" @@ -0,0 +1,52 @@ +package ru.skypro.products; + +import java.util.Objects; + +public class Товар { + + private final String Название; + private final Integer Цена; + private final Integer ВесВКг; + + public Товар(String название, Integer цена, Integer весВКг) { + if (название == null||цена == null || весВКг == null){ + throw new RuntimeException("Заполните карточку товара полностью"); + } + Название = название; + Цена = цена; + ВесВКг = весВКг; + } + + @Override + public String toString() { + return "Товар{" + + "Название='" + Название + '\'' + + ", Цена=" + Цена + + ", ВесВКг=" + ВесВКг + + '}'; + } + + public String getНазвание() { + return Название; + } + + public Integer getЦена() { + return Цена; + } + + public Integer getВесВКг() { + return ВесВКг; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Товар товар)) return false; + return Objects.equals(Цена, товар.Цена) && Objects.equals(ВесВКг, товар.ВесВКг); + } + + @Override + public int hashCode() { + return Objects.hash(Цена, ВесВКг); + } +} From acb6b074922eb1e29483cd7d43cd7e0ab1eff462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Oct 2022 11:46:54 +0300 Subject: [PATCH 18/23] Part2 --- src/ru/skypro/Main.java | 24 ++++++++- ...\265\321\206\320\265\320\277\321\202.java" | 51 +++++++++++++++++++ 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 "src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index fca8789..9ca2423 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,5 +1,6 @@ package ru.skypro; +import ru.skypro.products.Рецепт; import ru.skypro.products.Товар; import java.util.*; @@ -130,16 +131,35 @@ public static void main(String[] args){ System.out.println(e); } System.out.println(List.of(СписокТоваров.toArray())); + addToSet(СписокТоваров,Бананы); + Set<Рецепт> СписокРецептов = new HashSet<>(); + Рецепт рецепт1 = new Рецепт(СписокТоваров,"Рецепт 1"); + Рецепт рецепт2 = new Рецепт(СписокТоваров,"Рецепт 2"); + try { + addToSet(СписокРецептов,рецепт1); + addToSet(СписокРецептов,рецепт2); + addToSet(СписокРецептов,рецепт1); + } catch (RuntimeException e){ + System.out.println(e); + } + System.out.println(List.of(СписокРецептов.toArray())); + Set МножествоЦелыхЧисел = new HashSet<>(); + for (int i=0;i<20;i++){ + МножествоЦелыхЧисел.add((int) Math.round(Math.random()*1000)); + } + System.out.println(List.of(МножествоЦелыхЧисел.toArray())); + МножествоЦелыхЧисел.removeIf(i -> i % 2 == 1); + System.out.println(List.of(МножествоЦелыхЧисел.toArray())); } - private static void addToSet(Set<Товар> set, Товар val){ + private static void addToSet(Set set, T val){ if (!set.add(val)){ throw new RuntimeException("необходимо выбросить исключение"); } } - private static void remFromSet(Set<Товар> set, Товар val){ + private static void remFromSet(Set set, T val){ if(!set.remove(val)){ throw new RuntimeException("Ошибка удаления товара"); } diff --git "a/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" "b/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" new file mode 100644 index 0000000..38579bd --- /dev/null +++ "b/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" @@ -0,0 +1,51 @@ +package ru.skypro.products; + +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; + +public class Рецепт { + + Set<Товар> МножествоПродуктов = new HashSet<>(); + private final String Название; + public Integer СуммарнаяСтоимостьПродуктов(){ + int i=0; + for (Товар товар :МножествоПродуктов) { + i+=товар.getЦена(); + } + return i; + } + + public Рецепт(Set<Товар> множествоПродуктов, String название) { + МножествоПродуктов = множествоПродуктов; + Название = название; + } + + @Override + public String toString() { + return "Рецепт{" + + "МножествоПродуктов=" + МножествоПродуктов + + ", Название='" + Название + '\'' + + ", СуммарнаяСтоимостьПродуктов='" + СуммарнаяСтоимостьПродуктов() + '\'' + + '}'; + } + + public void addToSet(Товар val){ + МножествоПродуктов.add(val); + } + public void remFromSet(Товар val){ + МножествоПродуктов.remove(val); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Рецепт рецепт)) return false; + return Objects.equals(МножествоПродуктов, рецепт.МножествоПродуктов) && Objects.equals(Название, рецепт.Название); + } + + @Override + public int hashCode() { + return Objects.hash(МножествоПродуктов, Название); + } +} From d8f8e8e8626e1f08a71f37d6585bbf26d9667c7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Oct 2022 12:27:54 +0300 Subject: [PATCH 19/23] Part3 --- src/ru/skypro/Main.java | 216 ++++++++++++++++++++---------------- src/ru/skypro/Passport.java | 46 ++++++++ 2 files changed, 169 insertions(+), 93 deletions(-) create mode 100644 src/ru/skypro/Passport.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 9ca2423..a141c5c 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,114 +1,95 @@ package ru.skypro; +import ru.skypro.exceptions.WrongRightsException; import ru.skypro.products.Рецепт; import ru.skypro.products.Товар; +import ru.skypro.transport.*; import java.util.*; +import java.util.stream.Collectors; public class Main { public static void main(String[] args){ - /* - List cars = new ArrayList<>(); - List sponsors = new ArrayList<>(); - List drivers = new ArrayList<>(); - - cars.add(new Car("ad1","asd",2.2,CarBody.Универсал)); - cars.add(new Car("as2","a6sd",2.2,CarBody.Универсал)); - cars.add(new Bus("as3","a7sd",2.2,BusType.малая)); - cars.add(new Truck("ag4","8asd",2.2,TruckBody.N2)); - - sponsors.add(new Sponsor("asdf1", 1234)); - sponsors.add(new Sponsor("asdf2", 12345)); - sponsors.add(new Sponsor("asdf3", 123465)); - sponsors.add(new Sponsor("asdf4", 1234567)); + Set cars = new HashSet<>(); + Set sponsors = new HashSet<>(); + Set drivers = new HashSet<>(); + var car1 = new Car("ad1","asd",2.2,CarBody.Универсал); + var car2 = new Car("as2","a6sd",2.2,CarBody.Универсал); + var car3 = new Bus("as3","a7sd",2.2, BusType.малая); + var car4 = new Truck("ag4","8asd",2.2,TruckBody.N2); + + addToSet(cars,car1); + addToSet(cars,car2); + addToSet(cars,car3); + addToSet(cars,car4); + + var sponsor1 = new Sponsor("asdf1", 1234); + var sponsor2 = new Sponsor("asdf2", 12345); + var sponsor3 = new Sponsor("asdf3", 123465); + var sponsor4 = new Sponsor("asdf4", 1234567); + + addToSet(sponsors,sponsor1); + addToSet(sponsors,sponsor2); + addToSet(sponsors,sponsor3); + addToSet(sponsors,sponsor4); + + Driver driver1 = null; + Driver driver2 = null; + Driver driver3 = null; + Driver driver4 = null; + try { - drivers.add(new DriverB("asd1", true, 2, (Car) cars.get(0))); - drivers.add(new DriverB("asd2", true, 2, (Car) cars.get(1))); - drivers.add(new DriverD("asd3", true, 2, (Bus) cars.get(2))); - drivers.add(new DriverC("asd4", true, 2, (Truck) cars.get(3))); + driver1 = new DriverB("asd1", true, 2, car1); + driver2 = new DriverB("asd2", true, 2, car2); + driver3 = new DriverD("asd3", true, 2, car3); + driver4 = new DriverC("asd4", true, 2, car4); + + addToSet(drivers,driver1); + addToSet(drivers,driver2); + addToSet(drivers,driver3); + addToSet(drivers,driver4); } catch (WrongRightsException e){ System.out.println(e); } + Set setMechanic = new HashSet<>(); Mechanic mech1 = new Mechanic("a","b","asd",List.of("Car")); Mechanic mech2 = new Mechanic("c","d","dsa",List.of("Bus","Truck")); - cars.get(0).addMechanic(mech1); - cars.get(1).addMechanic(mech1); - cars.get(2).addMechanic(mech1); - cars.get(2).addMechanic(mech2); - cars.get(3).addMechanic(mech2); - cars.get(0).setDriver(drivers.get(0)); - cars.get(1).setDriver(drivers.get(1)); - cars.get(2).setDriver(drivers.get(2)); - cars.get(3).setDriver(drivers.get(3)); - cars.get(0).addSponsor(sponsors.get(0)); - cars.get(1).addSponsor(sponsors.get(1)); - cars.get(2).addSponsor(sponsors.get(0)); - cars.get(3).addSponsor(sponsors.get(1)); - cars.get(0).addSponsor(sponsors.get(2)); - cars.get(1).addSponsor(sponsors.get(3)); - var texhStantion = new TechStantion<>(); - for (Transport car: cars) { - System.out.println( - "Для машины: " +car.toString()+"\n"+ - "Водитель: " + car.getDriver().toString()+"\n"+ - "Спонсоры: " + car.getSponsorsList().toString()+"\n"+ - "Механики: " + car.getMechanicList().toString() - ); - texhStantion.addToQueue(car); - } - texhStantion.doTechOsmotr(); - texhStantion.doTechOsmotr(); - texhStantion.doTechOsmotr(); - texhStantion.doTechOsmotr(); - texhStantion.doTechOsmotr(); - - //Part 2 - List> q1 = new ArrayList<>(); - q1.add(new ArrayDeque<>(5)); - q1.add(new ArrayDeque<>(5)); - q1.get(0).offer("11"); - q1.get(0).offer("12"); - q1.get(0).offer("13"); - q1.get(0).offer("14"); - q1.get(0).offer("15"); - q1.get(1).offer("16"); - addInSomeQueue(q1,"qs1"); - addInSomeQueue(q1,"qs2"); - addInSomeQueue(q1,"qs3"); - addInSomeQueue(q1,"qs4"); - addInSomeQueue(q1,"qs5"); - addInSomeQueue(q1,"qs6"); - addInSomeQueue(q1,"qs7"); - addInSomeQueue(q1,"qs8"); - addInSomeQueue(q1,"qs9"); - removeFromSomeQueue(q1); - removeFromSomeQueue(q1); - removeFromSomeQueue(q1); - removeFromSomeQueue(q1); - for (var qqq: q1 - ) { - System.out.println(qqq.size()); - } + addToSet(setMechanic,mech1); + addToSet(setMechanic,mech2); + + car1.addMechanic(mech1); + car2.addMechanic(mech1); + car3.addMechanic(mech1); + car3.addMechanic(mech2); + car4.addMechanic(mech2); + car1.setDriver(driver1); + car2.setDriver(driver2); + car3.setDriver(driver3); + car4.setDriver(driver4); + car1.addSponsor(sponsor1); + car2.addSponsor(sponsor2); + car3.addSponsor(sponsor1); + car4.addSponsor(sponsor2); + car1.addSponsor(sponsor3); + car2.addSponsor(sponsor4); +// var texhStantion = new TechStantion<>(); +// for (Transport car: cars) { +// System.out.println( +// "Для машины: " +car.toString()+"\n"+ +// "Водитель: " + car.getDriver().toString()+"\n"+ +// "Спонсоры: " + car.getSponsorsList().toString()+"\n"+ +// "Механики: " + car.getMechanicList().toString() +// ); +// texhStantion.addToQueue(car); +// } +// texhStantion.doTechOsmotr(); +// texhStantion.doTechOsmotr(); +// texhStantion.doTechOsmotr(); +// texhStantion.doTechOsmotr(); +// texhStantion.doTechOsmotr(); - //Часть 3 - List> biDemArrList = new ArrayList<>(); -// int ourNumber = biDemArrList.get(0).get(1) -// List> biDemArrList = new ArrayList<>(); - for (int i = 0; i < 8; i++) { - biDemArrList.add(i, new ArrayList<>()); - for (int j = 0; j < 8; j++) { - biDemArrList.get(i).add(j, (i+j)%2==1?"●":"◯"); - } - } - for (int i = 0; i < 8; i++) { - for (int j = 0; j < 8; j++) { - System.out.print(biDemArrList.get(i).get(j) + " "); - } - System.out.println("\n"); - } - */ Set<Товар> СписокТоваров = new HashSet<>(); Товар Бананы = new Товар("Банан", 120,10); Товар Апельсины = new Товар("Апельсин", 240,10); @@ -151,8 +132,57 @@ public static void main(String[] args){ МножествоЦелыхЧисел.removeIf(i -> i % 2 == 1); System.out.println(List.of(МножествоЦелыхЧисел.toArray())); + for (var element:sponsors) { + System.out.println(element); + } + for (var element:cars) { + System.out.println(element); + } + for (var element:drivers) { + System.out.println(element); + } + for (var element:setMechanic) { + System.out.println(element); + } + //part 2 + Set uniqueQuestion = new HashSet<>(); + do { + Random r = new Random(); + int int1 = r.nextInt(7)+2; + int int2 = r.nextInt(7)+2; + uniqueQuestion.add(int1 + "*" + int2); + + } while (uniqueQuestion.size()<=14);//numRows - 1 + for (var element:uniqueQuestion) { + System.out.println(element); + } + //part 3 + + Passport passport1 = new Passport("1234","1234","1234","1234","12.12.12"); + Passport passport2 = new Passport("4321","4321","4321","4321","01.12.12"); + HashMap passportHashMap = new HashMap<>(); + passportHashMap.put(passport1.getНомерПаспорта(),passport1); + passportHashMap.put(passport2.getНомерПаспорта(),passport2); + passportHashMap.put(passport1.getНомерПаспорта(),passport1); + Passport passport3 = new Passport("1234","1234","4321","1234","12.01.12"); + savePassport(passportHashMap,passport3); + System.out.println(getPassport(passportHashMap,"1234")); + + } + + public static void savePassport(Map refMap, Passport passport){ + if (refMap.containsKey(passport.getНомерПаспорта())){ + refMap.remove(passport.getНомерПаспорта()); + refMap.put(passport.getНомерПаспорта(), passport); + } else + refMap.put(passport.getНомерПаспорта(), passport); } + public static Passport getPassport(Map refMap, String key){ + return refMap.getOrDefault(key, null); + } + + private static void addToSet(Set set, T val){ if (!set.add(val)){ throw new RuntimeException("необходимо выбросить исключение"); diff --git a/src/ru/skypro/Passport.java b/src/ru/skypro/Passport.java new file mode 100644 index 0000000..73e958b --- /dev/null +++ b/src/ru/skypro/Passport.java @@ -0,0 +1,46 @@ +package ru.skypro; + +import java.util.Objects; + +public class Passport { + private final String НомерПаспорта; + private final String Фамилия; + private final String Имя; + private final String Отчество; + private final String ДатаРождения; + + public Passport(String номерПаспорта, String фамилия, String имя, String отчество, String датаРождения) { + НомерПаспорта = номерПаспорта; + Фамилия = фамилия; + Имя = имя; + Отчество = отчество; + ДатаРождения = датаРождения; + } + + public String getНомерПаспорта() { + return НомерПаспорта; + } + + @Override + public String toString() { + return "Passport{" + + "НомерПаспорта='" + НомерПаспорта + '\'' + + ", Фамилия='" + Фамилия + '\'' + + ", Имя='" + Имя + '\'' + + ", Отчество='" + Отчество + '\'' + + ", ДатаРождения='" + ДатаРождения + '\'' + + '}'; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Passport passport)) return false; + return Objects.equals(НомерПаспорта, passport.НомерПаспорта); + } + + @Override + public int hashCode() { + return Objects.hash(НомерПаспорта); + } +} From eab9eeb104391f9480f499084afe70d92406786f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Oct 2022 13:00:49 +0300 Subject: [PATCH 20/23] Part2 --- src/ru/skypro/Main.java | 192 ++---------------- src/ru/skypro/Mechanic.java | 50 ----- src/ru/skypro/Sponsor.java | 25 --- .../exceptions/DiagnosticFailException.java | 7 - .../exceptions/WrongRightsException.java | 8 - ...\265\321\206\320\265\320\277\321\202.java" | 21 +- src/ru/skypro/transport/Bus.java | 32 --- src/ru/skypro/transport/BusType.java | 11 - src/ru/skypro/transport/Car.java | 39 ---- src/ru/skypro/transport/CarBody.java | 15 -- src/ru/skypro/transport/Competitive.java | 7 - src/ru/skypro/transport/Driver.java | 43 ---- src/ru/skypro/transport/DriverB.java | 9 - src/ru/skypro/transport/DriverC.java | 9 - src/ru/skypro/transport/DriverD.java | 9 - src/ru/skypro/transport/TechStantion.java | 20 -- src/ru/skypro/transport/Transport.java | 104 ---------- src/ru/skypro/transport/Truck.java | 40 ---- src/ru/skypro/transport/TruckBody.java | 5 - 19 files changed, 27 insertions(+), 619 deletions(-) delete mode 100644 src/ru/skypro/Mechanic.java delete mode 100644 src/ru/skypro/Sponsor.java delete mode 100644 src/ru/skypro/exceptions/DiagnosticFailException.java delete mode 100644 src/ru/skypro/exceptions/WrongRightsException.java delete mode 100644 src/ru/skypro/transport/Bus.java delete mode 100644 src/ru/skypro/transport/BusType.java delete mode 100644 src/ru/skypro/transport/Car.java delete mode 100644 src/ru/skypro/transport/CarBody.java delete mode 100644 src/ru/skypro/transport/Competitive.java delete mode 100644 src/ru/skypro/transport/Driver.java delete mode 100644 src/ru/skypro/transport/DriverB.java delete mode 100644 src/ru/skypro/transport/DriverC.java delete mode 100644 src/ru/skypro/transport/DriverD.java delete mode 100644 src/ru/skypro/transport/TechStantion.java delete mode 100644 src/ru/skypro/transport/Transport.java delete mode 100644 src/ru/skypro/transport/Truck.java delete mode 100644 src/ru/skypro/transport/TruckBody.java diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index a141c5c..3037775 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,95 +1,18 @@ package ru.skypro; -import ru.skypro.exceptions.WrongRightsException; import ru.skypro.products.Рецепт; import ru.skypro.products.Товар; -import ru.skypro.transport.*; import java.util.*; -import java.util.stream.Collectors; public class Main { public static void main(String[] args){ - Set cars = new HashSet<>(); - Set sponsors = new HashSet<>(); - Set drivers = new HashSet<>(); - var car1 = new Car("ad1","asd",2.2,CarBody.Универсал); - var car2 = new Car("as2","a6sd",2.2,CarBody.Универсал); - var car3 = new Bus("as3","a7sd",2.2, BusType.малая); - var car4 = new Truck("ag4","8asd",2.2,TruckBody.N2); - - addToSet(cars,car1); - addToSet(cars,car2); - addToSet(cars,car3); - addToSet(cars,car4); - - var sponsor1 = new Sponsor("asdf1", 1234); - var sponsor2 = new Sponsor("asdf2", 12345); - var sponsor3 = new Sponsor("asdf3", 123465); - var sponsor4 = new Sponsor("asdf4", 1234567); - - addToSet(sponsors,sponsor1); - addToSet(sponsors,sponsor2); - addToSet(sponsors,sponsor3); - addToSet(sponsors,sponsor4); - - Driver driver1 = null; - Driver driver2 = null; - Driver driver3 = null; - Driver driver4 = null; - - try { - driver1 = new DriverB("asd1", true, 2, car1); - driver2 = new DriverB("asd2", true, 2, car2); - driver3 = new DriverD("asd3", true, 2, car3); - driver4 = new DriverC("asd4", true, 2, car4); - - addToSet(drivers,driver1); - addToSet(drivers,driver2); - addToSet(drivers,driver3); - addToSet(drivers,driver4); - } - catch (WrongRightsException e){ - System.out.println(e); + Map ТелефонныйСправочник = new HashMap<>(); + for (int i=0;i<=20;i++) { + ТелефонныйСправочник.put("f"+i+" i"+i,i+""+i); } - Set setMechanic = new HashSet<>(); - Mechanic mech1 = new Mechanic("a","b","asd",List.of("Car")); - Mechanic mech2 = new Mechanic("c","d","dsa",List.of("Bus","Truck")); - - addToSet(setMechanic,mech1); - addToSet(setMechanic,mech2); - - car1.addMechanic(mech1); - car2.addMechanic(mech1); - car3.addMechanic(mech1); - car3.addMechanic(mech2); - car4.addMechanic(mech2); - car1.setDriver(driver1); - car2.setDriver(driver2); - car3.setDriver(driver3); - car4.setDriver(driver4); - car1.addSponsor(sponsor1); - car2.addSponsor(sponsor2); - car3.addSponsor(sponsor1); - car4.addSponsor(sponsor2); - car1.addSponsor(sponsor3); - car2.addSponsor(sponsor4); -// var texhStantion = new TechStantion<>(); -// for (Transport car: cars) { -// System.out.println( -// "Для машины: " +car.toString()+"\n"+ -// "Водитель: " + car.getDriver().toString()+"\n"+ -// "Спонсоры: " + car.getSponsorsList().toString()+"\n"+ -// "Механики: " + car.getMechanicList().toString() -// ); -// texhStantion.addToQueue(car); -// } -// texhStantion.doTechOsmotr(); -// texhStantion.doTechOsmotr(); -// texhStantion.doTechOsmotr(); -// texhStantion.doTechOsmotr(); -// texhStantion.doTechOsmotr(); - + System.out.println(ТелефонныйСправочник); + //Part2 Set<Товар> СписокТоваров = new HashSet<>(); Товар Бананы = new Товар("Банан", 120,10); Товар Апельсины = new Товар("Апельсин", 240,10); @@ -99,9 +22,9 @@ public static void main(String[] args){ System.out.println(e); } try { - addToSet(СписокТоваров,Бананы); - addToSet(СписокТоваров,Апельсины); - addToSet(СписокТоваров,Бананы); + addToSet(СписокТоваров,Бананы); + addToSet(СписокТоваров,Апельсины); + addToSet(СписокТоваров,Бананы); } catch (RuntimeException e){ System.out.println(e); } @@ -114,8 +37,12 @@ public static void main(String[] args){ System.out.println(List.of(СписокТоваров.toArray())); addToSet(СписокТоваров,Бананы); Set<Рецепт> СписокРецептов = new HashSet<>(); - Рецепт рецепт1 = new Рецепт(СписокТоваров,"Рецепт 1"); - Рецепт рецепт2 = new Рецепт(СписокТоваров,"Рецепт 2"); + Рецепт рецепт1 = new Рецепт("Рецепт 1"); + Рецепт рецепт2 = new Рецепт("Рецепт 2"); + рецепт1.addToSet(Бананы,2); + рецепт1.addToSet(Апельсины,1); + рецепт2.addToSet(Бананы,1); + рецепт2.addToSet(Апельсины,3); try { addToSet(СписокРецептов,рецепт1); addToSet(СписокРецептов,рецепт2); @@ -124,104 +51,17 @@ public static void main(String[] args){ System.out.println(e); } System.out.println(List.of(СписокРецептов.toArray())); - Set МножествоЦелыхЧисел = new HashSet<>(); - for (int i=0;i<20;i++){ - МножествоЦелыхЧисел.add((int) Math.round(Math.random()*1000)); - } - System.out.println(List.of(МножествоЦелыхЧисел.toArray())); - МножествоЦелыхЧисел.removeIf(i -> i % 2 == 1); - System.out.println(List.of(МножествоЦелыхЧисел.toArray())); - for (var element:sponsors) { - System.out.println(element); - } - for (var element:cars) { - System.out.println(element); - } - for (var element:drivers) { - System.out.println(element); - } - for (var element:setMechanic) { - System.out.println(element); - } - //part 2 - Set uniqueQuestion = new HashSet<>(); - do { - Random r = new Random(); - int int1 = r.nextInt(7)+2; - int int2 = r.nextInt(7)+2; - uniqueQuestion.add(int1 + "*" + int2); - - } while (uniqueQuestion.size()<=14);//numRows - 1 - for (var element:uniqueQuestion) { - System.out.println(element); - } - //part 3 - - Passport passport1 = new Passport("1234","1234","1234","1234","12.12.12"); - Passport passport2 = new Passport("4321","4321","4321","4321","01.12.12"); - HashMap passportHashMap = new HashMap<>(); - passportHashMap.put(passport1.getНомерПаспорта(),passport1); - passportHashMap.put(passport2.getНомерПаспорта(),passport2); - passportHashMap.put(passport1.getНомерПаспорта(),passport1); - Passport passport3 = new Passport("1234","1234","4321","1234","12.01.12"); - savePassport(passportHashMap,passport3); - System.out.println(getPassport(passportHashMap,"1234")); - - } - - public static void savePassport(Map refMap, Passport passport){ - if (refMap.containsKey(passport.getНомерПаспорта())){ - refMap.remove(passport.getНомерПаспорта()); - refMap.put(passport.getНомерПаспорта(), passport); - } else - refMap.put(passport.getНомерПаспорта(), passport); - } - - public static Passport getPassport(Map refMap, String key){ - return refMap.getOrDefault(key, null); } - - private static void addToSet(Set set, T val){ if (!set.add(val)){ throw new RuntimeException("необходимо выбросить исключение"); } } - - private static void remFromSet(Set set, T val){ - if(!set.remove(val)){ + private static void remFromSet(Set set, T val) { + if (!set.remove(val)) { throw new RuntimeException("Ошибка удаления товара"); } } - private static void addInSomeQueue(List> q1, String val){ - Queue minindex; - int coun = 99; - boolean addded = false; - minindex=q1.get(0); - for (var qqq: q1 - ) { - System.out.println(qqq.size()); - if (qqq.size()==5) { continue;} - if (coun >= qqq.size()) { - coun = qqq.size(); - minindex = qqq; - addded = true; - } - } - if (!addded){ - System.out.println("полное заполнение всех очередей"); - q1.add(new ArrayDeque<>(5)); - minindex = q1.get(q1.size()-1); - } - minindex.offer(val); -// System.out.println(q1.get(0).size()); -// System.out.println(q1.get(1).size()); - } - - private static void removeFromSomeQueue(List> q1){ - int num = (int) Math.round(Math.random()* (q1.size()-1)); - q1.get(num).poll(); - } } diff --git a/src/ru/skypro/Mechanic.java b/src/ru/skypro/Mechanic.java deleted file mode 100644 index f1f576a..0000000 --- a/src/ru/skypro/Mechanic.java +++ /dev/null @@ -1,50 +0,0 @@ -package ru.skypro; - -import java.util.List; - -public class Mechanic { - private final String firstName; - private final String lastName; - private final String companyName; - private final List listCarTypes; - - public Mechanic(String firstName, String lastName, String companyName, List listCarTypes) { - this.firstName = firstName; - this.lastName = lastName; - this.companyName = companyName; - this.listCarTypes = listCarTypes; - } - - public String getFirstName() { - return firstName; - } - - public String getLastName() { - return lastName; - } - - public String getCompanyName() { - return companyName; - } - - public List getListCarTypes() { - return listCarTypes; - } - - private void provestiTechObsluzhivanie(){ - - } - private void repairCar(){ - - } - - @Override - public String toString() { - return "Mechanic{" + - "firstName='" + firstName + '\'' + - ", lastName='" + lastName + '\'' + - ", companyName='" + companyName + '\'' + - ", listCarTypes=" + listCarTypes + - '}'; - } -} diff --git a/src/ru/skypro/Sponsor.java b/src/ru/skypro/Sponsor.java deleted file mode 100644 index c307af4..0000000 --- a/src/ru/skypro/Sponsor.java +++ /dev/null @@ -1,25 +0,0 @@ -package ru.skypro; - -public class Sponsor { - private final String name; - private final Integer sumSupport; - - public Sponsor(String name, Integer sumSupport) { - this.name = name; - this.sumSupport = sumSupport; - } - - public String getName() { - return name; - } - - private void sponsirovatZaezd(){} - - @Override - public String toString() { - return "Sponsor{" + - "name='" + name + '\'' + - ", sumSupport=" + sumSupport + - '}'; - } -} diff --git a/src/ru/skypro/exceptions/DiagnosticFailException.java b/src/ru/skypro/exceptions/DiagnosticFailException.java deleted file mode 100644 index 2d8bfea..0000000 --- a/src/ru/skypro/exceptions/DiagnosticFailException.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.skypro.exceptions; - -public class DiagnosticFailException extends Exception{ - public DiagnosticFailException() { - super("программа должна выбросить ошибку."); - } -} diff --git a/src/ru/skypro/exceptions/WrongRightsException.java b/src/ru/skypro/exceptions/WrongRightsException.java deleted file mode 100644 index abf3da0..0000000 --- a/src/ru/skypro/exceptions/WrongRightsException.java +++ /dev/null @@ -1,8 +0,0 @@ -package ru.skypro.exceptions; - -public class WrongRightsException extends Exception{ - - public WrongRightsException() { - super("Необходимо указать тип прав!"); - } -} diff --git "a/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" "b/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" index 38579bd..b551d83 100644 --- "a/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" +++ "b/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" @@ -1,23 +1,21 @@ package ru.skypro.products; -import java.util.HashSet; -import java.util.Objects; -import java.util.Set; +import java.util.*; public class Рецепт { - Set<Товар> МножествоПродуктов = new HashSet<>(); + Map<Товар,Integer> МножествоПродуктов = new HashMap<>(); private final String Название; public Integer СуммарнаяСтоимостьПродуктов(){ int i=0; - for (Товар товар :МножествоПродуктов) { - i+=товар.getЦена(); + for (Map.Entry<Товар,Integer> товар:МножествоПродуктов.entrySet()) { + + i+=товар.getKey().getЦена()*товар.getValue(); } return i; } - public Рецепт(Set<Товар> множествоПродуктов, String название) { - МножествоПродуктов = множествоПродуктов; + public Рецепт(String название) { Название = название; } @@ -30,8 +28,11 @@ public String toString() { '}'; } - public void addToSet(Товар val){ - МножествоПродуктов.add(val); + public void addToSet(Товар val,Integer count){ + if (count<1){ + throw new RuntimeException("Количество продукта в рецепте не может быть меньше 1."); + } + МножествоПродуктов.put(val,count); } public void remFromSet(Товар val){ МножествоПродуктов.remove(val); diff --git a/src/ru/skypro/transport/Bus.java b/src/ru/skypro/transport/Bus.java deleted file mode 100644 index 27c6ea0..0000000 --- a/src/ru/skypro/transport/Bus.java +++ /dev/null @@ -1,32 +0,0 @@ -package ru.skypro.transport; - -public class Bus extends Transport implements Competitive { - - public Bus(String brand, String model, Double engineVolume, BusType type) { - super(brand, model, engineVolume, type); - } - - @Override - public void startMoving() { - super.startMoving(); - } - - @Override - public void stopMoving() { - super.stopMoving(); - } - @Override - public void pitStop() { - System.out.println("false"); - } - - @Override - public void maxSpeed() { - System.out.println("200"); - } - - @Override - public void bestTime() { - System.out.println("9.00"); - } -} diff --git a/src/ru/skypro/transport/BusType.java b/src/ru/skypro/transport/BusType.java deleted file mode 100644 index 8d66bea..0000000 --- a/src/ru/skypro/transport/BusType.java +++ /dev/null @@ -1,11 +0,0 @@ -package ru.skypro.transport; - -public enum BusType { - - особо_малая , - малая , - средняя, - большая, - особо_большая - - } diff --git a/src/ru/skypro/transport/Car.java b/src/ru/skypro/transport/Car.java deleted file mode 100644 index b7f3510..0000000 --- a/src/ru/skypro/transport/Car.java +++ /dev/null @@ -1,39 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.exceptions.DiagnosticFailException; - -public class Car extends Transport implements Competitive{ - public Car(String brand, String model, Double engineVolume, CarBody type) { - super(brand, model, engineVolume, type); - } - - @Override - public void startMoving() { - super.startMoving(); - } - - @Override - public void stopMoving() { - super.stopMoving(); - } - - @Override - public void pitStop() { - System.out.println("false"); - } - - @Override - public void maxSpeed() { - System.out.println("160"); - } - - @Override - public void bestTime() { - System.out.println("10.00"); - } - - @Override - public Boolean diagnostic() { - return this.getEngineVolume() >= 2; - } -} diff --git a/src/ru/skypro/transport/CarBody.java b/src/ru/skypro/transport/CarBody.java deleted file mode 100644 index e7738fb..0000000 --- a/src/ru/skypro/transport/CarBody.java +++ /dev/null @@ -1,15 +0,0 @@ -package ru.skypro.transport; - -public enum CarBody { - - Седан, - Хетчбек, - Купе, - Универсал, - Внедорожник, - Кроссовер, - Пикап, - Фургон, - Минивэн - -} diff --git a/src/ru/skypro/transport/Competitive.java b/src/ru/skypro/transport/Competitive.java deleted file mode 100644 index 6fe64c3..0000000 --- a/src/ru/skypro/transport/Competitive.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.skypro.transport; - -public interface Competitive { - void pitStop(); - void maxSpeed(); - void bestTime(); -} diff --git a/src/ru/skypro/transport/Driver.java b/src/ru/skypro/transport/Driver.java deleted file mode 100644 index f9a2787..0000000 --- a/src/ru/skypro/transport/Driver.java +++ /dev/null @@ -1,43 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.exceptions.WrongRightsException; - -public abstract class Driver{ - - private final Transport transport; - private String fio; - private Boolean haveRights; - private Integer stazh; - - public Driver(String fio, Boolean haveRights, Integer stazh, Transport transport) throws WrongRightsException { - this.fio = fio; - this.haveRights = haveRights; - this.stazh = stazh; - if (transport == null) { - throw new WrongRightsException(); - } else { - this.transport = transport; - }; - } - - public void startMoving(){ - transport.startMoving(); - } - public void stopMoving(){ - transport.stopMoving(); - - } - public void refill(){ - System.out.println("водитель "+fio+" управляет автомобилем "+transport.getBrand()+" "+transport.getModel()+" и будет участвовать в заезде"); - } - - @Override - public String toString() { - return "Driver{" + - "transport=" + transport + - ", fio='" + fio + '\'' + - ", haveRights=" + haveRights + - ", stazh=" + stazh + - '}'; - } -} diff --git a/src/ru/skypro/transport/DriverB.java b/src/ru/skypro/transport/DriverB.java deleted file mode 100644 index 2b3b583..0000000 --- a/src/ru/skypro/transport/DriverB.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.exceptions.WrongRightsException; - -public class DriverB extends Driver{ - public DriverB(String fio, Boolean haveRights, Integer stazh, Car transport) throws WrongRightsException { - super(fio, haveRights, stazh, transport); - } -} diff --git a/src/ru/skypro/transport/DriverC.java b/src/ru/skypro/transport/DriverC.java deleted file mode 100644 index 9ced660..0000000 --- a/src/ru/skypro/transport/DriverC.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.exceptions.WrongRightsException; - -public class DriverC extends Driver{ - public DriverC(String fio, Boolean haveRights, Integer stazh, Truck transport) throws WrongRightsException { - super(fio, haveRights, stazh, transport); - } -} diff --git a/src/ru/skypro/transport/DriverD.java b/src/ru/skypro/transport/DriverD.java deleted file mode 100644 index 5d8bf8e..0000000 --- a/src/ru/skypro/transport/DriverD.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.exceptions.WrongRightsException; - -public class DriverD extends Driver{ - public DriverD(String fio, Boolean haveRights, Integer stazh, Bus transport) throws WrongRightsException { - super(fio, haveRights, stazh, transport); - } -} diff --git a/src/ru/skypro/transport/TechStantion.java b/src/ru/skypro/transport/TechStantion.java deleted file mode 100644 index 30e2b11..0000000 --- a/src/ru/skypro/transport/TechStantion.java +++ /dev/null @@ -1,20 +0,0 @@ -package ru.skypro.transport; - -import java.util.LinkedList; -import java.util.Queue; - -public class TechStantion { - private Queue queue = new LinkedList<>(); - - public void addToQueue(T car){ - queue.offer(car); - } - - public void doTechOsmotr(){ - Transport car = queue.poll(); - if (car != null) - System.out.println("Проведен техосмотр: "+ car.toString()); - else - System.out.println("В очереди нет машин"); - } -} diff --git a/src/ru/skypro/transport/Transport.java b/src/ru/skypro/transport/Transport.java deleted file mode 100644 index e805262..0000000 --- a/src/ru/skypro/transport/Transport.java +++ /dev/null @@ -1,104 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.Mechanic; -import ru.skypro.Sponsor; -import ru.skypro.exceptions.DiagnosticFailException; - -import java.util.ArrayList; -import java.util.List; - -public abstract class Transport { - private String brand; - private String model; - private Double engineVolume; - - private final Enum type; - - private List mechanicList = new ArrayList<>(); - - private Driver driver; - - private List sponsorsList = new ArrayList<>(); - - public Transport(String brand, String model, Double engineVolume, Enum type) { - this.brand = brand == null || brand.equals("") ? "default" : brand; - this.model = model == null || model.equals("") ? "default" : model; - this.engineVolume = (engineVolume == null || engineVolume<0) ? 1.6 : engineVolume; - this.type = type; - } - - public Driver getDriver() { - return driver; - } - - public void setDriver(Driver driver) { - this.driver = driver; - } - - public List getMechanicList() { - return mechanicList; - } - - public List getSponsorsList() { - return sponsorsList; - } - - public void addMechanic(Mechanic mechanic) { - if (mechanic.getListCarTypes().contains(this.getClass().getSimpleName())) { - this.mechanicList.add(mechanic); - } else System.out.println("Механик "+mechanic.getFirstName()+" "+mechanic.getLastName()+" не имеет нужной категории, для автомобиля "+this.brand+" "+this.model); - } - - public void addSponsor(Sponsor sponsors) { - this.sponsorsList.add(sponsors); - } - - public void startMoving(){ - System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Начал движение"); - } - public void stopMoving(){ - System.out.println(this.getClass() +" "+ this.brand +" "+ this.model + "Закончил движение"); - } - - @Override - public String toString() { - return "Transport{" + - "brand='" + brand + '\'' + - ", model='" + model + '\'' + - ", engineVolume=" + engineVolume + - '}'; - } - - public String getBrand() { - return brand; - } - - public String getModel() { - return model; - } - - public void setBrand(String brand) { - this.brand = brand; - } - - public void setModel(String model) { - this.model = model; - } - - public Double getEngineVolume() { - return engineVolume; - } - - public void setEngineVolume(Double engineVolume) { - this.engineVolume = engineVolume; - } - - public Boolean diagnostic() { - System.out.println("Автобус … … … в диагностике не требуется"); - return true; - } - - public String getType() { - return type == null ? "Данных недостаточно": type.name(); - } -} diff --git a/src/ru/skypro/transport/Truck.java b/src/ru/skypro/transport/Truck.java deleted file mode 100644 index ebbc46c..0000000 --- a/src/ru/skypro/transport/Truck.java +++ /dev/null @@ -1,40 +0,0 @@ -package ru.skypro.transport; - -import ru.skypro.exceptions.DiagnosticFailException; - -public class Truck extends Transport implements Competitive{ - - public Truck(String brand, String model, Double engineVolume, TruckBody type) { - super(brand, model, engineVolume, type); - } - - @Override - public void startMoving() { - System.out.println(super.getBrand() +" "+ super.getModel() + " Начал движение"); - } - - @Override - public void stopMoving() { - System.out.println(super.getBrand() +" "+ super.getModel() + " Закончил движение"); - } - - @Override - public void pitStop() { - System.out.println("true"); - } - - @Override - public void maxSpeed() { - System.out.println("330"); - } - - @Override - public void bestTime() { - System.out.println("6.00"); - } - - @Override - public Boolean diagnostic() { - return this.getEngineVolume() >= 2; - } -} diff --git a/src/ru/skypro/transport/TruckBody.java b/src/ru/skypro/transport/TruckBody.java deleted file mode 100644 index e1d2abc..0000000 --- a/src/ru/skypro/transport/TruckBody.java +++ /dev/null @@ -1,5 +0,0 @@ -package ru.skypro.transport; - -public enum TruckBody { - N1,N2,N3 -} From a5e10eaa0e3f1301c0e5b837917cfcfa92844223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Mon, 24 Oct 2022 13:24:46 +0300 Subject: [PATCH 21/23] Part22 --- src/ru/skypro/Main.java | 46 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index 3037775..ca5d57d 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -4,6 +4,7 @@ import ru.skypro.products.Товар; import java.util.*; +import java.util.stream.Collectors; public class Main { public static void main(String[] args){ @@ -51,8 +52,53 @@ public static void main(String[] args){ System.out.println(e); } System.out.println(List.of(СписокРецептов.toArray())); + //part3 + collection.put("str1",2); + addToCollection("str2",1); + try { + addToCollection("str1",2); + } catch (RuntimeException e){ + System.out.println(e); + } + addToCollection("str1",5); + System.out.println(collection); + //part 2 1 + var r= new Random(); + for (int i = 0; i<5;i++){ + String key = "key"+i; + List list = new ArrayList<>(); + for (int j = 0; j<3;j++){ + list.add(r.nextInt(1000)); + } + collection2.put(key,list); + } + System.out.println(collection2); + Map newCollection = collection2.entrySet().stream().collect( + Collectors.toMap(Map.Entry::getKey,e->e.getValue().stream().mapToInt(i-> i).sum()) + ); + System.out.println(newCollection); + //part 2 2 + Map orderedHashMap = new LinkedHashMap<>(); + for (int i = 0; i<10;i++){ + orderedHashMap.put(i,"text"+i+" asd"); + } + for (Map.Entry el:orderedHashMap.entrySet()) { + System.out.println(el.getKey()+":"+el.getValue()); + } + } + static Map> collection2 = new HashMap<>(); + static Map collection = new HashMap<>(); + private static void addToCollection(String key, Integer val ){ + if (!collection.containsKey(key)){ + collection.put(key,val); + } else if (Objects.equals(collection.get(key), val)) { + throw new RuntimeException(); + } else { + collection.replace(key,val); + } } + private static void addToSet(Set set, T val){ if (!set.add(val)){ throw new RuntimeException("необходимо выбросить исключение"); From 0a0b76a8f968deb24962f35ba324d6bb6e3ff9dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Wed, 26 Oct 2022 10:11:51 +0300 Subject: [PATCH 22/23] Rename all Ru text to Eng text --- src/ru/skypro/Main.java | 54 +++++++++---------- src/ru/skypro/Passport.java | 40 +++++++------- src/ru/skypro/products/Recept.java | 52 ++++++++++++++++++ src/ru/skypro/products/Tovar.java | 52 ++++++++++++++++++ ...\265\321\206\320\265\320\277\321\202.java" | 52 ------------------ ...\242\320\276\320\262\320\260\321\200.java" | 52 ------------------ 6 files changed, 151 insertions(+), 151 deletions(-) create mode 100644 src/ru/skypro/products/Recept.java create mode 100644 src/ru/skypro/products/Tovar.java delete mode 100644 "src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" delete mode 100644 "src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" diff --git a/src/ru/skypro/Main.java b/src/ru/skypro/Main.java index ca5d57d..f8beab8 100644 --- a/src/ru/skypro/Main.java +++ b/src/ru/skypro/Main.java @@ -1,57 +1,57 @@ package ru.skypro; -import ru.skypro.products.Рецепт; -import ru.skypro.products.Товар; +import ru.skypro.products.Recept; +import ru.skypro.products.Tovar; import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args){ - Map ТелефонныйСправочник = new HashMap<>(); + Map TelefonniiSpravochnik = new HashMap<>(); for (int i=0;i<=20;i++) { - ТелефонныйСправочник.put("f"+i+" i"+i,i+""+i); + TelefonniiSpravochnik.put("f"+i+" i"+i,i+""+i); } - System.out.println(ТелефонныйСправочник); + System.out.println(TelefonniiSpravochnik); //Part2 - Set<Товар> СписокТоваров = new HashSet<>(); - Товар Бананы = new Товар("Банан", 120,10); - Товар Апельсины = new Товар("Апельсин", 240,10); + Set SpisokTovarov = new HashSet<>(); + Tovar Banan = new Tovar("Банан", 120,10); + Tovar Apelsin = new Tovar("Апельсин", 240,10); try { - Товар Тест = new Товар("Тест", 240,null); + Tovar test = new Tovar("Тест", 240,null); } catch (RuntimeException e){ System.out.println(e); } try { - addToSet(СписокТоваров,Бананы); - addToSet(СписокТоваров,Апельсины); - addToSet(СписокТоваров,Бананы); + addToSet(SpisokTovarov,Banan); + addToSet(SpisokTovarov,Apelsin); + addToSet(SpisokTovarov,Banan); } catch (RuntimeException e){ System.out.println(e); } try { - remFromSet(СписокТоваров,Бананы); - remFromSet(СписокТоваров,Бананы); + remFromSet(SpisokTovarov,Banan); + remFromSet(SpisokTovarov,Banan); } catch (RuntimeException e){ System.out.println(e); } - System.out.println(List.of(СписокТоваров.toArray())); - addToSet(СписокТоваров,Бананы); - Set<Рецепт> СписокРецептов = new HashSet<>(); - Рецепт рецепт1 = new Рецепт("Рецепт 1"); - Рецепт рецепт2 = new Рецепт("Рецепт 2"); - рецепт1.addToSet(Бананы,2); - рецепт1.addToSet(Апельсины,1); - рецепт2.addToSet(Бананы,1); - рецепт2.addToSet(Апельсины,3); + System.out.println(List.of(SpisokTovarov.toArray())); + addToSet(SpisokTovarov,Banan); + Set SpisokReceptov = new HashSet<>(); + Recept recept1 = new Recept("Рецепт 1"); + Recept recept2 = new Recept("Рецепт 2"); + recept1.addToSet(Banan,2); + recept1.addToSet(Apelsin,1); + recept2.addToSet(Banan,1); + recept2.addToSet(Apelsin,3); try { - addToSet(СписокРецептов,рецепт1); - addToSet(СписокРецептов,рецепт2); - addToSet(СписокРецептов,рецепт1); + addToSet(SpisokReceptov, recept1); + addToSet(SpisokReceptov, recept2); + addToSet(SpisokReceptov, recept1); } catch (RuntimeException e){ System.out.println(e); } - System.out.println(List.of(СписокРецептов.toArray())); + System.out.println(List.of(SpisokReceptov.toArray())); //part3 collection.put("str1",2); addToCollection("str2",1); diff --git a/src/ru/skypro/Passport.java b/src/ru/skypro/Passport.java index 73e958b..086d167 100644 --- a/src/ru/skypro/Passport.java +++ b/src/ru/skypro/Passport.java @@ -3,32 +3,32 @@ import java.util.Objects; public class Passport { - private final String НомерПаспорта; - private final String Фамилия; - private final String Имя; - private final String Отчество; - private final String ДатаРождения; + private final String NomerPasporta; + private final String Familia; + private final String Imya; + private final String Otchestvo; + private final String DataRozhdenia; - public Passport(String номерПаспорта, String фамилия, String имя, String отчество, String датаРождения) { - НомерПаспорта = номерПаспорта; - Фамилия = фамилия; - Имя = имя; - Отчество = отчество; - ДатаРождения = датаРождения; + public Passport(String nomerPasporta, String familia, String imya, String otchestvo, String dataRozhdenia) { + NomerPasporta = nomerPasporta; + Familia = familia; + Imya = imya; + Otchestvo = otchestvo; + DataRozhdenia = dataRozhdenia; } - public String getНомерПаспорта() { - return НомерПаспорта; + public String getNomerPasporta() { + return NomerPasporta; } @Override public String toString() { return "Passport{" + - "НомерПаспорта='" + НомерПаспорта + '\'' + - ", Фамилия='" + Фамилия + '\'' + - ", Имя='" + Имя + '\'' + - ", Отчество='" + Отчество + '\'' + - ", ДатаРождения='" + ДатаРождения + '\'' + + "НомерПаспорта='" + NomerPasporta + '\'' + + ", Фамилия='" + Familia + '\'' + + ", Имя='" + Imya + '\'' + + ", Отчество='" + Otchestvo + '\'' + + ", ДатаРождения='" + DataRozhdenia + '\'' + '}'; } @@ -36,11 +36,11 @@ public String toString() { public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Passport passport)) return false; - return Objects.equals(НомерПаспорта, passport.НомерПаспорта); + return Objects.equals(NomerPasporta, passport.NomerPasporta); } @Override public int hashCode() { - return Objects.hash(НомерПаспорта); + return Objects.hash(NomerPasporta); } } diff --git a/src/ru/skypro/products/Recept.java b/src/ru/skypro/products/Recept.java new file mode 100644 index 0000000..4429407 --- /dev/null +++ b/src/ru/skypro/products/Recept.java @@ -0,0 +1,52 @@ +package ru.skypro.products; + +import java.util.*; + +public class Recept { + + Map MnozhestvoProductov = new HashMap<>(); + private final String name; + public Integer SumCostTovar(){ + int i=0; + for (Map.Entry tovar: MnozhestvoProductov.entrySet()) { + + i+=tovar.getKey().getCost()*tovar.getValue(); + } + return i; + } + + public Recept(String name) { + this.name = name; + } + + @Override + public String toString() { + return "Рецепт{" + + "МножествоПродуктов=" + MnozhestvoProductov + + ", Название='" + name + '\'' + + ", СуммарнаяСтоимостьПродуктов='" + SumCostTovar() + '\'' + + '}'; + } + + public void addToSet(Tovar val, Integer count){ + if (count<1){ + throw new RuntimeException("Количество продукта в рецепте не может быть меньше 1."); + } + MnozhestvoProductov.put(val,count); + } + public void remFromSet(Tovar val){ + MnozhestvoProductov.remove(val); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Recept recept)) return false; + return Objects.equals(MnozhestvoProductov, recept.MnozhestvoProductov) && Objects.equals(name, recept.name); + } + + @Override + public int hashCode() { + return Objects.hash(MnozhestvoProductov, name); + } +} diff --git a/src/ru/skypro/products/Tovar.java b/src/ru/skypro/products/Tovar.java new file mode 100644 index 0000000..dfab1af --- /dev/null +++ b/src/ru/skypro/products/Tovar.java @@ -0,0 +1,52 @@ +package ru.skypro.products; + +import java.util.Objects; + +public class Tovar { + + private final String name; + private final Integer cost; + private final Integer weight; + + public Tovar(String name, Integer cost, Integer weight) { + if (name == null|| cost == null || weight == null){ + throw new RuntimeException("Заполните карточку товара полностью"); + } + this.name = name; + this.cost = cost; + this.weight = weight; + } + + @Override + public String toString() { + return "Товар{" + + "Название='" + name + '\'' + + ", Цена=" + cost + + ", ВесВКг=" + weight + + '}'; + } + + public String getName() { + return name; + } + + public Integer getCost() { + return cost; + } + + public Integer getWeight() { + return weight; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Tovar tovar)) return false; + return Objects.equals(cost, tovar.cost) && Objects.equals(weight, tovar.weight); + } + + @Override + public int hashCode() { + return Objects.hash(cost, weight); + } +} diff --git "a/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" "b/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" deleted file mode 100644 index b551d83..0000000 --- "a/src/ru/skypro/products/\320\240\320\265\321\206\320\265\320\277\321\202.java" +++ /dev/null @@ -1,52 +0,0 @@ -package ru.skypro.products; - -import java.util.*; - -public class Рецепт { - - Map<Товар,Integer> МножествоПродуктов = new HashMap<>(); - private final String Название; - public Integer СуммарнаяСтоимостьПродуктов(){ - int i=0; - for (Map.Entry<Товар,Integer> товар:МножествоПродуктов.entrySet()) { - - i+=товар.getKey().getЦена()*товар.getValue(); - } - return i; - } - - public Рецепт(String название) { - Название = название; - } - - @Override - public String toString() { - return "Рецепт{" + - "МножествоПродуктов=" + МножествоПродуктов + - ", Название='" + Название + '\'' + - ", СуммарнаяСтоимостьПродуктов='" + СуммарнаяСтоимостьПродуктов() + '\'' + - '}'; - } - - public void addToSet(Товар val,Integer count){ - if (count<1){ - throw new RuntimeException("Количество продукта в рецепте не может быть меньше 1."); - } - МножествоПродуктов.put(val,count); - } - public void remFromSet(Товар val){ - МножествоПродуктов.remove(val); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof Рецепт рецепт)) return false; - return Objects.equals(МножествоПродуктов, рецепт.МножествоПродуктов) && Objects.equals(Название, рецепт.Название); - } - - @Override - public int hashCode() { - return Objects.hash(МножествоПродуктов, Название); - } -} diff --git "a/src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" "b/src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" deleted file mode 100644 index d17f0b0..0000000 --- "a/src/ru/skypro/products/\320\242\320\276\320\262\320\260\321\200.java" +++ /dev/null @@ -1,52 +0,0 @@ -package ru.skypro.products; - -import java.util.Objects; - -public class Товар { - - private final String Название; - private final Integer Цена; - private final Integer ВесВКг; - - public Товар(String название, Integer цена, Integer весВКг) { - if (название == null||цена == null || весВКг == null){ - throw new RuntimeException("Заполните карточку товара полностью"); - } - Название = название; - Цена = цена; - ВесВКг = весВКг; - } - - @Override - public String toString() { - return "Товар{" + - "Название='" + Название + '\'' + - ", Цена=" + Цена + - ", ВесВКг=" + ВесВКг + - '}'; - } - - public String getНазвание() { - return Название; - } - - public Integer getЦена() { - return Цена; - } - - public Integer getВесВКг() { - return ВесВКг; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof Товар товар)) return false; - return Objects.equals(Цена, товар.Цена) && Objects.equals(ВесВКг, товар.ВесВКг); - } - - @Override - public int hashCode() { - return Objects.hash(Цена, ВесВКг); - } -} From 2467c2e0a33a56a7cfd59ab0a0bc949624122b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D1=8F=D1=87=D0=B5=D1=81=D0=BB=D0=B0=D0=B2=20=D0=A2?= =?UTF-8?q?=D0=B8=D1=85=D0=BE=D0=BD=D0=BE=D0=B2?= Date: Wed, 26 Oct 2022 16:23:17 +0300 Subject: [PATCH 23/23] fixes --- src/ru/skypro/products/Recept.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ru/skypro/products/Recept.java b/src/ru/skypro/products/Recept.java index 4429407..ffdfb39 100644 --- a/src/ru/skypro/products/Recept.java +++ b/src/ru/skypro/products/Recept.java @@ -4,11 +4,11 @@ public class Recept { - Map MnozhestvoProductov = new HashMap<>(); + Map mnozhestvoProductov = new HashMap<>(); private final String name; - public Integer SumCostTovar(){ + public Integer sumCostTovar(){ int i=0; - for (Map.Entry tovar: MnozhestvoProductov.entrySet()) { + for (Map.Entry tovar: mnozhestvoProductov.entrySet()) { i+=tovar.getKey().getCost()*tovar.getValue(); } @@ -22,9 +22,9 @@ public Recept(String name) { @Override public String toString() { return "Рецепт{" + - "МножествоПродуктов=" + MnozhestvoProductov + + "МножествоПродуктов=" + mnozhestvoProductov + ", Название='" + name + '\'' + - ", СуммарнаяСтоимостьПродуктов='" + SumCostTovar() + '\'' + + ", СуммарнаяСтоимостьПродуктов='" + sumCostTovar() + '\'' + '}'; } @@ -32,21 +32,21 @@ public void addToSet(Tovar val, Integer count){ if (count<1){ throw new RuntimeException("Количество продукта в рецепте не может быть меньше 1."); } - MnozhestvoProductov.put(val,count); + mnozhestvoProductov.put(val,count); } public void remFromSet(Tovar val){ - MnozhestvoProductov.remove(val); + mnozhestvoProductov.remove(val); } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Recept recept)) return false; - return Objects.equals(MnozhestvoProductov, recept.MnozhestvoProductov) && Objects.equals(name, recept.name); + return Objects.equals(mnozhestvoProductov, recept.mnozhestvoProductov) && Objects.equals(name, recept.name); } @Override public int hashCode() { - return Objects.hash(MnozhestvoProductov, name); + return Objects.hash(mnozhestvoProductov, name); } }