Baixe o app para aproveitar ainda mais
Prévia do material em texto
GABARITO DISCIPLINA EEP101 - Programação Orientada a Objetos APLICAÇÃO 24/06/2020 CÓDIGO DA PROVA P003/P004 QUESTÕES OBJETIVAS Questão 1.1 A resposta correta é: Estado, comportamento e identidade. Justificativa Videoaula 1, slides 12-13. Questão 1.2 A resposta correta é: F - V - V - V - F Justificativa Videoaula 6. Questão 1.3 A resposta correta é: Gerada no método analisaTemperatura() e tratada no método principal (main). Justificativa Videoaula 11. Questão 1.4 A resposta correta é: Abertura de um arquivo; Cria arquivo se não existir; Lê dados do arquivo; Armazena dados Pessoa em ArrayList; Adiciona 3 novos objetos Pessoa em ArrayList; Salva ArrayList em arquivo; Fecha Arquivo. Justificativa Videoaula 13. QUESTÕES DISSERTATIVAS Questão 2 Escreva o código em Java da classe a seguir, com atributos privados e métodos acessadores e modificadores. Implemente o conceito de polimorfismo nos construtores. Cliente CPF: String Nome: String Telefone: String Getters e Setters RESOLUÇÃO import java.util.*; public class Cliente { private String CPF; private String nome; private String fone; private Date DtNasc; public Cliente() { } public Cliente(String CPF, String nome, String fone, Date DtNasc) { this.CPF=CPF; this.nome=nome; this.fone=fone; this.DtNasc=DtNasc; } public String getCPF() { return CPF; } public void setCPF(String cPF) { CPF = cPF; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getFone() { return fone; } public void setFone(String fone) { this.fone = fone; } public Date getDtNasc() { return DtNasc; } public void setDtNasc(Date dtNasc) { DtNasc = dtNasc; } } Rubricas | critérios de correção Uso da biblioteca Date ou java.util.*: 0,3 ponto. Todos os atributos private: 0,3 ponto. Polimorfismo no construtor, mínimo 2 construtores com parâmetros diferentes: 0,6 ponto. Cada método implementado: 0,1 * 8 = 0,8 ponto. Questão 3 Observe o código a seguir e construa o diagrama de classes desenvolvidas pelo programador, apresentando nome da classe, atributos e métodos. Identifique os relacionamentos entre classes. public class Pessoa { private String nome; private int idade, ano_nascimento; private double salario; public Pessoa() { } public Pessoa(String n) { this.nome = n; } public Pessoa(String n, int ano) { this.nome = n; this.ano_nascimento = ano; } public void cadastrarNome(String n) { this.nome=n; } public String lerNome() { return this.nome; } public void cadastrarAnoNascimento(int ano) { this.ano_nascimento = ano; } public int lerAnoNascimento() { return this.ano_nascimento; } public void cadastrarSalario(double s) { this.salario = s; } public double lerSalario() { return this.salario; } public void calcularIdade(int atual) { this.idade = atual - this.ano_nascimento; } public int lerIdade() { return this.idade; } public void escreverPessoa() { System.out.println("Pessoa cadastrada"); System.out.println("Nome: " + this.nome); System.out.println("Nascimento: " + this.ano_nascimento); System.out.println("Idade: " + this.idade); System.out.println("Salario: " + this.salario); } } import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.*; import javax.swing.JOptionPane; ArrayList pessoas = new ArrayList(); public class RH { public static void main(String[] args) { String n, entrada, linha; int ano, atual; double s; Pessoa p; File arquivo = new File("C:\\Users\\Christiane\\Desktop\\rh.txt"); try { if (!arquivo.exists()) { arquivo.createNewFile(); } FileReader fr = new FileReader(arquivo); BufferedReader br = new BufferedReader(fr); while (br.ready()) { p = new Pessoa(); linha = br.readLine(); System.out.println(linha); p.cadastrarNome(linha); linha = br.readLine(); System.out.println(linha); p.cadastrarAnoNascimento(Integer.parseInt(linha)); linha = br.readLine(); System.out.println(linha); p.cadastrarSalario(Double.parseDouble(linha)); pessoas.add(p); } br.close(); fr.close(); } catch (IOException ex) { ex.printStackTrace(); } int i; for(i=0;i<3; i++) { n = JOptionPane.showInputDialog("Qual o seu nome?" ); entrada = JOptionPane.showInputDialog("Ano de nascimento?" ); ano = Integer.parseInt(entrada); entrada = JOptionPane.showInputDialog("Salario?" ); s = Double.parseDouble(entrada); p = new Pessoa(n); p.cadastrarAnoNascimento(ano); p.cadastrarSalario(s); Calendar calendario = Calendar.getInstance(); atual=calendario.get(Calendar.YEAR); p.calcularIdade(atual); JOptionPane.showMessageDialog(null, "Nome: " + p.lerNome()+ "\nAno de Nascimento: "+p.lerAnoNascimento() + "\nIdade: "+ p.lerIdade() + "\nSalario: R$" + p.lerSalario()); pessoas.add(p); } try { arquivo.createNewFile(); FileWriter fw = new FileWriter(arquivo); BufferedWriter bw = new BufferedWriter(fw); for (i=0; i<pessoas.size(); i++) { p = (Pessoa)pessoas.get(i); linha = p.lerNome(); System.out.println(linha); bw.write(linha); bw.newLine(); linha = new Integer(p.lerAnoNascimento()).toString(); System.out.println(linha); bw.write(linha); bw.newLine(); linha = new Double(p.lerSalario()).toString(); System.out.println(linha); bw.write(linha); bw.newLine(); } bw.close(); fw.close(); } catch (IOException ex) { ex.printStackTrace(); } } } RESOLUÇÃO Rubricas | critérios de correção Cada atributo 0,1 x 5 = 0,5 ponto. Cada método 0,1 x 10 = 1,0 ponto. Relacionamento entre classes: 0,5 ponto. RH pessoas[]: Pessoa; main(); Pessoa nome: String idade, ano_nascimento: inteiro salario: real cadastrarNome(); lerNome(); cadastrarAnoNascimento(); lerAnoNascimento(); cadastrarSalario(); lerSalario(); calcularIdade(); lerIdade(); escreverPessoa(); 1 0..*
Compartilhar