Projeto Prático 3
src/
com/abctreinamentos/siscapacit/
data/
cursos.json
servidorpublico.json
Curso.java
ServidorPublico.java
SiscapacitApp.javaLast updated
src/
com/abctreinamentos/siscapacit/
data/
cursos.json
servidorpublico.json
Curso.java
ServidorPublico.java
SiscapacitApp.javaLast updated
[
{
"idcurso": 1,
"nome": "Java Básico",
"foto": "https://exemplo.com/fotos/java_basico.jpg",
"formarealizacao": "Online",
"ofertante": "ABC Treinamentos",
"vagas": 30,
"valor": 199.99,
"site": "https://abctreinamentos.com/java-basico",
"situacao": "Aberto"
},
{
"idcurso": 2,
"nome": "Python para Iniciantes",
"foto": "https://exemplo.com/fotos/python_iniciantes.jpg",
"formarealizacao": "Presencial",
"ofertante": "Siscapacit",
"vagas": 20,
"valor": 249.90,
"site": "https://siscapacit.com/python-iniciantes",
"situacao": "Aberto"
},
{
"idcurso": 3,
"nome": "Excel Avançado",
"foto": "https://exemplo.com/fotos/excel_avancado.jpg",
"formarealizacao": "Online",
"ofertante": "Cursos Online",
"vagas": 50,
"valor": 149.00,
"site": "https://cursosonline.com/excel-avancado",
"situacao": "Fechado"
},
{
"idcurso": 4,
"nome": "Gestão de Projetos",
"foto": "https://exemplo.com/fotos/gestao_projetos.jpg",
"formarealizacao": "Online",
"ofertante": "GestãoPro",
"vagas": 40,
"valor": 299.00,
"site": "https://gestaopro.com/curso-projetos",
"situacao": "Aberto"
},
{
"idcurso": 5,
"nome": "Inglês Intermediário",
"foto": "https://exemplo.com/fotos/ingles_intermediario.jpg",
"formarealizacao": "Presencial",
"ofertante": "Language School",
"vagas": 25,
"valor": 399.99,
"site": "https://languageschool.com/ingles-intermediario",
"situacao": "Aberto"
},
{
"idcurso": 6,
"nome": "Power BI Essencial",
"foto": "https://exemplo.com/fotos/powerbi_essencial.jpg",
"formarealizacao": "Online",
"ofertante": "DataPro",
"vagas": 35,
"valor": 179.90,
"site": "https://datapro.com/powerbi-essencial",
"situacao": "Fechado"
},
{
"idcurso": 7,
"nome": "Comunicação Empresarial",
"foto": "https://exemplo.com/fotos/comunicacao_empresarial.jpg",
"formarealizacao": "Online",
"ofertante": "ABC Treinamentos",
"vagas": 60,
"valor": 129.99,
"site": "https://abctreinamentos.com/comunicacao-empresarial",
"situacao": "Aberto"
},
{
"idcurso": 8,
"nome": "Desenvolvimento Web",
"foto": "https://exemplo.com/fotos/desenvolvimento_web.jpg",
"formarealizacao": "Online",
"ofertante": "WebCursos",
"vagas": 45,
"valor": 349.00,
"site": "https://webcursos.com/desenvolvimento-web",
"situacao": "Aberto"
},
{
"idcurso": 9,
"nome": "Finanças Pessoais",
"foto": "https://exemplo.com/fotos/financas_pessoais.jpg",
"formarealizacao": "Presencial",
"ofertante": "FinancePro",
"vagas": 15,
"valor": 199.00,
"site": "https://financepro.com/financas-pessoais",
"situacao": "Fechado"
},
{
"idcurso": 10,
"nome": "Marketing Digital",
"foto": "https://exemplo.com/fotos/marketing_digital.jpg",
"formarealizacao": "Online",
"ofertante": "DigitalPro",
"vagas": 55,
"valor": 259.90,
"site": "https://digitalpro.com/marketing-digital",
"situacao": "Aberto"
}
]
[
{
"matricula": 1001,
"nome": "Isabela Sampaio",
"foto": "https://exemplo.com/fotos/isabela.jpg",
"orgao": "Tribunal Regional",
"vinculo": "Efetivo",
"cargo": "Analista Judiciário",
"lotacao": "Setor de TI",
"exercicio": "Departamento de Tecnologia",
"email": "isabela.sampaio@orgao.gov.br",
"telefone": "(11) 4002-8922",
"celular": "(11) 98888-1234",
"cpf": "123.456.789-00",
"naturalidade": "São Paulo"
},
{
"matricula": 1002,
"nome": "Heila Alves",
"foto": "https://exemplo.com/fotos/heila.jpg",
"orgao": "Prefeitura Municipal",
"vinculo": "Comissionado",
"cargo": "Assistente Administrativo",
"lotacao": "RH",
"exercicio": "Departamento de Recursos Humanos",
"email": "heila.alves@prefeitura.sp.gov.br",
"telefone": "(11) 3003-1234",
"celular": "(11) 97777-5678",
"cpf": "234.567.890-11",
"naturalidade": "Campinas"
},
{
"matricula": 1003,
"nome": "Maria Silva",
"foto": "https://exemplo.com/fotos/maria.jpg",
"orgao": "Secretaria da Educação",
"vinculo": "Efetivo",
"cargo": "Analista de Sistemas",
"lotacao": "TI",
"exercicio": "Departamento de Informática",
"email": "maria.silva@educacao.sp.gov.br",
"telefone": "(11) 3222-4455",
"celular": "(11) 96666-4321",
"cpf": "345.678.901-22",
"naturalidade": "Santos"
},
{
"matricula": 1004,
"nome": "Caio Souza",
"foto": "https://exemplo.com/fotos/caio.jpg",
"orgao": "Ministério da Saúde",
"vinculo": "Efetivo",
"cargo": "Desenvolvedor",
"lotacao": "Informática",
"exercicio": "Departamento de Administração",
"email": "caio.souza@saude.gov.br",
"telefone": "(61) 4009-8765",
"celular": "(61) 98888-6543",
"cpf": "456.789.012-33",
"naturalidade": "Brasília"
},
{
"matricula": 1005,
"nome": "Ana Paula Lima",
"foto": "https://exemplo.com/fotos/anapaula.jpg",
"orgao": "Secretaria de Segurança",
"vinculo": "Comissionado",
"cargo": "Coordenadora",
"lotacao": "Administração",
"exercicio": "Departamento de Segurança",
"email": "ana.lima@seguranca.gov.br",
"telefone": "(21) 4002-1234",
"celular": "(21) 98888-1111",
"cpf": "567.890.123-44",
"naturalidade": "Rio de Janeiro"
},
{
"matricula": 1006,
"nome": "João Pedro Oliveira",
"foto": "https://exemplo.com/fotos/joaopedro.jpg",
"orgao": "Tribunal de Justiça",
"vinculo": "Efetivo",
"cargo": "Técnico Judiciário",
"lotacao": "Setor Jurídico",
"exercicio": "Departamento Jurídico",
"email": "joao.oliveira@tj.gov.br",
"telefone": "(31) 4003-5678",
"celular": "(31) 97777-2222",
"cpf": "678.901.234-55",
"naturalidade": "Belo Horizonte"
},
{
"matricula": 1007,
"nome": "Fernanda Costa",
"foto": "https://exemplo.com/fotos/fernanda.jpg",
"orgao": "Ministério da Economia",
"vinculo": "Efetivo",
"cargo": "Contadora",
"lotacao": "Financeiro",
"exercicio": "Departamento Financeiro",
"email": "fernanda.costa@economia.gov.br",
"telefone": "(61) 4004-3333",
"celular": "(61) 98888-3333",
"cpf": "789.012.345-66",
"naturalidade": "Goiânia"
},
{
"matricula": 1008,
"nome": "Lucas Martins",
"foto": "https://exemplo.com/fotos/lucas.jpg",
"orgao": "Prefeitura Municipal",
"vinculo": "Comissionado",
"cargo": "Engenheiro Civil",
"lotacao": "Obras",
"exercicio": "Departamento de Obras",
"email": "lucas.martins@prefeitura.sp.gov.br",
"telefone": "(11) 4005-6789",
"celular": "(11) 98888-4444",
"cpf": "890.123.456-77",
"naturalidade": "São Paulo"
},
{
"matricula": 1009,
"nome": "Patrícia Mendes",
"foto": "https://exemplo.com/fotos/patricia.jpg",
"orgao": "Secretaria da Saúde",
"vinculo": "Efetivo",
"cargo": "Enfermeira",
"lotacao": "Hospital Central",
"exercicio": "Departamento Hospitalar",
"email": "patricia.mendes@saude.sp.gov.br",
"telefone": "(11) 4006-7890",
"celular": "(11) 98888-5555",
"cpf": "901.234.567-88",
"naturalidade": "Sorocaba"
},
{
"matricula": 1010,
"nome": "Rafael Torres",
"foto": "https://exemplo.com/fotos/rafael.jpg",
"orgao": "Ministério da Educação",
"vinculo": "Efetivo",
"cargo": "Professor",
"lotacao": "Escola Estadual",
"exercicio": "Departamento de Educação",
"email": "rafael.torres@educacao.gov.br",
"telefone": "(61) 4007-8901",
"celular": "(61) 98888-6666",
"cpf": "012.345.678-99",
"naturalidade": "Brasília"
}
]
package com.abctreinamentos.siscapacit;
/**
* Classe que representa um Curso.
*/
public class Curso {
/**
* Atributos
*/
private int idcurso;
private String nome;
private String formarealizacao;
private String ofertante;
private double valor;
/**
* Construtores
*/
public Curso() {}
public Curso(int idcurso, String nome, String formarealizacao, String ofertante, double valor) {
this.idcurso = idcurso;
this.nome = nome;
this.formarealizacao = formarealizacao;
this.ofertante = ofertante;
this.valor = valor;
}
/**
* Getters e Setters
*/
public int getIdcurso() {
return idcurso;
}
public void setIdcurso(int idcurso) {
this.idcurso = idcurso;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getFormarealizacao() {
return formarealizacao;
}
public void setFormarealizacao(String formarealizacao) {
this.formarealizacao = formarealizacao;
}
public String getOfertante() {
return ofertante;
}
public void setOfertante(String ofertante) {
this.ofertante = ofertante;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
/**
* Método toString
*/
@Override
public String toString() {
return "Curso [idcurso=" + idcurso + ", nome=" + nome + ", formarealizacao=" + formarealizacao + ", ofertante="
+ ofertante + ", valor=" + valor + "]";
}
/**
* Cria e retorna um novo Curso com os dados informados.
*/
public static Curso inserirCurso(int idcurso, String nome, String formarealizacao, String ofertante, double valor) {
return new Curso(idcurso, nome, formarealizacao, ofertante, valor);
}
}
package com.abctreinamentos.siscapacit;
/**
* Classe que representa um Servidor Público.
*/
public class ServidorPublico {
/**
* Atributos
*/
private int matricula;
private String nome;
private String orgao;
private String cargo;
private String lotacao;
private String email;
private double salario;
/**
* Construtores
*/
public ServidorPublico() {}
public ServidorPublico(int matricula, String nome, String orgao, String cargo, String lotacao, String email, double salario) {
this.matricula = matricula;
this.nome = nome;
this.orgao = orgao;
this.cargo = cargo;
this.lotacao = lotacao;
this.email = email;
this.salario = salario;
}
/**
* Getters e Setters
*/
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getOrgao() {
return orgao;
}
public void setOrgao(String orgao) {
this.orgao = orgao;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public String getLotacao() {
return lotacao;
}
public void setLotacao(String lotacao) {
this.lotacao = lotacao;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
/**
* toString Override
*/
@Override
public String toString() {
return "ServidorPublico [matricula=" + matricula + ", nome=" + nome + ", orgao=" + orgao + ", cargo=" + cargo
+ ", lotacao=" + lotacao + ", email=" + email + ", salario=" + salario + "]";
}
/**
* Cria e retorna um novo ServidorPublico com os dados informados.
*/
public static ServidorPublico inserirServidorPublico(
int matricula,
String nome,
String orgao,
String cargo,
String lotacao,
String email,
double salario) {
return new ServidorPublico(matricula, nome, orgao, cargo, lotacao, email, salario);
}
}
package com.abctreinamentos.siscapacit;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JOptionPane;
/**
* Classe principal do sistema Siscapacit.
*/
public class SiscapacitApp {
/**
* Atributos
*/
List<ServidorPublico> servidores = new LinkedList<>();
List<Curso> cursos = new LinkedList<>();
/************************************************************************************
* Servidor Público *
************************************************************************************/
/**
* Métodos CRUD
*/
// Adicionar Servidor Público
public void adicionarServidorPublico() {
try {
int matricula = Integer.parseInt(
JOptionPane.showInputDialog("Matrícula")
);
String nome = JOptionPane.showInputDialog("Nome");
String orgao = JOptionPane.showInputDialog("Orgão");
String cargo = JOptionPane.showInputDialog("Cargo");
String lotacao = JOptionPane.showInputDialog("Lotação");
String email = JOptionPane.showInputDialog("Email");
double salario = Double.parseDouble(
JOptionPane.showInputDialog("Salário")
);
ServidorPublico servidor = new ServidorPublico(
matricula,
nome,
orgao,
cargo,
lotacao,
email,
salario
);
servidores.add(servidor);
JOptionPane.showMessageDialog(null, "Servidor público adicionado com sucesso!");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,
String.format("Formato inválido! Erro: %s", e.getMessage())
);
}
}
// 2. Listar Servidores Públicos
public void listarServidoresPublicos() {
StringBuilder sb = new StringBuilder();
for (ServidorPublico servidor : servidores) {
sb.append(servidor.toString()).append("\n");
}
JOptionPane.showMessageDialog(null, sb.toString());
}
// 3. Listar Servidor Público por Matrícula
public void listarServidorPublico(int matricula) {
for (ServidorPublico servidor : servidores) {
if (servidor.getMatricula() == matricula) {
JOptionPane.showMessageDialog(null, servidor.toString());
return;
}
}
JOptionPane.showMessageDialog(null, "Servidor público não encontrado!");
}
// 4. Alterar Servidor Público
public void alterarServidorPublico(int matricula) {
for (ServidorPublico servidor : servidores) {
if (servidor.getMatricula() == matricula) {
int confirm = JOptionPane.showConfirmDialog(
null,
String.format("Deseja realmente alterar este servidor público? \n %s", servidor.toString()),
"Confirmação",
JOptionPane.YES_NO_OPTION);
if (confirm != JOptionPane.YES_OPTION) {
return;
}
String nome = JOptionPane.showInputDialog("Nome", servidor.getNome());
String orgao = JOptionPane.showInputDialog("Orgão", servidor.getOrgao());
String cargo = JOptionPane.showInputDialog("Cargo", servidor.getCargo());
String lotacao = JOptionPane.showInputDialog("Lotação", servidor.getLotacao());
String email = JOptionPane.showInputDialog("Email", servidor.getEmail());
double salario = Double.parseDouble(
JOptionPane.showInputDialog("Salário", servidor.getSalario())
);
servidor.setNome(nome);
servidor.setOrgao(orgao);
servidor.setCargo(cargo);
servidor.setLotacao(lotacao);
servidor.setEmail(email);
servidor.setSalario(salario);
JOptionPane.showMessageDialog(null, "Servidor público alterado com sucesso!");
return;
}
}
JOptionPane.showMessageDialog(null, "Servidor público não encontrado!");
}
// 5. Excluir Servidor Público
public void excluirServidorPublico(int matricula) {
for (ServidorPublico servidor : servidores) {
if (servidor.getMatricula() == matricula) {
int confirm = JOptionPane.showConfirmDialog(
null,
String.format("Deseja realmente excluir este servidor público? \n %s", servidor.toString()),
"Confirmação",
JOptionPane.YES_NO_OPTION);
if (confirm != JOptionPane.YES_OPTION) {
return;
}
servidores.remove(servidor);
JOptionPane.showMessageDialog(null, "Servidor público excluído com sucesso!");
return;
}
}
JOptionPane.showMessageDialog(null, "Servidor público não encontrado!");
}
/**
* Métodos Servidor Público
* 1. Calcular Folha de Pagamento dos Servidores Públicos
*/
public void calcularFolhaServidoresPublicos() {
double total = 0.0;
for (ServidorPublico servidor : servidores) {
total += servidor.getSalario();
}
JOptionPane.showMessageDialog(null, String.format("Total da folha de pagamento: R$ %.2f", total));
}
/************************************************************************************
* Curso *
************************************************************************************/
// 1. Adicionar Curso
public void adicionarCurso() {
try {
int idcurso = Integer.parseInt(
JOptionPane.showInputDialog("ID do Curso")
);
String nome = JOptionPane.showInputDialog("Nome do Curso");
String formarealizacao = JOptionPane.showInputDialog("Forma de Realização");
String ofertante = JOptionPane.showInputDialog("Ofertante");
double valor = Double.parseDouble(
JOptionPane.showInputDialog("Valor do Curso")
);
Curso curso = new Curso(
idcurso,
nome,
formarealizacao,
ofertante,
valor
);
cursos.add(curso);
JOptionPane.showMessageDialog(null, "Curso adicionado com sucesso!");
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,
String.format("Formato inválido! Erro: %s", e.getMessage())
);
}
}
// 2. Listar Cursos
public void listarCursos() {
StringBuilder sb = new StringBuilder();
for (Curso curso : cursos) {
sb.append(curso.toString()).append("\n");
}
JOptionPane.showMessageDialog(null, sb.toString());
}
// 3. Listar Curso por ID
public void listarCursoPorID(int idcurso) {
for (Curso curso : cursos) {
if (curso.getIdcurso() == idcurso) {
JOptionPane.showMessageDialog(null, curso.toString());
return;
}
}
JOptionPane.showMessageDialog(null, "Curso não encontrado!");
}
// 4. Alterar Curso
public void alterarCurso(int idcurso) {
for (Curso curso : cursos) {
if (curso.getIdcurso() == idcurso) {
int confirm = JOptionPane.showConfirmDialog(
null,
String.format("Deseja realmente alterar este curso? \n %s", curso.toString()),
"Confirmação",
JOptionPane.YES_NO_OPTION);
if (confirm != JOptionPane.YES_OPTION) {
return;
}
String nome = JOptionPane.showInputDialog("Nome do Curso", curso.getNome());
String formarealizacao = JOptionPane.showInputDialog("Forma de Realização", curso.getFormarealizacao());
String ofertante = JOptionPane.showInputDialog("Ofertante", curso.getOfertante());
double valor = Double.parseDouble(
JOptionPane.showInputDialog("Valor do Curso", curso.getValor())
);
curso.setNome(nome);
curso.setFormarealizacao(formarealizacao);
curso.setOfertante(ofertante);
curso.setValor(valor);
JOptionPane.showMessageDialog(null, "Curso alterado com sucesso!");
return;
}
}
JOptionPane.showMessageDialog(null, "Curso não encontrado!");
}
// 5. Excluir Curso
public void excluirCurso(int idcurso) {
for (Curso curso : cursos) {
if (curso.getIdcurso() == idcurso) {
int confirm = JOptionPane.showConfirmDialog(
null,
String.format("Deseja realmente excluir este curso? \n %s", curso.toString()),
"Confirmação",
JOptionPane.YES_NO_OPTION);
if (confirm != JOptionPane.YES_OPTION) {
return;
}
cursos.remove(curso);
JOptionPane.showMessageDialog(null, "Curso excluído com sucesso!");
return;
}
}
JOptionPane.showMessageDialog(null, "Curso não encontrado!");
}
/************************************************************************************
* Bloco Principal *
************************************************************************************/
/**
* Método principal do sistema.
*/
public static void main(String[] args) {
SiscapacitApp app = new SiscapacitApp();
/**
* Servidor Público
*/
// Exemplo de uso dos métodos
app.adicionarServidorPublico();
app.adicionarServidorPublico();
app.alterarServidorPublico(1);
app.excluirServidorPublico(2);
//app.listarServidorPublico(1);
app.listarServidoresPublicos();
app.calcularFolhaServidoresPublicos();
/**
* Curso
*/
// Exemplo de uso dos métodos
app.adicionarCurso();
app.adicionarCurso();
app.alterarCurso(1);
app.excluirCurso(2);
//app.listarCursoPorID(1);
app.listarCursos();
}
}