Microssistema de controle de compras
Publicado por Alex Inocencio Santos (última atualização em 22/04/2015)
[ Hits: 5.651 ]
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); } }
ImagemFacil 1.0, um editor de imagens recheado de recursos
Copia de um arquivo para outro
Escrevendo num arquivo em java
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
Java é uma linguagem de brinquedo? (1)
Linux não desliga a tela da TV nunca (4)
Mudar ícone do favorito "encerrar sessão" do Debian 12.10, c... (2)