Microssistema de controle de compras
Publicado por Alex Inocencio Santos (última atualização em 22/04/2015)
[ Hits: 5.946 ]
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
Escrevendo num arquivo em java
Ordenação crescente e decrescente
Classe java para converter jTableModel em HTML / Open Office/Libre Office/Excel (todos)
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









