Microssistema de controle de compras
Publicado por Alex Inocencio Santos (última atualização em 22/04/2015)
[ Hits: 5.508 ]
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); } }
Escrevendo num arquivo em java
ImagemFacil 1.0, um editor de imagens recheado de recursos
Ler arquivo e remover Strings duplicadas
Copia de um arquivo para outro
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Acessar ftp por nome ao invés de ip [RESOLVIDO] (5)
Estou com sede em aprender sobre o nosso querido Linux. (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta