Aplicação de Compras
Consegui colocar na lógica de adição de produto, para caso o limite seja 0, o loop que pede produto é pare, e mostre as compras. Já que sem limite pode mais adicionar produtos:
package ProgramaCompras;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class Compras implements Comparable<Compras>{
Double limite;
String descricao;
Double valor;
int opcao;
String valorString = "";
public String getDescricao() {
return descricao;
}
public Double getValor() {
return valor;
}
public Double getLimite() {
return limite;
}
public Compras(String descricao, Double valor) {
this.descricao = descricao;
this.valor = valor;
}
public Compras() {
}
Scanner sc = new Scanner(System.in);
ArrayList<Compras> listaCompras = new ArrayList<>();
public void capturarLimite(){
System.out.println("Digite o limite do cartão de crédito: ");
limite = sc.nextDouble();
sc.nextLine();
System.out.println("Limite do cartão: " + limite);
}
public void telaCompra(){
capturarLimite();
do {
System.out.println("Digite a descrição da compra: ");
descricao = sc.nextLine();
System.out.println("Digite o valor da compra: ");
valor = sc.nextDouble();
sc.nextLine();
if(limite<valor){
System.out.println("Limite Insuficiente. Não foi possível adicionar o produto.\n");
break;
}
else {
limite-=valor;
valorString = String.valueOf(valor);
listaCompras.add(new Compras(descricao, valor));
System.out.println("Compra realizada.");
if(limite==0.0){
System.out.println("Limite Zerado!!");
break;
}
System.out.println("Limite disponível: " + limite);
}
Collections.sort(listaCompras);
System.out.println("Digite 0 para sair ou 1 para continuar.");
opcao = sc.nextInt();
sc.nextLine();
} while(opcao==1);
mostrarCompras();
}
public void mostrarCompras(){
System.out.println("************************");
System.out.println("COMPRAS REALIZADAS: ");
System.out.println();
for (Compras mostragem : listaCompras){
System.out.println(mostragem);
}
System.out.println();
System.out.println("************************");
System.out.println();
System.out.println("Limite Disponível no cartão: " + limite);
}
@Override
public int compareTo(Compras o) {
return this.getValor().compareTo(o.getValor());
}
@Override
public String toString() {
return getDescricao() + " - R$" + getValor();
}
}
Consegui utilizar nesse programa diversos conceitos aprendidos no curso, como a aplicação da orientação a objetos, listas, foreach, ordenação de dados, e loops.