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
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"
34 changes: 22 additions & 12 deletions src/main/java/Calculator.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
class Calculator {
public class Calculator {

int friendsCount;
private static String listProducts = "";
private static double sumOfProducts = 0;
private static int numberOfPeoples;

String cart = "Добавленные товары:";
double totalPrice = 0;
public static void setNumberOfPeoples (int setNumberOfPeoples ) {
numberOfPeoples = setNumberOfPeoples;
}

public static void makeListOfProducts (Product product) {

Calculator(int friendsCount) {
this.friendsCount = friendsCount;
listProducts = listProducts + product.getNameProduct() + "\n";
}

void addItem(Item item) {
totalPrice += item.price;
cart = cart + "\n" + item.name;
public static void countSumOnBill (Product priceProduct) {
sumOfProducts += priceProduct.getPriceProduct();
}

System.out.println(item.name + " в корзине");
public static String getListProducts() {
System.out.println("\nДобавленные товары:");

return listProducts;
}

double divideSum() {
return totalPrice / friendsCount;
public static double getSumOfProducts (){
return sumOfProducts;
}
public static double getSumForOnePeople(){
return sumOfProducts / numberOfPeoples;
}
}
17 changes: 0 additions & 17 deletions src/main/java/Formatter.java

This file was deleted.

34 changes: 34 additions & 0 deletions src/main/java/Formatting.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
public class Formatting {

public static String getFormattingDouble (double sumValue){

return String.format("%.2f",sumValue);
}

public static String getFormattingEnding (double sumValue){

int remOfDevision = ((int)sumValue) % 10;

if (sumValue >= 11 && sumValue < 15)
return "рублей";

switch(remOfDevision){
case 1:
return "рубль";
case 2:
case 3:
case 4:
return "рубля";
case 5:
case 6:
case 7:
case 8:
case 9:
return "рублей";

}
return "рублей";
}


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

This file was deleted.

99 changes: 72 additions & 27 deletions src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,94 @@

import java.util.Scanner;

public class Main {

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

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

Calculator.setNumberOfPeoples(inputPeopels());

Product product = new Product();

System.out.println("Отлично, вы не один! Вам нужно ввести наименование товаров и их цену.");

while(true){

if (friendCount > 1) {
product.setNameProduct(inputNameProduct());
Calculator.makeListOfProducts(product);

product.setPriceProduct(inputPriceProduct());
Calculator.countSumOnBill(product);

System.out.println("\n"+"******Ваш товар добавлен успешно!******"+"\n");

System.out.print ("Если хотите завершить добавление товаров, наберите \"завершить\", если нет - введите любой символ: ");
Scanner scanner = new Scanner(System.in);
if(scanner.next().equalsIgnoreCase(STOP_VALUE))
break;
} else if (friendCount == 1) {
System.out.println(
"Нет смысла делить сумму на одного человека. Давайте попробуем ввести другое значение, которое будет больше единицы.");
} else {
System.out.println("Неверное количество друзей. Значение должно быть болье единицы, давайте попробуем еще раз.");
}
}

Calculator calculator = new Calculator(friendCount);
System.out.println(Calculator.getListProducts());

while (true) {
System.out.println("Введите название товара");
String name = scanner.next();
System.out.print("Общая сумма для оплаты: " + Formatting.getFormattingDouble(Calculator.getSumOfProducts()));
System.out.println(" " + Formatting.getFormattingEnding(Calculator.getSumOfProducts()));

System.out.println("Введите стоимость товара в формате: 'рубли.копейки' [10.45, 11.40]");
double price = scanner.nextDouble();
System.out.print("Сумма оплаты для одного человека: " + Formatting.getFormattingDouble(Calculator.getSumForOnePeople()));
System.out.println(" " + Formatting.getFormattingEnding(Calculator.getSumForOnePeople()) + ". Вместе дешевле и веселее!");

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

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

if (answer.equalsIgnoreCase("Завершить")) {
private static int inputPeopels () {
Scanner scanner = new Scanner(System.in);
int numberOfPeoples;
while (true) {
System.out.print("Ввидите число людей, на которых нужно разделить счет: ");
try {
numberOfPeoples = Integer.parseInt(scanner.next());
if (numberOfPeoples == 1)
{
System.out.println("Похоже вы один... Вам счет делить не с кем =(. Введите другое число.");
continue;
}
else if (numberOfPeoples <= 0){
System.out.println("Ввидите значение больше нуля. Попробуйте еще раз.");
continue;
}
break;
} catch (NumberFormatException exp) {
System.out.println("Не корректный ввод! Ввидите число.");
}
}
return numberOfPeoples;
}

double result = calculator.divideSum();
Formatter formatter = new Formatter();
private static String inputNameProduct (){

System.out.println(calculator.cart);
System.out.println("Каждому человеку к оплате: " + formatter.roundResult(result) + " " + formatter.formatValue(result));
Scanner scanner = new Scanner(System.in);
System.out.print("Введите название товара:");

return scanner.nextLine();
}

private static double inputPriceProduct () {
Scanner scanner = new Scanner(System.in);
double priceProduct;
while (true) {
System.out.print("Введите стоимость товара в следующем формате: \"'рубли.копейки' [10.45, 11.40]\": ");
try {
priceProduct = Double.parseDouble(scanner.next());
if (priceProduct <= 0){
System.out.println("Вы ввели отрицательную стоимость. Такое может быть, но не в этой жизни =(.");
continue;
}
break;
} catch (NumberFormatException exp) {
System.out.println("Не корректный ввод! Ввидите число в указанном формате.");
}
}
return priceProduct;
}

}
23 changes: 23 additions & 0 deletions src/main/java/Product.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
public class Product {

private String nameProduct;
private double priceProduct;


public void setNameProduct (String nameProduct){
this.nameProduct = nameProduct;
}

public void setPriceProduct(double priceProduct){
this.priceProduct = priceProduct;
}

public String getNameProduct () {
return nameProduct;
}

public double getPriceProduct(){
return priceProduct;
}

}