Microssistema de controle de compras
Publicado por Alex Inocencio Santos (última atualização em 22/04/2015)
[ Hits: 5.705 ]
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); } }
Copia de um arquivo para outro
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (14)
Boot do PosRog so funciona em notebook (1)