From 99d0e3a78166a85c48d81ded3041753cd7691734 Mon Sep 17 00:00:00 2001 From: Zdertis420 Date: Wed, 24 Jul 2024 21:56:05 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BE=D1=87=D0=BD=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 9 ++++++++ src/main/java/Main.java | 47 +++++++++++++++++++++++++++++++++++++---- src/main/java/Race.java | 41 +++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 src/main/java/Car.java create mode 100644 src/main/java/Race.java diff --git a/src/main/java/Car.java b/src/main/java/Car.java new file mode 100644 index 0000000..fd70a4c --- /dev/null +++ b/src/main/java/Car.java @@ -0,0 +1,9 @@ +public class Car { + String name; + short speed; + + Car(String name, short speed) { + this.name = name; + this.speed = speed; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index a9198c4..405e8c0 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,8 +1,47 @@ +import java.util.Scanner; + + public class Main { + static Scanner scanner = new Scanner(System.in); + public static void main(String[] args) { - // ваш код начнется здесь - // вы не должны ограничиваться только классом Main и можете создавать свои классы по необходимости - System.out.println("Привет Мир"); + + System.out.println("Enter amount of racers"); + int amount = scanner.nextInt(); + + System.out.println("Now enter racers' names and speed\nOn a separate lines"); + + Car[] cars = create(amount); + + Race race = new Race(cars); + + race.start(); + + +// for (Car car: cars) System.out.printf("Name: %s\nSpeed: %d\n", car.name, car.speed); + + + } + + private static Car[] create(int amount) { + Car[] cars = new Car[amount]; + + for (int i = 1; i < amount + 1; ++i) { + System.out.printf("%d racer's name and speed:\n", i); + String name = scanner.next(); + short speed; + while (true) { + speed = scanner.nextShort(); + if (0 < speed && speed <= 250) { + break; + } else { + System.out.println("Speed should be more than 0 and less than 250\nTry again"); + } + } + cars[i - 1] = new Car(name, speed); + } + + return cars; } -} +} \ No newline at end of file diff --git a/src/main/java/Race.java b/src/main/java/Race.java new file mode 100644 index 0000000..ba37ea5 --- /dev/null +++ b/src/main/java/Race.java @@ -0,0 +1,41 @@ +import java.util.*; + +public class Race { + Car[] racers; + + Race(Car[] racers) { + this.racers = racers; + } + + public void start() { + ArrayList distances = calculateDistances(racers); + + String winner = calculateWinner(distances); + + System.out.printf("The winner is %s", winner); + } + + private ArrayList calculateDistances(Car[] racers) { + ArrayList distances = new ArrayList<>(); + + for (Car racer : racers) { + distances.add(racer.speed * 24); + } + + return distances; + } + + private String calculateWinner(ArrayList distances) { + int maxDistance = 0; + + for (int distance: distances) { + if (distance > maxDistance) { + maxDistance = distance; + } + } + + int indexOfWinner = distances.indexOf(maxDistance); + + return racers[indexOfWinner].name; + } +} From 3d89b53626147c7546305496bfffdff4cff83c31 Mon Sep 17 00:00:00 2001 From: Zdertis420 Date: Sun, 28 Jul 2024 16:13:58 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BE=D1=87=D0=BD=D1=8F=20?= =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=8B=D1=82=D0=BA=D0=B0=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Car.java | 6 +++--- src/main/java/Main.java | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/Car.java b/src/main/java/Car.java index fd70a4c..4fccc3d 100644 --- a/src/main/java/Car.java +++ b/src/main/java/Car.java @@ -1,8 +1,8 @@ public class Car { - String name; - short speed; + final String name; + final int speed; - Car(String name, short speed) { + Car(String name, int speed) { this.name = name; this.speed = speed; } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 405e8c0..4a68232 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -30,16 +30,25 @@ private static Car[] create(int amount) { for (int i = 1; i < amount + 1; ++i) { System.out.printf("%d racer's name and speed:\n", i); String name = scanner.next(); - short speed; + String speed; + int intSpeed; while (true) { - speed = scanner.nextShort(); - if (0 < speed && speed <= 250) { + speed = scanner.next(); + + try { + intSpeed = Integer.parseInt(speed); + } catch (NumberFormatException e) { + System.out.println("Speed should be a number between 0 and 250\nTry again"); + continue; + } + + if (0 < intSpeed && intSpeed <= 250) { break; } else { - System.out.println("Speed should be more than 0 and less than 250\nTry again"); + System.out.println("Speed should be between 0 and 250\nTry again"); } } - cars[i - 1] = new Car(name, speed); + cars[i - 1] = new Car(name, intSpeed); } return cars;