Skip to content
Merged
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
Binary file added bin/main/Race.class
Binary file not shown.
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ dependencyResolutionManagement {
mavenCentral()
}
}
rootProject.name = "BillCalculator"
rootProject.name = "Java-Module-Project"
22 changes: 0 additions & 22 deletions src/main/java/Calculator.java

This file was deleted.

9 changes: 9 additions & 0 deletions src/main/java/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
public class Car {
String name;
int speed;

Car(String name, int speed){
this.name = name;
this.speed = speed;
}
}
17 changes: 0 additions & 17 deletions src/main/java/Formatter.java

This file was deleted.

10 changes: 0 additions & 10 deletions src/main/java/Item.java

This file was deleted.

55 changes: 18 additions & 37 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,30 @@
import java.util.Objects;
import java.util.Scanner;

public class Main {

static Race race = new Race();

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

int friendCount;
while (true) {
System.out.println("На сколько человек необходимо разделить счет?");
friendCount = scanner.nextInt();

if (friendCount > 1) {
String command = "start";

while(true)
{
if(Objects.equals(command, "start"))
{
if(race.commandStart())
{
command = scanner.nextLine();
}
} else if(Objects.equals(command, "exit"))
{
System.out.println("Завершаем работу.");
break;
} else if (friendCount == 1) {
System.out.println(
"Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы.");
} else {
System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз.");
}
}

Calculator calculator = new Calculator(friendCount);

while (true) {
System.out.println("Введите название товара");
String name = scanner.next();

System.out.println("Введите стоимость товара в формате: 'рубли.копейки' [10.45, 11.40]");
double price = scanner.nextDouble();

calculator.addItem(new Item(name, price));

System.out.println(
"Хотите добавить еще один товар? Введите любой символ для продолжения, либо 'Завершить' если больше нет товаров для добавления");
String answer = scanner.next();

if (answer.equalsIgnoreCase("Завершить")) {
break;
System.out.println("Комманда не распознана.");
command = scanner.nextLine();
}
}

double result = calculator.divideSum();
Formatter formatter = new Formatter();

System.out.println(calculator.cart);
System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result));
}
}
86 changes: 86 additions & 0 deletions src/main/java/Race.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import java.util.ArrayList;
import java.util.Scanner;

public class Race {
ArrayList<Car> carList = new ArrayList<>();

Scanner scanner = new Scanner(System.in);
String leader;
int distance = 0;
String command = "start";

private void newLeader(String carName,int speed) {
int distance = 24 * speed;
if(distance > this.distance)
{
this.leader = carName;
}
}
private void rounds()
{
for(int i = 1; i <= 3; i++) {
try {
Thread.sleep(1000);
System.out.println(i + "й круг пройден!");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
public boolean commandStart()
{
if(carList.isEmpty())
{
System.out.println("Введите данные 3-х автомобилей для начала гонки.\nВ этой гонке только одно правило: Допускаются автомобили со скоростью не выше 250 км/ч");
}
if(carList.size() < 3) {
addCars();
} else {
this.start(carList);
carList.clear();
return true;
}
return false;
}
public void addCars()
{
System.out.println("Введите название " + (carList.size() + 1) + "-го автомобиля");
String name = scanner.next();

System.out.println("Введите скорость автомобиля '"+ name +"' (0-250)");
int speed = scanner.nextInt();
if (speed >= 0 && speed <= 250) {
carList.add(new Car(name, speed));

} else if(speed < 0) {
System.out.println("С этим автомобилем что-то не так. Данный автомобиль дисквалифицирован.");
} else {
System.out.println("Превышена максимальная скорость автомобиля. Данный автомобиль дисквалифицирован.");
}
}
public void start(ArrayList<Car> carList)
{
for(int i = 3; i > 0; i--) {
try {
System.out.println(i);
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
System.out.println("СТАРТ!");
this.rounds();
this.finish(carList);
}
private void finish(ArrayList<Car> carList)
{
for(Car item: carList) {
this.newLeader(item.name,item.speed);
}
System.out.println("ФИНИШ!");
System.out.println("Подедитель гонки - "+this.leader+"!");
System.out.println("Для выхода напишите команду 'exit'\nДля продолжения гонок введите 'start'");

}

}