Sistema Simples De Cadastro De Produtos

Sistema De Cadastro De Produtos Bomboniere XYZSistema simples de cadastro de produtos para uma Bomboniere com o nome fictício de XYZ da aula de POO – Programação Orientada a Objetos. Vou utilizar 3 classes para esse sistema simples. A primeira classe e a que contem o método principal por comodidade. Na verdade são 4 classes já que tem uma classe chamada “Itens” dentro da classe Produtos.

ATENÇÃO: Não faço uso de banco de dados porque a intenção aqui é só abordar a orientação a objetos o mais simples possível. Não estou usando também nem imagens nem GUI, só o básico mesmo.

1ª Classe

package projeto;

import java.awt.Toolkit;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import javax.swing.JOptionPane;

//Curso Desenvolvimento De Sistema Java
//Aula Java POO - Programação Orientada a Objetos
//Sistema De Cadastro De Produtos Bomboniere XYZ
public class CadastrarProdutos {

// Cadastro De Produtos: Bomboniere
public static void main(String[] args) {

// Pegando a data atual do sistema
// criamos um locale para o Brasil
Locale localBR = new Locale("pt", "BR");

// vamos obter a data e hora atual
Calendar agora = Calendar.getInstance();

// vamos formatar de acordo com o formato de
// data longa no português brasileiro
DateFormat formatoDeData = DateFormat.getDateInstance(DateFormat.FULL,
localBR);

// vamos exibir o resultado
// Pegas o país
// jlbPais.setText(localeBR.getDisplayCountry());
// Pegas a data
// jlbData.setText(formatoDeData.format(agora.getTime()));
// ********************************************************************

// Declaraçao da variavel menu do tipo integer
int menu = 0;

// Instanciando um novo objeto
// da classe produtos
Produtos novoItem = new Produtos();

do {
menu = Integer.parseInt(JOptionPane.showInputDialog(null,
" Sistema De Cadastro De Produtos: Bomboniere XYZ   \n\n"
+ formatoDeData.format(agora.getTime())
+ "\n\nQual item deseja escolher? "
+ "\n\n1 - Cadastrar Produtos "
+ "\n 2 - Exibir Produtos "
+ "\n 3 - Imprimir Produtos " + "\n 4 - Sair"));

if (menu == 1) {

try {
String codigo = JOptionPane.showInputDialog(null,
" Digite o código do produto: ");
String descricao = JOptionPane.showInputDialog(null,
" Digite o nome do produto: ").toUpperCase();
Double preco = Double.parseDouble(JOptionPane
.showInputDialog(null,
" Digite o preço do produto: "));
// Pega a data do do sistema
String data = JOptionPane.showInputDialog(null,
" Digite a data do cadastro: ",
new SimpleDateFormat("dd/MM/yyyy")
.format(new Date()));

// chamando o metodo
novoItem.cadastrarProdutos(codigo, descricao, preco, data);

} catch (Exception e) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null,
"Um dos dados está incorreto!",
"Cadastro De Produtos: Bomboniere XYZ",
JOptionPane.ERROR_MESSAGE);
}

} else if (menu == 2) {
// chamando o metodo mostrar Produtos
JOptionPane.showMessageDialog(
null,
"Lista do(s) produto(s) cadastrado(s): "
+ new SimpleDateFormat("dd/MM/yyyy")
.format(new Date()) + " \n"
+ novoItem.mostrarProdutos(),
" Cadastro De Produtos: Bomboniere XYZ",
JOptionPane.INFORMATION_MESSAGE);

} else if (menu == 3) {
int imprimir = JOptionPane.showConfirmDialog(null,
"Deseja imprimir produtos cadastrado?",
"Bomboniere XYZ", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);

if (imprimir == 0) {

// Esse metodo ele apenas salva o arquivo Bomboniere XYZ.txt
// para depois voce imprimir se assim quiser, se quiser usar
// esse comente o metodo novoItem.imprimir(); abaixo e
// descomente esse novoItem.imprimirDados();

// Esse é o metodo que chama a impresora para imprimir os
// dados cadastrados se houver dados cadastrados
// ATENÇAO: ELE IMPRIMI DIRETO SE TIVER IMPRESSORA INSTALADA
novoItem.imprimir();
}

} else if (menu == 4) {
int sair = JOptionPane.showConfirmDialog(null,
"Deseja realmente sair do programa?", "Bomboniere XYZ",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);

if (sair == JOptionPane.YES_OPTION) {

System.exit(0);
}

} else if ((menu > 4) || (menu < 1)) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null,
"Por favor escolha uma opção correta \nentre 1 e 4!",
"Cadastro De Produtos: Bomboniere XYZ",
JOptionPane.ERROR_MESSAGE);
}

} while (menu != 0);
System.exit(0);
}

}

2ª Classe

package projeto;

import java.awt.Desktop;
import java.awt.Toolkit;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;

//Cadastro De Produtos: Bomboniere XYZ
public class Produtos {

String dados = "";

ArrayList<Itens> Produtos = new ArrayList<Itens>();

// Metodo para cadastrar os produtos
public void cadastrarProdutos(String codigo, String descricao,
double preco, String data) {

Itens novoProduto = new Itens();
novoProduto.codigo = codigo;
novoProduto.descricao = descricao;
novoProduto.preco = preco;
novoProduto.data = data;
Produtos.add(novoProduto);

JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso.",
"Bomboniere XYZ", JOptionPane.INFORMATION_MESSAGE);
}// Fim do metodo para cadastrar os produtos

// Metodo para mostrar os produtos
public String mostrarProdutos() {
// String dados = "";
for (Itens produtos : Produtos) {
dados += " Código do produto: " + produtos.codigo
+ " Descrição do produto: " + produtos.descricao
+ " Preço do produto: R$: " + produtos.preco
+ " Data do cadastro: " + produtos.data + "\n";
}
return dados;
}// Fim do metodo para mostrar os produtos

// Esse metodo ele apenas salva o arquivo Bomboniere XYZ.txt para depois
// voce imprimir se assim quiser
public void imprimirDados() {

try {
// Abre arquivo para escrita
BufferedWriter texto = new BufferedWriter(new FileWriter(
"Bomboniere XYZ.txt", true));
// passa para a proxima linha
texto.newLine();
// escreve o texto
texto.write("Bomboniere XYZ - Cadastro de produtos: ");
// passa para a proxima linha
texto.newLine();
// escreve o texto
texto.write("===============================================");
// passa para a proxima linha
texto.newLine();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
// escreve a data do sistema
texto.write(sdf.format(new Date()));
// passa para a proxima linha
texto.newLine();
// escreve o texto
// texto.write(" ");
texto.newLine();
// escreve o texto da textarea com quebra de linha no txt
// texto.write(mostrarProdutos().replaceAll("\n", "\r\n"));
for (Itens produtos : Produtos) {
texto.write(("Código do produto: " + produtos.codigo
+ " Descrição do produto: " + produtos.descricao
+ " Preço do produto: R$: " + produtos.preco
+ " Data do cadastro: " + produtos.data + "\n")
.replaceAll("\n", "\r\n"));
}
// passa para a proxima linha
texto.newLine();
// Joga o conteúdo da memória
texto.flush();
// Fecha o arquivo e libera-o
texto.close();
JOptionPane.showMessageDialog(null, "Produto salvo com sucesso.",
"Bomboniere XYZ", JOptionPane.INFORMATION_MESSAGE);
} // fim try
catch (Exception ex) {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "Erro ao salvar o documento!",
"Cadastro De Produtos: Bomboniere XYZ",
JOptionPane.ERROR_MESSAGE);

} // fim catch

}

// Esse é o método que chama a impressora para imprimir os
// dados cadastrados se houver dados cadastrados
// ATENÇÃO: ELE IMPRIMI DIRETO SE TIVER IMPRESSORA INSTALADA
public void imprimir() {

if (!Produtos.isEmpty()) {
// File arquivo = new
// File("C:/users/aluno/Desktop/Bomboniere.txt");
File arquivo = new File(System.getProperty("user.dir")
+ "Bomboniere XYZ.txt");
PrintWriter imprimir = null;

try {

imprimir = new PrintWriter(arquivo);
imprimir.println("Bomboniere XYZ - Cadastro de produtos: ");
imprimir.println("============================================");
imprimir.println(" ");
SimpleDateFormat sdf = new SimpleDateFormat(
"dd/MM/yyyy HH:mm:ss");
// escreve a data do sistema
imprimir.println(sdf.format(new Date()));
imprimir.println(" ");

for (Itens produtos : Produtos) {
imprimir.println("Código do produto: " + produtos.codigo
+ " Descrição do produto: " + produtos.descricao
+ " Preço do produto: R$: " + produtos.preco
+ " Data do cadastro: " + produtos.data);
}
// imprimir arquivo txt
Desktop.getDesktop().print(arquivo);

} catch (Exception e) {
// tratamento de erros aqui
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null,
"Erro ao imprimir o documento!",
"Cadastro De Produtos: Bomboniere XYZ",
JOptionPane.ERROR_MESSAGE);
} finally {

if (imprimir != null) {
// Fecha o arquivo txt
imprimir.close();
// Deleta o arquivo criado depois de fechar a aplicação
arquivo.deleteOnExit();
}
}

} else {
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "Não há produtos cadastrados!",
"Cadastro De Produtos: Bomboniere XYZ",
JOptionPane.ERROR_MESSAGE);
}

}

class Itens {
private String codigo;
private String descricao;
private double preco;
private String data;
}
}

3ª Classe

package projeto;

//Classe com os gets e sets
public class Categorias {

private String _nome;
private int _codigo;
private double _peso;
private double _valor;

void setNome(String nome) {
this._nome = nome;
}

String getNome() {
return _nome;
}

void setCodigo(int codigo) {
this._codigo = codigo;
}

int getCodigo() {
return _codigo;
}

void setPeso(double peso) {
this._peso = peso;
}

double getPeso() {
return _peso;
}

public void setValor(double valor) {
this._valor = valor;
}

public double getValor() {
return _valor;
}

}

Aqui vai o link para baixar o executável Sistema De Cadastro De Produtos Bomboniere XYZ.jar

http://www.4shared.com/file/OM3YBW1r/Sistema_De_Cadastro_De_Produto.html

bom é isso, melhoras são sempre bem vindas.

About these ads

4 respostas em “Sistema Simples De Cadastro De Produtos

  1. Muito bom esse programa; dá pra implementar colocando Cadastrar Funcionário, Cliente e a venda do produto, mostrando ao final da operação… “O nome do cliente, do vendedor, o preço que já tem e o troco”

    • Haroldo tem sim, podemos implementar sempre muito mais coisas, eu parei aí mas se quiser e puder continuar fica a vontade e se quiser me passar o que você fizer pode passar que posto aqui ou você mesmo pode postar suas implementações aqui sem problema. Essa é uma página, um portal para estudo e todos podem contribuir de uma forma ou de outra. Só lembrando muitas vezes o nosso esclarecimento, a nossa contribuição serve de ajuda para outros. Muito obrigado pelo elogio. Um abraço.

Deixe um comentário:

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s