Buscar

EEP101 - Programação Orientada a Objetos UNIVESP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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..*

Continue navegando