Microssistema de controle de compras
Publicado por Alex Inocencio Santos (última atualização em 22/04/2015)
[ Hits: 5.796 ]
Este script é um pequeno sistema para gerência de compras, foi feito como trabalho final da disciplina de Java Orientado ao Objeto, apresenta ArrayList, encapsulamento, herança e muitos outros métodos da orientação ao objeto.
Abaixo segue o código fonte da classe principal.
package trabalho2;
import javax.swing.*;
import java.awt.Container;
import java.util.ArrayList;
public class Principal {
public static void main(String[] args) {
Produto produto = new Produto();
Fornecedor fornecedor = new Fornecedor();
Orcamento orcamento = new Orcamento();
Controle controle = new Controle();
ArrayList<Orcamento>orcamentos=new ArrayList<>();
int op=0;
int op2=0;
int op3=0;
int op4=0;
do{ try{
op = Integer.parseInt(JOptionPane.showInputDialog(null,"\n 1-Produto\n\n2-Fornecedor\n\n3-Orcamento\n\n0-Sair","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
switch (op){
case 1:{
/*Gereciamento de produtos:Cadastro, Altereção e exclusão;*/
do{ try{
op2 = Integer.parseInt(JOptionPane.showInputDialog(null,"\n\n 1-Cadastro\n\n2-Impressão\n\n3-Aletar dados\n\n4-Remover Produtos\n\n0-Voltar","\t\t XGH",JOptionPane.PLAIN_MESSAGE));
switch(op2){
case 1:{
boolean x = true;
produto = new Produto();
produto.setNome(JOptionPane.showInputDialog(null,"Nome", "Produto", JOptionPane.PLAIN_MESSAGE) );
produto.setDescricao(JOptionPane.showInputDialog(null,"Descrição", "Produto", JOptionPane.PLAIN_MESSAGE));
while(x){
try{
produto.setValor(Double.parseDouble((JOptionPane.showInputDialog(null,"Valor", "Produto", JOptionPane.PLAIN_MESSAGE))));
x=false;
}catch(NumberFormatException e){
JOptionPane.showMessageDialog(null, "Erro!!! Valor e um Campo numerico","\t\t\tXGH",JOptionPane.ERROR_MESSAGE);
}
}
controle.insere(produto);
break;
}
case 2:{
if(produto.produtos.size()<=0){
JOptionPane.showMessageDialog(null,"Nenhum Produto Cadastrado!!","\t\tXGH",JOptionPane.ERROR_MESSAGE);
}else
produto.mostrarArray(produto);
break;
}
case 3:{
do{
if (produto.produtos.size()<=0){
JOptionPane.showMessageDialog(null, "Não Ha nenhum registro de Produtos\nCadastre pelo menos um produto","\t\tXGH",JOptionPane.INFORMATION_MESSAGE);
}else{
int index=0;
op3 = Integer.parseInt(JOptionPane.showInputDialog(null," \n1-Nome\n\n\t2-Descrição\n\n\t0-Voltar","Alteração de dados",JOptionPane.PLAIN_MESSAGE));
if(op3 == 1){
index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Alteração de dados",JOptionPane.PLAIN_MESSAGE));
Produto.produtos.get(index).setNome(JOptionPane.showInputDialog(null,"Nome","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
}else if (op3==2){
index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Alteração de dados",JOptionPane.PLAIN_MESSAGE));
Produto.produtos.get(index).setDescricao(JOptionPane.showInputDialog(null,"Descricao","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
}
}
}while(op3!=0);
break;
}
case 4 :{
try{
int continuar;
int index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Exclusão de produtos",JOptionPane.PLAIN_MESSAGE));
continuar = JOptionPane.showConfirmDialog(null, "Voce deseja excluir esse Produto?");
if (continuar==0){
controle.remove(produto, index);
}
}catch(IndexOutOfBoundsException e){
JOptionPane.showMessageDialog(null,"Posição invalida ", "\t\tXGH",JOptionPane.ERROR_MESSAGE);
}
break;
}
}
}catch(NumberFormatException e){};
}while(op2!=0);
break;
}
case 2:{
/*Gerenciamento de Fornecedores:Cadastro Alteração e exclusao*/
boolean x =true;
do{ try{
op4=Integer.parseInt(JOptionPane.showInputDialog(null,"\n\n 1-Cadastro\n\n2-Impressão\n\n3-alteração\n\n4-Remoção\n\n0-voltar","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
switch(op4){
case 1:{
Endereco endAux= new Endereco();
fornecedor =new Fornecedor();
fornecedor.setNome(JOptionPane.showInputDialog(null,"Nome","Fornecedor",JOptionPane.PLAIN_MESSAGE));
fornecedor.setCnpj(JOptionPane.showInputDialog(null,"Cnpj","Fornecedor",JOptionPane.PLAIN_MESSAGE));
endAux.cidade=JOptionPane.showInputDialog(null,"cidade","Fornecedor",JOptionPane.PLAIN_MESSAGE);
endAux.bairro=JOptionPane.showInputDialog(null,"bairro","Fornecedor",JOptionPane.PLAIN_MESSAGE);
endAux.rua=JOptionPane.showInputDialog(null,"rua","Fornecedor",JOptionPane.PLAIN_MESSAGE);
while(x){
try{
endAux.numero=Integer.parseInt(JOptionPane.showInputDialog(null,"numero","Fornecedor",JOptionPane.PLAIN_MESSAGE));
x=false;
}catch(NumberFormatException e){JOptionPane.showMessageDialog(null, "Erro!!! Numero e um Campo numerico","\t\t\tXGH",JOptionPane.ERROR_MESSAGE);};
}
fornecedor.setEndereco(endAux);
controle.insere(fornecedor);
break;
}
case 2:{
if(fornecedor.fornecedores.size()<=0){
JOptionPane.showMessageDialog(null, "Nenhum Fornecedor Cadastrado!!","\t\t\tXGH",JOptionPane.ERROR_MESSAGE);
}else
fornecedor.mostrarArray(fornecedor);
break;
}
case 3:{
int op5 =0;
do{
op5 =Integer.parseInt(JOptionPane.showInputDialog(null,"\n\n 1-Nome\n\n2-Cnpj\n\n3-Endereco\n\n0-voltar","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
switch(op5){
case 1:{
try{
int index=0;
index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Alteração de dados",JOptionPane.PLAIN_MESSAGE));
Fornecedor.fornecedores.get(index).setNome(JOptionPane.showInputDialog(null,"Nome","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
}catch(IndexOutOfBoundsException e){JOptionPane.showMessageDialog(null,"Posição invalida ", "\t\tXGH",JOptionPane.ERROR_MESSAGE);}
break;
}
case 2:{
try{
int index=0;
index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Alteração de dados",JOptionPane.PLAIN_MESSAGE));
Fornecedor.fornecedores.get(index).setCnpj(JOptionPane.showInputDialog(null,"Cnpj","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
}catch(IndexOutOfBoundsException e){JOptionPane.showMessageDialog(null,"Posição invalida ", "\t\tXGH",JOptionPane.ERROR_MESSAGE);}
break;
}
case 3:{
int index = 0;
Endereco endTmp = new Endereco();
int op6=0;
index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Alteração de dados",JOptionPane.PLAIN_MESSAGE));
do{
try{
op6=Integer.parseInt(JOptionPane.showInputDialog(null,"\n\n 1-Cidade\n\n2-Bairro\n\n4-Rua\n\n-5Numero\n\n0-voltar","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
switch(op6){
case 1 : endTmp.cidade=JOptionPane.showInputDialog(null,"cidade","Fornecedor",JOptionPane.PLAIN_MESSAGE);
case 2 : endTmp.bairro=JOptionPane.showInputDialog(null,"bairro","Fornecedor",JOptionPane.PLAIN_MESSAGE);
case 3 : endTmp.rua=JOptionPane.showInputDialog(null,"rua","Fornecedor",JOptionPane.PLAIN_MESSAGE);
case 4 : endTmp.numero=Integer.parseInt(JOptionPane.showInputDialog(null,"numero","Fornecedor",JOptionPane.PLAIN_MESSAGE));
fornecedor.setEndereco(endTmp);
controle.atualiza(fornecedor, index);
break;
}
}catch(NumberFormatException e){};
}while(op6!=0);
}
}
}while(op5!=0);
break;
}
case 4:{
int continuar;
int index = Integer.parseInt(JOptionPane.showInputDialog(null,"posiçao desejada","Exclusão de Fortnecedores",JOptionPane.PLAIN_MESSAGE));
continuar = JOptionPane.showConfirmDialog(null, "Voce deseja excluir esse Fornecedor?");
if (continuar==0){
controle.remove(fornecedor, index);
break;
}
}
}
}catch(NumberFormatException e){};
}while(op4!=0);
break;
}
case 3:{
int op7=0;
int index=0;
boolean x=true;
if((produto.produtos.size()<=0)||(fornecedor.fornecedores.size()<=0)){
JOptionPane.showMessageDialog(null,"Não há produtos ou Fornecedores cadastrados","\t\tXGH",JOptionPane.WARNING_MESSAGE);
}else{
do{
op7=Integer.parseInt(JOptionPane.showInputDialog(null,"\n1-Abir orcamneto\n\n2-imprimir orçamentos\n\n0-Voltar","\t\tXGH",JOptionPane.PLAIN_MESSAGE));
switch(op7){
case 1:{
String pro=" ";
String forn=" ";
for(int i =0; i< Produto.produtos.size();i++){
pro += i+"-"+Produto.produtos.get(i).getNome()+"\n------------------------\n";
}
while(x){
try{
index=Integer.parseInt(JOptionPane.showInputDialog(null,"Informe um produto para Fazer o orçamento\n"+pro,"\t\t XGH ",JOptionPane.PLAIN_MESSAGE));
orcamento.adicionarProduto(produto.produtos.get(index));
}catch(IndexOutOfBoundsException e){JOptionPane.showMessageDialog(null,"Posição invalida ", "\t\tXGH",JOptionPane.ERROR_MESSAGE);}
x=false;
}
orcamento.setQtdTotal(Integer.parseInt(JOptionPane.showInputDialog(null,"Quantas unidades deste produto vc deseja comprar?","\t\tXGH",JOptionPane.PLAIN_MESSAGE)));
for(int i =0; i< Fornecedor.fornecedores.size();i++){
forn += i+"-"+Fornecedor.fornecedores.get(i).getNome()+"\n------------------------\n";
}
index=Integer.parseInt(JOptionPane.showInputDialog(null,"Informe um Forecedor para Fazer o orçamento\n"+forn,"\t\t XGH ",JOptionPane.PLAIN_MESSAGE));
orcamento.adicionarFornecedor(fornecedor.fornecedores.get(index));
double valor = produto.produtos.get(index).getPreco();
int qtd = orcamento.getQtdTotal();
double result = valor*qtd;
orcamento.setValorFinal(result);
orcamentos.add(orcamento);
break;
}
case 2:{
String pro =" ";
String forn="";
String vtotal="";
String qtotal="";
for(int i=0;i<produto.produtos.size();i++){
pro+=Produto.produtos.get(i).getNome()+"\n";
}
for(int i=0;i<fornecedor.fornecedores.size();i++){
forn+=Fornecedor.fornecedores.get(i).getNome()+"\n";
}
for(int i=0;i<orcamentos.size();i++){
vtotal=String.valueOf(orcamento.getValorFinal())+"\n";
qtotal=String.valueOf(orcamento.getQtdTotal()+"\n");
}
JOptionPane.showMessageDialog(null,"Produto:"+pro+"\nFornecedor:"+forn+"\nQuantidade Total:"+qtotal+"\nValor Total: "+vtotal+"\n----------------","\t\tXHG",JOptionPane.PLAIN_MESSAGE);
}
}
}while (op7!=0);
}
break;
}
}
}catch(NumberFormatException e){};
}while (op !=0);
}
}
Ordenação crescente e decrescente
Classe java para converter jTableModel em HTML / Open Office/Libre Office/Excel (todos)
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)









