Faça um programa em Java para manter um cadastro de produtos e suas
respectivas vendas. O aplicativo deve apresentar também alguns relatórios
de controle para o usuário. Algumas regras sobre o software:
Um produto deve ter os seguintes atributos: código, nome, valor e
quantidade em estoque.
Uma venda deve ter os seguintes atributos: data da venda, o produto
vendido e a quantidade vendida.
As vendas são feitas sempre para um único produto.
Para realizar a venda, sempre verifique se o produto a ser vendido existe
em estoque.
A estrutura mínima de menus/funcionalidades que o aplicativo deve ter é a
seguinte:
1 – Incluir produto
2 – Consultar produto
3 – Listagem de produtos
4 – Vendas por período – detalhado
5 – Realizar venda
0 – Sair
Não poste só o enunciado, mostre o que tentou e seja específico onde está a sua dificuldade. Lembrando que o pessoal aqui não é muito fã de pegar um enunciado completo e fazer pra você.
o exercício diz pra criar uma classe Produto, você já criou?
se sim, criou todos os atributos solicitados (código, nome, valor e qtde estoque)?
criou a classe Venda, conforme solicitado?
se sim, criou com os atributos (data, produto, quantidade)?
Se ainda não conclui essas etapas, recomendo que comece por aí. Se tem dificuldade em alguma etapa em específico, diga qual é.
Daí em diante, é criar o menu (você já fez boa parte) e validar as interações (ex: verifica se a quantidade solicitada do produto está disponível).
Uma coisa que visa facilitar a sua vida é separa seu código em partes. Em vez de um monte de código no main(), crie métodos para cada funcionalidade. Isso não apenas é uma boa prática, como deixa seu código mais organizado. Por exemplo, você pode criar um método para exibir o menu, um para cada opção de menu, e outro para ler a entrada do usuário (usando somente nextLine, e convertendo para um tipo numérico somente caso necessário). Sua classe principal ficaria algo como:
public class Loja{
Scanner in = new Scanner(System.in);
List<Produto> produtos = new ArrayList<>();
public void exibirMenu(){
System.out.println("\n**\nMENU\n**\n");
System.out.println("1 - Incluir produto");
System.out.println("2 - Consultar produto");
System.out.println("3 - Listagem de produtos");
System.out.println("4 - Vendas pro período - detalhado");
System.out.println("5 - Realizar venda");
System.out.println("0 - Sair");
}
String lerEntradaDoUsuario(String mensagem){
System.out.print(mensagem);
String algoDigitado = in.nextLine();
return algoDigitado;
}
incluirProduto(){
//codigo aqui
}
consultarProduto(){
//codigo aqui
}
listagemProduto(){
//codigo aqui
}
// outros metodos aqui, para venda, relatorio, etc
void trabalhar(){
int opcao = -1;
do{
exibirMenu();
opcao = Integer.parseInt(lerEntradaDoUsuario("Opção: "));
switch (opcao){
case 1: incluirProduto(); break;
case 2: consultarProduto(); break;
case 3: listagemProduto(); break;
default: System.out.println("Opção invalida"); break;
}
}while( opcao != 0);
}
main(){
Loja loja = new Loja();
loja.trabalhar();
}
}
Por fim, quando for postar código, use a formatação, pois facilita a visualização:
Muito Obrigada pela ajuda, eu tenho mais uma duvida, desculpe rsrs, é que quando o usuário comprar um produto eu vou ter que remove-lo, eu gostaria de saber se devo usar o métodos Remove da Collection? se sim, em como devo implementa-lo! Obrigada XD
O enunciado não fala nada sobre remoção, então não vejo necessidade de usar o remove do list/arraylist.
Se o que você diz é reduzir o estoque, creio que a ideia seja subtrair o que for comprado (a quantidade na venda) do estoque (a quantidade em estoque no produto). Crie no Produto um método que recebe a quantidade da venda e subtrai do saldo atual do produto. Não há necessidade de remover o produto nesse caso.
De qualquer forma, para remover um produto da lista, o método remove() do arraylist precisa do índice a ser removido ou do objeto a ser removido, então você pode criar um método de busca (com for) para achar o elemento e retorná-lo (ou retornar seu índice) , e usar essa informação pra exclui-lo com remove().
Desculpa por isso, é que sou muito leiga para a programação ainda… eu gostaria de saber de como fazer essa sua sugestão, quais comandos devo invocar? “Crie no Produto um método que recebe a quantidade da venda e subtrai do saldo atual do produto”
Uma dica boa é fazer as coisas por partes. Se o exervicio pede 10 coisas, faça a primeira e veja se funciona. Pode até postar aqui pra galera dá uma olhada. Depois vai para o próximo item.
O importante é entender o pq das coisas funcionarem.