Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions src/main/java/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
public class Car {
private String carName;
private int carSpeed;

public Car(String carName, int carSpeed) {
this.carName = carName;
this.carSpeed = carSpeed;
}

public String getCarName() {
return carName;
}

public int getCarSpeed() {
return carSpeed;
}


public void setCarName(String carName) {
this.carName = carName;
}

public void setCarSpeed(int carSpeed) {
if (carSpeed <= 0) {
System.out.println("Ошибка. Скорость автомобиля не может быть отрицательной или равна нулю");
} else if (carSpeed >= 250) {
System.out.println("Ошибка. Скорость автомобиля не может быть больше 250");
} else this.carSpeed = carSpeed;
}
}
49 changes: 47 additions & 2 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,51 @@
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
int numberOfСars = 3; //количество машин участвующих в гонке
ArrayList<Car> listOfCar = new ArrayList<>();
Scanner sr = new Scanner(System.in);

for (int i = numberOfСars; i > 0; i--) {

String carName;
while (true) {
System.out.println("Введите название машины №" + (numberOfСars - i + 1));
carName = sr.nextLine();
if (carName != null && !carName.isEmpty() && !carName.trim().isEmpty()) {
break;
} else System.out.println("Введено не корректное значение пропробуйте снова");
}

int carSpeed;
while (true) {
System.out.println("Введите скорость машины №" + (numberOfСars - i + 1));
String carSpeedString = sr.nextLine();
if (isNumber(carSpeedString)) {
if (Integer.parseInt(carSpeedString) > 0 && Integer.parseInt(carSpeedString) <= 250) {
carSpeed = Integer.parseInt(carSpeedString);
break;
} else System.out.println("Введено не корректное значение пропробуйте снова");
} else System.out.println("Введено не корректное значение пропробуйте снова");
}

Car car = new Car(carName, carSpeed);
listOfCar.add(car);
}

Race race = new Race(listOfCar);
race.resultRace();
sr.close();

}

public static boolean isNumber(String str) {
try {
Integer.parseInt(str);
} catch (Exception e) {
return false;
}
return true;
}
}
}
49 changes: 49 additions & 0 deletions src/main/java/Race.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import java.util.ArrayList;

public class Race {
int timeRace = 24;
ArrayList<Car> listOfCar;

// стандартная гонка - 24 часа
public Race(ArrayList<Car> listOfCar) {
this.listOfCar = listOfCar;
}

// не стандартная гонка(задаём время)
public Race(ArrayList<Car> listOfCar, int timeRace) {
this.listOfCar = listOfCar;
this.timeRace = timeRace;
}

public int getTimeRace() {
return timeRace;
}

public void setTimeRace(int timeRace) {
if (timeRace <= 0) {
System.out.println("Ошибка. Время гонки не может быть меньше или равно 0");
} else this.timeRace = timeRace;
}

public void resultRace() {
String carChamp = null;
int distance = 0;
int distance2 = 0; // нужно для проверки нет ли больше одного победителя

for (Car car : listOfCar) {
if (car.getCarSpeed() * timeRace > distance) {
distance = car.getCarSpeed() * timeRace;
carChamp = car.getCarName();
} else if (car.getCarSpeed() * timeRace == distance) {
String carChamp2 = car.getCarName();
distance2 = car.getCarSpeed() * timeRace;
}
}

if (distance == distance2) {
System.out.println("Победителей нет, несколько машин пришли одновременно");
} else {
System.out.printf("Самая быстрая машина: %s, прошла %d километров", carChamp, distance);
}
}
}