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
17 changes: 17 additions & 0 deletions src/main/java/Calc.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import java.util.ArrayList;
import java.util.List;

public class Calc {
static List<String> menu = new ArrayList<>();
static double summa = 0;
public static List<String> menu(String nameb) {
menu.add(nameb);
return (menu);
}
public static Double calculator(Double summa1){

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏Старайся оставлять пустую строку между методами класса


summa = summa + summa1;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏 Лучше не использовать числа в названии переменных. Здесь можно summa назвать, например, totalSum, а summa1 - newSum, также можно использовать оператор +=

return (summa);
}
}

15 changes: 15 additions & 0 deletions src/main/java/Form.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
public class Form {
public static void sum(double summa) {
int x = (int) summa % 100 / 10;
int y = (int) summa % 10;
if (summa == 1 || (y == 1 && x != 1)) {
System.out.print(" рубль");
} else {
if ((y == 2 || y == 3 || y == 4) && x != 1) {
System.out.print(" рубля");
} else {
System.out.print(" рублей");
}
}
}
}
74 changes: 74 additions & 0 deletions src/main/java/Input.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import java.util.Scanner;

public class Input {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏Лишняя пустая строка


public static int human () {
int n;
Scanner input = new Scanner(System.in);

System.out.println("Привет! Я – калькулятор счета");
while (true) {
System.out.println("На скольких человек необходимо разделить счет?");
String str = input.next();
n = 0;
try {
n = Integer.parseInt(str);
if (n == 1) {
System.out.println("Ошибка, Вы ввели 1");
} else {
if (n < 1) {
System.out.println("Вы ввели отрицательное число!");
} else {
if (n == 0) {
System.out.println("Ошибка, Вы ввели 0");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏Код никогда не попадёт сюда, до этого условие n<1, а 0 как раз меньше 1, значит в else со значением 0 он никогда не попадёт

} else {
System.out.println("Спасибо!");
break;
}
}


}

} catch (NumberFormatException ne) {
System.out.println("Ошибка, введите число");
}
}
return n;
}




public static String name() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏 Следует следить за форматированием кода, это можно делать автоматически, прожимая ctrl+alt+l https://devcolibri.com/%D0%B3%D0%BE%D1%80%D1%8F%D1%87%D0%B8%D0%B5-%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B8-intellij-idea/

Scanner input = new Scanner(System.in);
Prod p = new Prod();

System.out.println("Введите название блюда и нажмите Enter. Если ввод закончен, введите \"Завершить\"");

p.name = input.next();

return p.name;
}
public static double inp() {
Scanner input = new Scanner(System.in);
double price1 = 0;
while (true) {
System.out.println("Введите цену блюда");
String str1 = input.next();
try {
price1 = Double.parseDouble(str1);
if (price1 < 0) {
System.out.println("Вы ввели отрицательное число!");
} else {
break;
}
} catch (NumberFormatException ne) {
System.out.println("Ошибка, введите число");
}
}
return price1;
}

}
44 changes: 43 additions & 1 deletion src/main/java/Main.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,48 @@
//import java.util.Scanner;

import java.util.ArrayList;
//import java.util.Collections;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🍏Стоит удалить комментарии с ненужным кодом здесь и в других местах кода

import java.util.List;

//import java.Input.Input;
public class Main {

public static void main(String[] args) {
System.out.println("Hello world!");

double summa=0;

//boolean a1;
// double price1=0;

List<String> menu1 = new ArrayList<String>();

Prod p = new Prod();
int n=Input.human();

while (true){
String nameb = Input.name();
if (nameb.equalsIgnoreCase("Завершить")) {
break;
}
p.price = Input.inp();

menu1 = Calc.menu(nameb);
summa= Calc.calculator(p.price);
System.out.println("Товар добавлен");
System.out.println("Хотите ли добавить еще один товар?");
///////

}
System.out.print("Добавленные товары: ");
System.out.println(menu1.toString().replace("[", "").replace("]", ""));

summa = summa/n;
System.out.print("Необходимо оплатить: ");
System.out.printf("%.2f",summa);
Form.sum(summa);
}
}
class Prod {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️Класс в текущей реализации бесполезен. Во-первых, стоит переименовать класс на Product, во-вторых, проинициализировать поля в конструкторе, в-третьих необходимо создать список классов продуктов, в котором во время ввода пользователем продуктов и их цен будут накапливаться эти продукты. После, когда пользователь введёт "Завершить", необходимо будет пройтись по этому списку, посчитать по полю price общую цену, а с помощью поля name выводить названия продуктов. Также каждый класс лучше создавать в отельном файле.

@dekat333 dekat333 Sep 7, 2023 •

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Привет, Вагиз! Спасибо за замечание! Постараюсь исправить. Самостоятельно изучила обработку ошибок в Java, try-catch. Рекомендацию про организацию списков классов выполнить не могу, так как в теоретической части на это не было ни материалов, ни примеров. Если возможно, пришли пример организации списков классов.

String name = ""; // Название блюда
double price = 0; // Цена блюда
}