Upload
jeancarlos
View
220
Download
0
Embed Size (px)
DESCRIPTION
Etapa 3 e 4 da atps de programação orientada a objetos 2.
Citation preview
FACULDADE ANHANGUERA DE TAUBATÉ – UNIDADE II
ATIVIDADES PRÁTICAS SUPERVISIONADAS
Programação Orientada à Objetos II
2º Bimestre / 2015
Curso: Ciência da ComputaçãoSemestre: 5º e 6º - Turma A – Ano: 2015
Nome RA
Taubaté26 de novembro de 2015
1
Lista de figuras.
Figura 1: Tela principal.............................................................................................................21Figura 2: Cadastro de celetista..................................................................................................21Figura 3: Pagamento de celetista..............................................................................................21Figura 4: Imposto de celetista...................................................................................................21Figura 5: Cadastro de pessoa jurídica.......................................................................................21Figura 6: Imposto de pessoa jurídica........................................................................................22Figura 7: Pagamento de pessoa jurídica....................................................................................22Figura 8: Imposto de produto....................................................................................................22Figura 9: Cadastro de produto...................................................................................................22
2
Sumário.
1. Código Fonte.......................................................................................................................4
1.1 Classe ATPS........................................................................................................................4
1.2 Classe Colaborador..............................................................................................................5
1.3 Classe Celetista....................................................................................................................6
1.4 Classe Pessoa Jurídica..........................................................................................................9
1.5 Classe Imposto...................................................................................................................12
1.6 Classe Produto...................................................................................................................13
1.7 Classe Formulário Celetista...............................................................................................14
1.8 Classe Formulário Pessoa Jurídica.....................................................................................17
1.9 Classe Formulário Produto................................................................................................19
2. Conclusão..........................................................................................................................22
3. Referências........................................................................................................................22
3
1. Código Fonte:
1.1 Classe ATPS:
package atps;
import javax.swing.JOptionPane;
public class ATPS {
public static void main(String[] args) {
//criando ojetos do tipo formulário
FrmCLT meuFormCLT = new FrmCLT();
FrmPJ meuFormPJ = new FrmPJ();
FrmProduto meuFormProduto = new FrmProduto();
String opcao;
do {
opcao = JOptionPane.showInputDialog("CLT, PJ ou PRODUTO?");
if (opcao == null) {
System.exit(0); }
opcao = opcao.toUpperCase(); }
while (!opcao.equals("CLT") && !opcao.equals("PJ") && !opcao.equals("PRODUTO"));
switch (opcao) {
case "CLT":
meuFormCLT.setVisible(true); //mostra o formulário "Celetista" break;
case "PJ":
meuFormPJ.setVisible(true); //mostra o formulário "Pessoa Jurídica" break;
case "PRODUTO":
meuFormProduto.setVisible(true); //mostra o formulário "Produto" break; } } }
4
1.2 Classe Colaborador:
package atps;
public abstract class Colaborador {
//atributos encapsulados
private String nome, endereco, telefone;
//metodos setter's
public void setNome(String nome) {
this.nome = nome; }
public void setEndereco(String endereco) {
this.endereco = endereco; }
public void setTelefone(String telefone) {
this.telefone = telefone; }
//metodos getter's
public String getNome() {
return this.nome; }
public String getEndereco() {
return this.endereco; }
public String getTelefone() {
return this.telefone; }
//construtor da classe
public Colaborador(String nome, String endereco, String telefone) {
this.nome = nome;
this.endereco = endereco;
this.telefone = telefone; }
//sobrecarga do construtor(overloading)
5
public Colaborador() {
this.nome = " ";
this.endereco = " ";
this.telefone = " "; }
//método que recebe horas trabalhadas e calcula o valor bruto
public abstract void valorBruto(int horas);
//método que recebe horas trabalhas e retorna um array
public abstract Imposto[] Inpostos(int horas); }
1.3 Classe Celetista:
package atps;
import javax.swing.JOptionPane;
public class Celetista extends Colaborador {
Imposto[] imp = new Imposto[2];
//atributos encapsulados
private String rg, cpf;
private double salarioMensal;
//atributos globais
int horaExtra, horaTrabalhada;
double valorHoraExtra, valorBruto = 0, valorLiquido, irff, inss, totalImpostos;
//metodos setter's
public void setRg(String rg) {
this.rg = rg; }
public void setCpf(String cpf) {
6
this.cpf = cpf; }
public void setSalarioMensal(double salarioMensal) {
this.salarioMensal = salarioMensal; }
//metodos getter's
public String getRg() {
return this.rg; }
public String getCfp() {
return this.cpf; }
public double getSalarioMensal() {
return this.salarioMensal; }
//construtor da classe
public Celetista(String nome, String endereco, String telefone, String rg,
String cpf, double salarioMensal) {
super(nome, endereco, telefone);
this.rg = rg;
this.cpf = cpf;
this.salarioMensal = salarioMensal; }
//sobrecarga do construtor(overloading)
public Celetista() {
super(" ", " ", " ");
this.rg = " ";
this.cpf = " ";
this.salarioMensal = 1; }
public String totImpostos() {
return "Total de impostos: R$" + totalImpostos; }
public Imposto[] totalImposto() {
//calculando o total dos impostos
7
totalImpostos = irff + inss;
Imposto[] tot = new Imposto[1];
tot[0] = new Imposto("Total de impostos: R$", totalImpostos);
return tot; }
@Override
public void valorBruto(int horas) {
//calculando o salario bruto
if (horaTrabalhada < 160) {
valorBruto = salarioMensal;
} else if (horaTrabalhada >= 160) {
valorHoraExtra = salarioMensal / 160;
valorBruto = salarioMensal + (horaTrabalhada * valorHoraExtra); }
//calculando o valor liquído
valorLiquido = valorBruto - (irff + inss);
//calculando o total dos impostos
totalImpostos = irff + inss;
JOptionPane.showMessageDialog(null, "Valor bruto: R$" + valorBruto
+ " - IRFF: R$" + irff
+ " - INSS: R$" + inss
+ " - Valor liquido: R$" + valorLiquido,
"Informacoes de pagamento para CLT",
JOptionPane.INFORMATION_MESSAGE); }
@Override
public Imposto[] Inpostos(int horas) {
//descontando o IRRF
if (salarioMensal < 1499.15) {
8
irff = 0;
} else if (salarioMensal > 1499.15 && salarioMensal <= 2246.75) {
irff = (salarioMensal * 0.075) - 112.43;
} else if (salarioMensal > 2246.75 && salarioMensal <= 2995.70) {
irff = (salarioMensal * 0.15) - 280.94;
} else if (salarioMensal > 2995.70 && salarioMensal <= 3743.19) {
irff = (salarioMensal * 0.225) - 505.62;
} else {
irff = (salarioMensal * 0.275) - 692.78; }
imp[0] = new Imposto(" - IRRF: R$", irff);
//descontando o INSS
if (salarioMensal < 965.67) {
inss = salarioMensal * 0.08;
} else if (salarioMensal > 965.67 && salarioMensal <= 1609.45) {
inss = salarioMensal * 0.09;
} else {
inss = salarioMensal * 0.11;
}
if (inss > 354.08) {
inss = 354.08; }
imp[1] = new Imposto(" - INSS: R$", inss);
return imp; } }
1.4 Classe Pessoa Jurídica:
package atps;
import javax.swing.JOptionPane;
public class PessoaJuridica extends Colaborador {
//atributos encapsulados
9
private String cnpj;
private double valorHora = 0;
//atributos globais
int horaTrabalhada;
double valorBruto, irrf, pis, iss, valorLiquido, totalImpostos;
//metodos setter's
public void setCnpj(String cnpj) {
this.cnpj = cnpj; }
public void setValorHora(double valorHora) {
this.valorHora = valorHora; }
//metodos getter's
public String getCnpj() {
return this.cnpj;}
public double getValorHora() {
return this.valorHora; }
//construtor da classe
public PessoaJuridica(String nome, String endereco, String telefone,
String cnpj, double valorHora) {
super(nome, endereco, telefone);
this.cnpj = cnpj;
this.valorHora = valorHora; }
//sobrecarga do construtor(overloading)
public PessoaJuridica() {
super(" ", " ", " ");
this.cnpj = " ";
this.valorHora = 1; }
10
public String totImpostos() {
return "Total de impostos: R$" + totalImpostos; }
public Imposto[] totalImposto() {
//calculando o total dos impostos
totalImpostos = irrf + iss;
Imposto[] tot = new Imposto[1];
tot[0] = new Imposto("Total de impostos: R$", totalImpostos);
return tot; }
@Override
public void valorBruto(int horas) {
//calculando o salario bruto
valorBruto = valorHora * horaTrabalhada;
//calculando o valor liquido
valorLiquido = valorBruto - (irrf + pis + iss);
JOptionPane.showMessageDialog(null, "Valor bruto: R$" + valorBruto
+ " - IRRF: R$" + irrf
+ " - PIS/CONFINS/CSLL/ISS: R$" + iss
+ " - Valor liquido: R$" + valorLiquido,
"Informacoes de pagamento para PJ",
JOptionPane.INFORMATION_MESSAGE);}
@Override
public Imposto[] Inpostos(int horas) {
Imposto[] imp = new Imposto[3];
//descontando o IRFF
11
irrf = valorBruto * 0.015;
imp[0] = new Imposto("IRRF: R$", irrf);
//descontando o PIS/CONFINS/CSLL e o ISS
if (valorBruto > 5000.00) {
pis = valorBruto * 0.0465;
iss = valorBruto * 0.04;
} else {
pis = 0;
iss = 0; }
imp[1] = new Imposto("PIS: R$", pis);
imp[2] = new Imposto("ISS: R$", iss);
return imp; } }
1.5 Classe Imposto:
package atps;
public class Imposto {
private String nomeImposto;
private double valorImposto;
public Imposto(String nomeImposto, double valorImposto) {
this.nomeImposto = nomeImposto;
this.valorImposto = valorImposto; }
public String getNomeImposto() {
return nomeImposto; }
public void setNomeImposto(String nomeImposto) {
this.nomeImposto = nomeImposto; }
public double getValorImposto() {
return valorImposto; }
12
public void setValorImposto(double valorImposto) {
this.valorImposto = valorImposto; } }
1.6 Classe Produto:
package atps;
public class Produto {
//atributos encapsulados
private String nomeProduto;
private double precoProduto;
//atributos globais
double icms, ipi, pis, cofins;
//métodos setter's
public void setNomeProduto(String nomeProduto) {
this.nomeProduto = nomeProduto; }
public void setPrecoProduto(double precoProduto) {
this.precoProduto = precoProduto; }
//métodos getter's
public String getNomeProduto() {
return nomeProduto; }
public double getPrecoProduto() {
return precoProduto; }
//construtor da classe
public Produto(String nomeProduto, double precoProduto) {
this.nomeProduto = nomeProduto;
13
this.precoProduto = precoProduto; }
//sobrecarga do construtor(overloading)
public Produto() {
this.nomeProduto = " ";
this.precoProduto = 1; }
//método da classe
public String totalImpostos() {
double totalImpostos, total;
//calculando icms,ipi,pis,cofins
icms = precoProduto * 0.07;
ipi = precoProduto * 0.05;
pis = precoProduto * 0.0165;
cofins = precoProduto * 0.076;
//calculando o total de impostos
totalImpostos = icms + ipi + pis + cofins;
total = precoProduto + totalImpostos;
return "Nome do produto: " + nomeProduto
+ " - Preco do produto: R$" + precoProduto
+ " - Total de impostos: R$" + totalImpostos
+ " - Preco total: R$" + total; } }
1.7 Classe Formulário Celetista:
package atps;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
14
public class FrmCLT extends javax.swing.JFrame {
//criando um objeto do tipo celetista
Celetista meuCeletista = new Celetista();
public FrmCLT() {
initComponents();
setTitle("Folha de Pagamento"); //titulo do formulário
this.setLocationRelativeTo(null); //inicializa o formulário no centro da tela }
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
try {
meuCeletista.setNome(txtNome.getText());
meuCeletista.setEndereco(txtEndereco.getText());
meuCeletista.setTelefone(txtTelefone.getText());
meuCeletista.setRg(txtRG.getText());
meuCeletista.setCpf(txtCPF.getText());
meuCeletista.setSalarioMensal(Double.parseDouble(txtSalario.getText()));
JOptionPane.showMessageDialog(null, "Dados salvos com sucesso!");
} catch (NumberFormatException | HeadlessException ex) {
JOptionPane.showMessageDialog(null, "Todos os campos sao obrigatorios!"); } }
private void btnPagamentoActionPerformed(java.awt.event.ActionEvent evt) {
//verificando se o colaborador existe
if (" ".equals(meuCeletista.getNome()) || " ".equals(meuCeletista.getEndereco())
|| " ".equals(meuCeletista.getTelefone()) || " ".equals(meuCeletista.getRg())
|| " ".equals(meuCeletista.getCfp()) || meuCeletista.getSalarioMensal() == 1) {
JOptionPane.showMessageDialog(null, "Crie um colaborador primeiro!", "Erro!",
JOptionPane.ERROR_MESSAGE);
} else {
//dados necessários para os cálculos
15
String horaTrabalhadaStr = JOptionPane.showInputDialog("Informe o numero de
horas trabalhadas");
if (horaTrabalhadaStr != null) {
meuCeletista.horaTrabalhada = Integer.parseInt(horaTrabalhadaStr); }
if (meuCeletista.horaTrabalhada >= 160) {
String horaExtraStr = JOptionPane.showInputDialog("Digite o numero de horas
extras");
if (horaExtraStr != null) {
meuCeletista.horaExtra = Integer.parseInt(horaExtraStr); }
String valorHoraExtraStr = JOptionPane.showInputDialog("Digite o valor da hora
extra");
if (valorHoraExtraStr != null) {
meuCeletista.valorHoraExtra = Double.parseDouble(valorHoraExtraStr); } }
//mostra o pagamento
meuCeletista.Inpostos(1);
meuCeletista.valorBruto(1); } }
private void btnTotalImpostosActionPerformed(java.awt.event.ActionEvent evt) {
//mostra o total de impostos
meuCeletista.totalImposto();
JOptionPane.showMessageDialog(null, meuCeletista.totImpostos()); }
/* Create and display the form */
java.awt.EventQueue.invokeLater(() -> {
new FrmCLT().setVisible(true); }); }
// Variables declaration - do not modify
private javax.swing.JButton btnPagamento;
private javax.swing.JButton btnSalvar;
16
private javax.swing.JButton btnTotalImpostos;
private javax.swing.JLabel lblCPF;
private javax.swing.JLabel lblEndereco;
private javax.swing.JLabel lblNome;
private javax.swing.JLabel lblRG;
private javax.swing.JLabel lblSalario;
private javax.swing.JLabel lblTelefone;
private javax.swing.JTextField txtCPF;
private javax.swing.JTextField txtEndereco;
private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtRG;
private javax.swing.JTextField txtSalario;
private javax.swing.JTextField txtTelefone;
// End of variables declaration }
1.8 Classe Formulário Pessoa Jurídica:
package atps;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
public class FrmPJ extends javax.swing.JFrame {
//criando um objeto do tipo Pessoa Jurídica
PessoaJuridica meuPessoaJuridica = new PessoaJuridica();
public FrmPJ() {
initComponents();
setTitle("Folha de Pagamento"); //titulo do formulário
this.setLocationRelativeTo(null); //inicializa o formulário no centro da tela }
17
private void btnSalvarActionPerformed(java.awt.event.ActionEvent evt) {
try {
meuPessoaJuridica.setNome(txtNome.getText());
meuPessoaJuridica.setEndereco(txtEndereco.getText());
meuPessoaJuridica.setTelefone(txtTelefone.getText());
meuPessoaJuridica.setCnpj(txtCNPJ.getText());
meuPessoaJuridica.setValorHora(Double.parseDouble(txtValorHora.getText()));
JOptionPane.showMessageDialog(null, "Dados salvos com sucesso!");
} catch (NumberFormatException | HeadlessException ex) {
JOptionPane.showMessageDialog(null, "Todos os campos sao obrigatorios!"); }
}
private void btnPagamentoActionPerformed(java.awt.event.ActionEvent evt) {
//verificando se o colaborador existe
if (" ".equals(meuPessoaJuridica.getNome()) || "
".equals(meuPessoaJuridica.getEndereco())
|| " ".equals(meuPessoaJuridica.getTelefone()) || "
".equals(meuPessoaJuridica.getCnpj())
|| meuPessoaJuridica.getValorHora() == 1) {
JOptionPane.showMessageDialog(null, "Crie um colaborador primeiro!", "Erro!",
JOptionPane.ERROR_MESSAGE);
} else {
//dados necessários para os cálculos
String horaTrabalhadaStr = JOptionPane.showInputDialog("Informe o numero de
horas trabalhadas");
if (horaTrabalhadaStr != null) {
meuPessoaJuridica.horaTrabalhada = Integer.parseInt(horaTrabalhadaStr); }
//mostra o pagamento
meuPessoaJuridica.valorBruto(1);
meuPessoaJuridica.Inpostos(1);
} }
18
private void btnImpostosActionPerformed(java.awt.event.ActionEvent evt) {
//mostra o total de impostos
meuPessoaJuridica.totalImposto();
JOptionPane.showMessageDialog(null, meuPessoaJuridica.totImpostos()); }
/* Create and display the form */
java.awt.EventQueue.invokeLater(() -> {
new FrmPJ().setVisible(true); }); }
// Variables declaration - do not modify
private javax.swing.JButton btnImpostos;
private javax.swing.JButton btnPagamento;
private javax.swing.JButton btnSalvar;
private javax.swing.JLabel lblCNPJ;
private javax.swing.JLabel lblEndereco;
private javax.swing.JLabel lblNome;
private javax.swing.JLabel lblTelefone;
private javax.swing.JLabel lblValorHora;
private javax.swing.JTextField txtCNPJ;
private javax.swing.JTextField txtEndereco;
private javax.swing.JTextField txtNome;
private javax.swing.JTextField txtTelefone;
private javax.swing.JTextField txtValorHora;
// End of variables declaration }
1.9 Classe Formulário Produto:
package atps;
import java.awt.HeadlessException;
import javax.swing.JOptionPane;
19
public class FrmProduto extends javax.swing.JFrame {
//criando um objeto do tipo produto
Produto meuProduto = new Produto();
public FrmProduto() {
initComponents();
setTitle("Folha de Pagamento"); //titulo do formulário
this.setLocationRelativeTo(null); //inicializa o formulário no centro da tela }
private void btnTotalImpostosActionPerformed(java.awt.event.ActionEvent evt) {
//verificando se o produto existe
if (" ".equals(meuProduto.getNomeProduto()) || meuProduto.getPrecoProduto() == 1) {
JOptionPane.showMessageDialog(null, "Cadastre um produto primeiro!", "Erro!",
JOptionPane.ERROR_MESSAGE);
} else {
//mostra o total de impostos de um produto
JOptionPane.showMessageDialog(null, meuProduto.totalImpostos(),
"Informacoes de imposto sobre um
produto",JOptionPane.INFORMATION_MESSAGE); } }
/* Create and display the form */
java.awt.EventQueue.invokeLater(() -> {
new FrmProduto().setVisible(true); }); }
// Variables declaration - do not modify
private javax.swing.JButton btnSalvar;
private javax.swing.JButton btnTotalImpostos;
private javax.swing.JLabel lblNomeProduto;
private javax.swing.JLabel lblPreco;
private javax.swing.JTextField txtNomeProduto;
20
private javax.swing.JTextField txtPreco;
// End of variables declaration }
2.
Conclusão.
Na etapa 3 e 4 deste trabalho, foram usados os conceitos de atributos, métodos,
construtores, sobrecarga, herança, polimorfismo, interfaces gráficas, classes e métodos
abstratos. O programa permite que o usuário cadastre um colaborador (celetista ou pessoa
jurídica) ou um produto; calcula e mostra o seu salário líquido e o valor dos impostos.
3. Referências.
Figura 1: Tela principal
Figura 2: Cadastro de celetista Figura 3: Pagamento de celetista
Figura 4: Imposto de celetista Figura 5: Cadastro de pessoa jurídica
Figura 6: Pagamento de pessoa jurídica Figura 7: Imposto de pessoa jurídica
Figura 9: Cadastro de produto Figura 8: Imposto de produto
21
Livro-texto da disciplina de Programação Orientada a Objetos (SANTOS, Rafael. Introdução
à Programação Orientada a Objetos Usando Java. 1ª ed. Rio de Janeiro: Campus Elsevier,
2008).
TOLEDO, Rafael. Classes e Métodos Abstratos. Publicado em: 19 de dezembro de 2011.
Disponível em: < http://www.rafaeltoledo.net/classes-e-metodos-abstratos/>. Acesso em: 23
de novembro de 2015.
22