Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пж с заданием Skillbox

Шлепок Ученик (188), на голосовании 1 год назад
Допишите в класс Basket Начальное значение переменной должно быть равно 0.
При добавлении в корзину товара методом add() с параметром веса (см. ниже описание этого метода) добавляйте переданный в метод вес к этой переменной.
Если вызывается уже существующий в классе метод add(), не содержащий параметр веса (weight), эта переменная не должна изменяться.
Метод add с дополнительным параметром веса (weight):
public void add(String name, int price, int count, double weight)
Метод должен переиспользовать существующие методы добавления и добавлять указанный в их параметрах вес товаров к общему весу корзины.
Метод, который будет возвращать значение массы всех товаров в корзине:
public double getTotalWeight()
public class Basket {private static int count = 0;

private double totalWeight = 0;
private String items = "";
private int totalPrice = 0;
private int limit;

public Basket() {
increaseCount(1);
items = "Список товаров:";
this.limit = 1000000;
}

public Basket(int limit) {
this();
this.limit = limit;
}

public Basket(String items, int totalPrice) {
this();
this.items = this.items + items;
this.totalPrice = totalPrice;
}

public static int getCount() {
return count;
}

public static void increaseCount(int count) {
Basket.count = Basket.count + count;
}

public void add(String name, int price, int i) {
add ( name, price, 1);
}



public void add(String name, int price, int count, double weight) {
boolean error = false;
if (contains(name)) {
error = true;
}

if (totalPrice + count * price >= limit) {
error = true;
}

if (error) {
System.out.println("Error occured :(");
return;
}

items = items + "\n" + name + " - " +
count + " шт. - " + price;
totalPrice = totalPrice + count * price;
}

public void clear() {
items = "";
totalPrice = 0;
}

public int getTotalPrice() {
return totalPrice;
}

public boolean contains(String name) {
return items.contains(name);
}

public void print(String title) {
System.out.println(title);
if (items.isEmpty()) {
System.out.println("Корзина пуста");
} else {
System.out.println(items);
}
}
}
и 2 код если надо
public class Main {

public static void main(String[] args) {
Basket basket = new Basket();
basket.add("Milk", 40, 1);
basket.print("Milk");

}
}
Голосование за лучший ответ
Malenkiuprinter Kpachemokoc Мастер (1716) 1 год назад
Чтобы реализовать требуемое поведение класса Basket, вам необходимо внести следующие изменения:
Добавьте начальное значение 0 для переменной totalWeight в конструкторе по умолчанию и в конструкторе с параметром limit:
 public Basket() { 
increaseCount(1);
items = "Список товаров:";
this.limit = 1000000;
this.totalWeight = 0; // Добавлено начальное значение
}

public Basket(int limit) {
this();
this.limit = limit;
this.totalWeight = 0; // Добавлено начальное значение
}
В методе add(String name, int price, int count, double weight) добавьте код для увеличения значения totalWeight:
 public void add(String name, int price, int count, double weight) { 
boolean error = false;
if (contains(name)) {
error = true;
}

if (totalPrice + count * price >= limit) {
error = true;
}

if (error) {
System.out.println("Error occured :(");
return;
}

items = items + "\n" + name + " - " +
count + " шт. - " + price;
totalPrice = totalPrice + count * price;
totalWeight = totalWeight + weight; // Добавлен код для увеличения значения totalWeight
}
Добавьте метод getTotalWeight(), который будет возвращать значение массы всех товаров в корзине:
 public double getTotalWeight() { 
return totalWeight;
}
После внесения этих изменений ваш класс Basket должен выглядеть следующим образом:
Malenkiuprinter KpachemokocМастер (1716) 1 год назад
а дальше я не могу написать, потому что мыло govno и слишком большой текст
Malenkiuprinter Kpachemokoc Мастер (1716) public class Basket { private static int count = 0; private double totalWeight = 0; private String items = ""; private int totalPrice = 0; private int limit; public Basket() { increaseCount(1); items = "Список товаров:"; this.limit = 1000000; this.totalWeight = 0; // Добавлено начальное значение } public Basket(int limit) { this(); this.limit = limit; this.totalWeight = 0; // Добавлено начальное значение } public Basket(String items, int totalPrice) { this(); this.items = this.items + items; this.totalPrice = totalPrice; } public static int getCount() { return count; }
Na Rek Ученик (104) 1 месяц назад
Привет, ты окончил обучение? стоило оно того?
Похожие вопросы