Skip to content

Instantly share code, notes, and snippets.

@Gabrielgtt
Created October 31, 2017 09:44
Show Gist options
  • Save Gabrielgtt/54a1931cd47ba4dd102a42124f0fcf6b to your computer and use it in GitHub Desktop.
Save Gabrielgtt/54a1931cd47ba4dd102a42124f0fcf6b to your computer and use it in GitHub Desktop.
/**
* Conta de um aluno em uma cantina.
*
* @author Gabriel Alves Tavares
*/
import java.util.ArrayList;
public class ContaCantina {
private String nome;
private int divida;
private int qtdItensComprados;
private ArrayList <String> descricaoItens;
/**
* Constrói a conta a partir de seu nome. Toda conta começa com sua dívida zerada
*
* @param nomeDaCantina: nome da cantina
*/
public ContaCantina(String nomeDaCantina){
this.nome = nomeDaCantina;
this.divida = 0;
this.qtdItensComprados = 0;
this.descricaoItens = new ArrayList <String>();
}
/**
* Cadastra um lanche comprado pelo aluno
*
* @param qtdItens: quantidade de itens comprados
* @param valorCentavos: preço do lanche
* @param detalhes: descrição do lanche que é armazenada n início de um ArrayList
*/
public void cadastraLanche(int qtdItens, int valorCentavos, String detalhes){
this.divida += valorCentavos;
this.qtdItensComprados += qtdItens;
this.descricaoItens.add(0, detalhes);
}
/**
* Cadastra um lanche comprado pelo aluno sem detalhes
*
* @param qtdItens: quantidade de itens comprados
* @param valorCentavos: preço do lanche
*/
public void cadastraLanche(int qtdItens, int valorCentavos){
this.divida += valorCentavos;
this.qtdItensComprados += qtdItens;
}
/**
* Lista os 5 últimos detalhes de lanches
*
* @return uma string os 5 últimos detalhes de lanches, concatenados por vírgulas
*/
public String listarDetalhes(){
String listaDetalhes = "";
for (int i=0; i<descricaoItens.size() && i<5; i++){
listaDetalhes += descricaoItens.get(i);
// Inserindo vírgulas entre as descrições
if (i != 4 && i != descricaoItens.size()-1){
listaDetalhes += ", ";
}
}
return listaDetalhes;
}
/**
* Diminui a dívida do aluno
*
* @param valorCentavos: valor diminuido na dívida
*/
public void pagaConta(int valorCentavos){
this.divida -= valorCentavos;
}
/**
* Representação em String da contaCantina
*
* @return uma string com o nome da cantina, qtds de itens comprado e a dívida na cantina
*/
public String toString(){
return String.format("%s %d %d", this.nome, this.qtdItensComprados, this.divida);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment