Microssistema de controle de compras
Publicado por Alex Inocencio Santos (última atualização em 22/04/2015)
[ Hits: 5.829 ]
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
Classe java para converter jTableModel em HTML / Open Office/Libre Office/Excel (todos)
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









