Repository navigation
zxc #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
zxc #1
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| import java.util.Scanner; | ||
| public class Calculator { | ||
| double sum = 0; | ||
| String list = ""; | ||
| int i = 0; | ||
|
|
||
| void sum(){ | ||
| while(true) { | ||
| Scanner scanner = new Scanner(System.in); | ||
| System.out.println("Введите название товара или напишите слово \"Завершить\" чтобы закончить работу программы."); | ||
| String name = scanner.nextLine(); | ||
| if (name.equalsIgnoreCase("завершить")) { | ||
| scanner.close(); | ||
| break; | ||
| } | ||
| while(true){ | ||
| System.out.println("Введите стоимость " + name + "."); | ||
| if (scanner.hasNextDouble()){ | ||
| double price = scanner.nextDouble(); | ||
| if(price>0){ | ||
| Formatter formatter = new Formatter(price); | ||
| formatter.ruble(price); | ||
| i += 1; | ||
| sum = sum + price; | ||
| String price2 = String.format("%.2f", price); | ||
| list = list + i + ". "+ name + " - " + price2 +" "+ formatter.rub +".\n"; | ||
| break; | ||
| } | ||
| System.out.println("Введена неправльная цена товара!"); | ||
| } | ||
| else { | ||
| System.out.println("Введена неправльная цена товара!"); | ||
| scanner.next(); | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| public class Formatter { | ||
| double i; | ||
| String rub; | ||
|
|
||
| Formatter(double i){ | ||
| this.i = i; | ||
| } | ||
|
|
||
| void ruble(double i){ | ||
| int i2 = (int)Math.floor(i)%100; | ||
| switch(i2){ | ||
| case 21: | ||
| case 31: | ||
| case 41: | ||
| case 51: | ||
| case 61: | ||
| case 71: | ||
| case 81: | ||
| case 91: | ||
| case 1:{ | ||
| rub = "рубль"; | ||
| break; | ||
| } | ||
| case 2: | ||
| case 22: | ||
| case 32: | ||
| case 42: | ||
| case 52: | ||
| case 62: | ||
| case 72: | ||
| case 82: | ||
| case 92: | ||
| case 3: | ||
| case 23: | ||
| case 33: | ||
| case 43: | ||
| case 53: | ||
| case 63: | ||
| case 73: | ||
| case 83: | ||
| case 93: | ||
| case 4: | ||
| case 24: | ||
| case 34: | ||
| case 44: | ||
| case 54: | ||
| case 64: | ||
| case 74: | ||
| case 84: | ||
| case 94:{ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ⏫ Среда разработки предложила немного укороченный вариант А вообще, конечно, будет компактнее и читабельнее, если не расписывать все варианты, а проверить взять |
||
| rub = "рубля"; | ||
| break; | ||
| } | ||
| default:{ | ||
| rub = "рублей"; | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,35 @@ | ||
|
|
||
| import java.util.Scanner; | ||
| public class Main { | ||
| public static void main(String[] args) { | ||
| System.out.println("Hello world!"); | ||
| } | ||
| } | ||
| Scanner scanner = new Scanner(System.in); | ||
| Calculator sum = new Calculator(); | ||
| int people; | ||
| while(true){ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ⏫ Я бы сделал чтение количества людей отдельным методом, раз оно так хорошо отделяется. И тем самым можно разгрузить основнйо метод |
||
| System.out.println("На сколько людей разделить счет?"); | ||
| if(scanner.hasNextInt()){ | ||
| people = scanner.nextInt(); | ||
| if(people > 1){ | ||
| break; | ||
| } | ||
| System.out.println("Введено некоректное количество людей!\nПопробуйте ещё раз!"); | ||
| } | ||
| else{ | ||
| System.out.println("Введено некоректное количество людей!\nПопробуйте ещё раз!"); | ||
| scanner.next(); | ||
| } | ||
| } | ||
| sum.sum(); | ||
| if(sum.i != 0){ | ||
| Formatter formatter = new Formatter(0); | ||
| formatter.ruble(sum.sum/people); | ||
| String zxc = String.format("%.2f", (sum.sum/ people)); | ||
| System.out.println("Добавленные товары:\n"+sum.list); | ||
| System.out.println("Сумма которую должен заплатить каждый - "+zxc+" "+ formatter.rub+"."); | ||
| scanner.close(); | ||
| } | ||
| else { | ||
| System.out.println("Вы не добавили ни одного товара."); | ||
| scanner.close(); | ||
| } | ||
| } | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Надо проверять последнюю или 2 последних цифры числа, в зависимости от ситуации, чтобы правильно определить склонение. Есть несколько случаев, которые нужно проверить, когда заканчивается на: