import java.lang.String;
import java.lang.System;
import java.util.ArrayList;
import java.util.Scanner;
import java.lang.Double;
public class Main {
private static final Scanner scanner = new Scanner(System.in);
public static double sum = 0;
public static void main(String[] args) {
ProcessCreateProduct goods = new ProcessCreateProduct();
goods.calculateAndPrint();
}//main
//******************************************************************************************
/*клаÑÑ Ð²Ð²Ð¾Ð´Ð° колиÑеÑÑва Ñеловек,
* ÑодеÑÐ¶Ð¸Ñ ÐµÐ´Ð¸Ð½ÑÑвеннÑй меÑод enterPerson()*/
static class NumPerson {
int person = 0;
public int enterPerson(){
System.out.println("ÐведиÑе колиÑеÑÑво Ñеловек (Ñелое, болÑÑе 1): ");
//даннÑе, оÑÑавÑиеÑÑ Ð² Scanner поÑле ÑÑиÑÑваниÑ
String remainedData ="";
while (true){
if (scanner.hasNextInt()){
person = scanner.nextInt();
// ÐÑовеÑÑем, оÑÑалиÑÑ Ð»Ð¸ даннÑе в scanner
if (scanner.hasNextLine()) {
remainedData = scanner.nextLine();
if (remainedData.length()>1) {
System.out.println("ÐведиÑе ÑолÑко ÑиÑло! ÐведиÑе еÑе Ñаз:");
continue;
}
}
if (person<= 1){
System.out.println("ЧиÑло должно бÑÑÑ Ð±Ð¾Ð»ÑÑе 1! ÐведиÑе еÑе Ñаз: ");
} else {
return person;
}
} else if (scanner.hasNextDouble()) {
System.out.println("ЧиÑло должно бÑÑÑ ÑелÑм! ÐведиÑе еÑе Ñаз: ");
scanner.next();
} else if (scanner.hasNextLine()){ //еÑли ввод Ð½Ð°Ñ Ñ Ð±Ñкв, заканÑиваеÑÑÑ ÑелÑм ÑиÑлом
System.out.println("ÐведиÑе ÑолÑко ÑиÑло! ÐведиÑе еÑе Ñаз: ");
scanner.nextLine();
}
}
}//enterPerson
}//NumPerson
//**********************************************************************
/*ÐÑновной клаÑÑ ÑабоÑÑ Ñ ÑоваÑом
* СодеÑÐ¶Ð¸Ñ Ñлед меÑодÑ:
* createProduct() - ввод ÑоваÑов, ÑенÑ, ÑоÑмаÑÐ¸Ñ ÑÑблей и пÑовеÑок ввода
* getPrice() - пÑовеÑка пÑавилÑноÑÑи введеной ÑенÑ
* calculateAndPrint() - меÑод, ÑодеÑжаÑий вÑÑ ÑÑÑÑкÑÑÑÑ Ð¿ÑогÑаммÑ,
* Ð¾Ñ Ð²Ð²Ð¾Ð´Ð° даннÑÑ
, подÑÑеÑа ÑÑммÑ, пеÑаÑи ÑоваÑов и ÑÑоимоÑÑи */
static class ProcessCreateProduct{
ArrayListproductsList = new ArrayList<>();
ArrayList createProduct(){
String newName = "";
double newPrice = 0;
String newRubles = "";
while (true){
System.out.println("ÐведиÑе название ÑоваÑа: ");
newName = scanner.nextLine();
newName = newName.trim();
//пÑовеÑка на пÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð¸Ð»Ð¸ ÑÑÑÐ¾ÐºÑ Ð¸Ð· пÑобелов
if (newName.isBlank()){
System.out.println("ÐÑ Ð½Ðµ можеÑе ввеÑÑи пÑÑÑое название ÑоваÑа! ");
continue;
}
boolean flPutProduct = false; //Ñлаг Ñже положенного ÑоваÑа
//ÐÑли Ñже еÑÑÑ Ð´Ð°Ð½Ð½Ñй ÑÐ¾Ð²Ð°Ñ Ð² ÑпиÑке
if (!productsList.isEmpty()){
//иÑем его в ÑпиÑке
for (Product item: productsList){
if (item.name.equalsIgnoreCase(newName)){
//кладем в ÑпиÑок вмеÑÑе Ñ Ñеной
productsList.add(item);
System.out.println("Ð¢Ð¾Ð²Ð°Ñ "+ item.name + " ÑÑпеÑно добавлен в коÑзинÑ. СÑоимоÑÑÑ ÑоваÑа " + item.price + " " + item.rubles);
sum+= item.price;
flPutProduct = true;
break;
}
}
}
if (!flPutProduct) {
System.out.println("ÐведиÑе ÑÐµÐ½Ñ ÑоваÑа в ÑÑблÑÑ
(ÑоÑÐ¼Ð°Ñ ÑÑ,кк): ");
newPrice = getPrice();
//Ñк Ñклонение Ñлово ÑÑÐ±Ð»Ñ - оÑделÑнÑй клаÑÑ
FormatRubles format = new FormatRubles();
newRubles = format.formatRubles(newPrice);
//Ð¢Ð¾Ð²Ð°Ñ Ð¿ÑоÑел вÑе пÑовеÑки
//Ñоздаем обÑÐµÐºÑ ÑоваÑа, кладем в ÑпиÑок
Product newProduct = new Product(newName,newPrice,newRubles);
productsList.add(newProduct);
System.out.println("Ð¢Ð¾Ð²Ð°Ñ "+ newProduct.name + " ÑÑпеÑно добавлен в коÑзинÑ");
sum+= newProduct.price;
}
System.out.println("ХоÑиÑе добавиÑÑ ÑледÑÑÑий ÑоваÑ?");
System.out.println("ÐÐ»Ñ Ð¿ÑекÑаÑÐµÐ½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð° введиÑе командÑ: ÐавеÑÑиÑÑ ");
System.out.println("ÐÐ»Ñ Ð¿ÑÐ¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ ÑабоÑÑ Ð½Ð°Ð¶Ð¼Ð¸Ñе лÑбÑÑ ÐºÐ»Ð°Ð²Ð¸ÑÑ ");
String command = scanner.nextLine();
if (command.equalsIgnoreCase("ÐавеÑÑиÑÑ")){
return productsList;
}
}//while
}//createProduct
private double getPrice(){
double number = 0;
//даннÑе, оÑÑавÑиеÑÑ Ð² Scanner поÑле ÑÑиÑÑваниÑ
String remainedData ="";
while (true){
if (scanner.hasNextDouble()){
number = scanner.nextDouble();
// ÐÑовеÑÑем, оÑÑалиÑÑ Ð»Ð¸ даннÑе в scanner
if (scanner.hasNextLine()) {
remainedData = scanner.nextLine();
if (remainedData.length()>1) {
System.out.println("ÐведиÑе ÑолÑко ÑиÑло в ÑоÑмаÑе: ÑÑбли,копейки! ÐведиÑе еÑе Ñаз:");
continue;
}
}
if (number <= 0){
System.out.println("Цена должна бÑÑÑ Ð±Ð¾Ð»ÑÑе 0! ÐведиÑе еÑе Ñаз: ");
} else return number;
} else if (scanner.hasNextLine()){ //еÑли ввод Ð½Ð°Ñ Ñ Ð±Ñкв, заканÑиваеÑÑÑ ÑиÑлом
System.out.println("ÐведиÑе ÑолÑко ÑиÑло в ÑоÑмаÑе: ÑÑбли,копейки! ÐведиÑе еÑе Ñаз: ");
scanner.nextLine();
}
}
}//getPrice
void calculateAndPrint(){
NumPerson countPerson = new NumPerson();
int number = countPerson.enterPerson();
ArrayList list = new ArrayList<>(createProduct());
System.out.println("ÐобавленнÑе ÑоваÑÑ: ");
String message = "ТоваÑ: %s\tÑена: %.2f %s";
for (int i = 0; i=11)&&((digit % 100)<=14)){
return " ÑÑблей";
} else {
switch (digit % 10) {
case 1:
return " ÑÑблÑ";
case 2:
case 3:
case 4:
return " ÑÑблÑ";
default:
return " ÑÑблей";
}
}
}
}//FormatRubles
//****************************************************************
/*ÐлаÑÑ ÑÑÑÑкÑÑÑÑ ÑоваÑа, коÑоÑÑй добавлÑем в ÑпиÑок*/
static class Product {
String name; //название ÑоваÑа
double price; //Ñена
String rubles; //ÑоÑÐ¼Ð°Ñ Ð²Ð°Ð»ÑÑÑ
public Product(String name,double price, String rubles){
this.name = name;
this.price = price;
this.rubles = rubles;
}
}//Product
}