Crédito
package ShoppingApplication.methods;
public class Credit {
public double limit;
public Credit(double limit) {
this.limit = limit;
}
public double getLimit() {
return limit;
}
public void setLimit(double limit) {
this.limit = limit;
}
}
Compras
package ShoppingApplication.methods;
public class Purchases implements Comparable <Purchases> {
private String product;
private double price;
public Purchases(String product, double price) {
this.product = product;
this.price = price;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int compareTo(Purchases other){
return Double.compare(this.price, other.price);
}
@Override
public String toString() {
return "Produto:" + this.getProduct() + "\nPreço:" + this.getPrice();
}
}
Main
import ShoppingApplication.methods.Credit;
import ShoppingApplication.methods.Purchases;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = getScanner();
double totalSpent = 0;
List <Purchases> shoppingList = new ArrayList<>();
System.out.println("Digite o limite do cartão:");
var cardLimit = new Credit(scanner.nextDouble());
scanner.nextLine();
while (true){
System.out.println("Digite o produto da compra:");
String product = scanner.nextLine();
System.out.println(product);
System.out.println("Qual o valor do produto?");
double price = scanner.nextDouble();
if (price > cardLimit.getLimit()){
System.out.println("O valor da compra ultrapassa o limite do cartão");
break;
}else {
double newLimit = cardLimit.getLimit() - price;
cardLimit.setLimit(newLimit);
totalSpent += price;
System.out.println("Compra realizada! Limite restante: R$" + cardLimit.getLimit());
}
var shopping = new Purchases(product, price);
shoppingList.add(shopping);
System.out.println("Digite 1 para continuar e 0 para encerrar.");
int purchase = scanner.nextInt();
scanner.nextLine();
System.out.println(purchase);
if (purchase == 0){
System.out.println("Compra encerrada");
break;
} else if (purchase == 1) {
System.out.println("Continuar compras");
} else {
System.out.println("Informação digitada inválida!");
}
}
Collections.sort(shoppingList);
System.out.println("\n===== RESUMO DAS COMPRAS =====");
for (Purchases item: shoppingList){
System.out.println(item);
}
System.out.println("\n======================");
System.out.println("\nTotal gasto: R$" + totalSpent);
System.out.println("Limite restante: R$" + cardLimit.getLimit());
}
private static Scanner getScanner() {
return new Scanner(System.in);
}
}