Você está na página 1de 33

Disciplina: Programação Orientada a objetos

Turno: Noite
Curso: ADS
Professor: Vitor
Nome do aluno: Bruna Haas Drago
Data de entrega: 31/05/2022
ATIVIDADES

Vocês deverão criar o código e tirar print das telas e colar abaixo das questões.
Não utilizar componentes gráficos, com swing, awt ou javaFX.

OBS:
Não desistam, insistam que vocês vão conseguir fazer! O prazo de entrega é bem flexível, qualquer problema entre em contato comigo! Se não
conseguir entregar a resposta inteira entregue o que conseguiu fazer. Será avaliado igual.
Boa avaliação:

1. (1,0) Crie uma classe Agenda que pode armazenar 10 pessoas e seja capaz de realizar as seguintes operações:

● void armazenarPessoa(String nome, int idade, float altura);


● void removePessoa(String nome);
● int buscaPessoa(String nome); //informe em que posição da agenda está a pessoa
● void imprimeAgenda(); // informe os dados de todas as pessoas da agenda
● void imprimePessoa(int index); //imprime os dados da pessoa que está na posição “i”da agenda.
[COLE OS PRINTS AQUI]
package Numero_1;

import java.util.Scanner;

public class Principal {


static Scanner entrada = new Scanner(System.in);

public static void main(String[] args) {

Agenda agenda = new Agenda(10);


String nome;
int idade;
double altura;

while(true){
System.out.println("\n1. Nova Pessoa");
System.out.println("2. Excluir Pessoa");
System.out.println("3. Buscar Pessoa");
System.out.println("4. Imprimir Agenda");
System.out.println("5. Imprimir Pessoa (Índice)");
System.out.println("6. Sair");
System.out.print("Sua opção: ");
int opcao = Integer.parseInt(entrada.nextLine());

switch(opcao){
case 1:
System.out.print("\nInforme o nome: ");
nome = entrada.nextLine();
System.out.print("Informe a idade: ");
idade = Integer.parseInt(entrada.nextLine());
System.out.print("Informe a altura: ");
altura = Double.parseDouble(entrada.nextLine());
agenda.armazenaPessoa(nome, idade, altura);
break;

case 2:
System.out.print("\nInforme o nome a ser removido: ");
nome = entrada.nextLine();
agenda.removePessoa(nome);
break;

case 3:
System.out.print("\nInforme o nome a ser pesquisado: ");
nome = entrada.nextLine();
int indice = agenda.buscaPessoa(nome);
if(indice < 0){
System.out.println("\nA pessoa não foi encontrada");
}
else{
System.out.println("\nA pessoa foi encontrada no índice: "
+ indice);
}
break;

case 4:
agenda.imprimeAgenda();
break;

case 5:
System.out.print("\nInforme o índice desejado: ");
int index = Integer.parseInt(entrada.nextLine());
agenda.imprimePessoa(index);
break;

case 6:
System.exit(0);

default:
System.out.println("\nOpção inválida\n");
break;
}
}
}
}

package Numero_1;

public class Pessoa {


private String nome;
private int idade;
private double altura;

// construtor cheio
public Pessoa(String nome, int idade, double altura) {
this.nome = nome;
this.idade = idade;
this.altura = altura;
}
public Pessoa() {
}

public void imprimirDados() {


System.out.println("Nome: " + nome + "\nIdade: " +
idade + "\nAltura: " + altura);
}

public String getNome() {


return nome;
}

public void setNome(String nome) {


this.nome = nome;
}

public int getIdade() {


return idade;
}

public void setIdade(int idade) {


this.idade = idade;
}

public double getAltura() {


return altura;
}

public void setAltura(double altura) {


this.altura = altura;
}
}

package Numero_1;
import java.util.ArrayList;

public class Agenda {

private Pessoa pessoas[];

public Agenda(int quantidade) {


pessoas = new Pessoa[quantidade];
}

public void armazenaPessoa(String nome, int idade, double altura) {


// ainda temos posições disponíveis na agenda?
boolean cadastrado = false;
for (int i = 0; i < pessoas.length; i++) {
if (pessoas[i] == null) {

Pessoa p = new Pessoa(nome, idade, altura); // criamos uma nova pessoa


pessoas[i] = p;
cadastrado = true;
break; // sai do laço
}
}

if (cadastrado) {
System.out.println("\nCadastro efetuado com sucesso");
} else {
System.out.println("\nNão foi possível cadastrar. Agenda cheia");
}
}

public void removePessoa(String nome) {

boolean excluido = false;


for (int i = 0; i < pessoas.length; i++) {
if (pessoas[i] != null) {

if (pessoas[i].getNome().equals(nome)) {
pessoas[i] = null;
excluido = true;
break;
}
}
}

if (excluido) {
System.out.println("\nPessoa removida com sucesso");
} else {
System.out.println("\nNão foi possível remover. Pessoa não encontrada.");
}
}

public int buscaPessoa(String nome) {


int resultado = -1;
for (int i = 0; i < pessoas.length; i++) {
if (pessoas[i] != null) {
// esta é a pessoa que estamos procurando?
if (pessoas[i].getNome().equals(nome)) {
resultado = i;
break; // sai do laço
}
}
}

return resultado;
}

public void imprimeAgenda() {


for (int i = 0; i < pessoas.length; i++) {
if (pessoas[i] != null) {
Pessoa p = pessoas[i];
System.out.println("\nNome: " + p.getNome());
System.out.println("Idade: " + p.getIdade());
System.out.println("Altura: " + p.getAltura());
}
}
}

public void imprimePessoa(int index) {


// este índice é válido?
if ((index < 0) || (index > (pessoas.length - 1))) {
System.out.println("\nÍndice inválido");
} else {
Pessoa p = pessoas[index];
if (p == null) {
System.out.println("\nNão existe pessoa nesse índice ainda.");
} else {
System.out.println("\nNome: " + p.getNome());
System.out.println("Idade: " + p.getIdade());
System.out.println("Altura: " + p.getAltura());
}
}
}
}

2. (1,5) Crie uma classe denominada Elevador para armazenar as informações de um elevador dentro de um prédio. A classe deve
armazenar o andar atual (térreo = 0), total de andares no prédio, excluindo, capacidade do elevador, e quantas pessoas estão presentes
nele.

A classe deve também disponibilizar os seguintes métodos:

● Inicializa: que deve receber como parâmetros a capacidade do elevador e o total de andares no prédio (os elevadores sempre
começam no térreo e vazios);
● Entra: para acrescentar uma pessoa no elevador (só deve acrescentar se ainda houver espaço)
● Sai: para remover uma pessoa no elevador (só deve remover se houver alguém dentro dele)
● Sobe: para subir um andar (não deve subir se já estiver no último andar);
● Desce: para descer um andar (não deve descer se já estiver no térreo);
● Encapsular todos os atributos da classe (crie os métodos set e get).

package Numero_2;

public class Elevador {


private int nAtual, nTotal, nCapac, nPessoas;

//Classe principal
public Elevador(int nA, int nT, int nC, int nP) {
this.nAtual = nA;
this.nTotal = nT;
this.nCapac = nC;
this.nPessoas = nP;
}

public int getCapac() {


return this.nCapac;
}
public int getPessoas() {
return this.nPessoas;
}
public int getTotal() {
return this.nTotal;
}
public int getAtual() {
return this.nAtual;
}
public void setPes(int nPe)
{
this.nPessoas = nPe;
}
public void setnAtual(int nAtual) {
this.nAtual = nAtual;
}
public void setnTotal(int nTotal) {
this.nTotal = nTotal;
}
public void setnCapac(int nCapac) {
this.nCapac = nCapac;
}
public void setnPessoas(int nPessoas) {
this.nPessoas = nPessoas;
}
public void Inicializa(int nCap, int nTot){
this.nTotal = nTot;
this.nCapac = nCap;
}
public void Entra(){
this.nPessoas+=1;
}
public void Sai(){
this.nPessoas-=1;
}
public void Sobe(){
this.nAtual+=1;
}
public void Desce(){
this.nAtual-=1;
}
}

package Numero_2;

import java.util.Scanner;
import java.util.Formatter;

public class usaElevador {


public static void main(String[] args) {
int nOpc=-1, nTot, nCap, nAux;
Scanner sc = new Scanner(System.in);
//objeto Elevador
Elevador elev[]=new Elevador[1];

elev[0]=new Elevador(0,0,0,0);

//Inicializando (capacidade total e andares)


System.out.printf("Capacidade total? ");
nCap=sc.nextInt();
System.out.printf("Quantos andares? ");
nTot=sc.nextInt();
elev[0].Inicializa(nCap,nTot);

while(true){
pintaMenu();
nOpc = sc.nextInt();
if(nOpc==0)
break;

System.out.printf("\n\n");
switch (nOpc) {
case 1:
System.out.printf("Número de pessoas atualmente: ");
nAux=sc.nextInt();
if(nAux<elev[0].getCapac())
elev[0].setPes(nAux);
break;
case 2:
//só sobe se o andar atual for menor que o total
if (elev[0].getAtual()<elev[0].getTotal())
elev[0].Sobe();
break;
case 3:
//só desce se o andar atual for maior que o terreo
if (elev[0].getAtual()>0)
elev[0].Desce();
break;
case 4:
//só entra, se não tiver atingido a capacidade
if (elev[0].getPessoas()<elev[0].getCapac())
elev[0].Entra();
break;
case 5:
//só sai, se houverem pessoas (>0)
if (elev[0].getPessoas()>0)
elev[0].Sai();
break;
case 6:
System.out.printf("Quantidade de Pessoas: %d\n",elev[0].getPessoas());
System.out.printf("Capacidade Suportada: %d\n",elev[0].getCapac());
System.out.printf("Andar Atual: %d\n",elev[0].getAtual());
System.out.printf("Quantidade de Andares: %d\n",elev[0].getTotal());
//espera 2 segundos
try { Thread.sleep (2000); }
catch (InterruptedException ex) {}
break;
default:
System.out.printf("\n --> Valor Incorreto <--");
break;
}
}
System.out.printf("\n\nPrograma Finalizado!\n\n");
}

private static void pintaMenu(){


System.out.printf("\n\n > Menu ");
System.out.printf("\n 1- Numero de pessoas ");
System.out.printf("\n 2- Sobe de Andar ");
System.out.printf("\n 3- Desce de Andar ");
System.out.printf("\n 4- Entra Pessoa ");
System.out.printf("\n 5- Sai Pessoa ");
System.out.printf("\n 6- Mostrar dados ");
System.out.printf("\n 0- Sair ");
System.out.printf("\n > Resposta: ");
}
}

[COLE OS PRINTS AQUI]

3. (1,5) Fazer um programa para ler o nome de um aluno e as três notas que ele obteve nos três trimestres do ano (primeiro trimestre vale
30, o segundo e o terceiro valem 35 cada). Ao final, mostrar qual a nota final do aluno no ano. Dizer também se o aluno está aprovado
(PASS) ou não (FAILED)e, em caso negativo, quantos pontos faltam para o aluno obter o mínimo para ser aprovado (que 60% das notas).
Você deve criar uma classe Studant para resolver este problema.

[COLE OS PRINTS AQUI]


package Numero_3;

public class Student {


public String nome;
public double nota1, nota2, nota3;
public double NotaFinal() {

return nota1 + nota2 + nota3;


}

public boolean Aprovado() {


if (NotaFinal() >= 60.0) {
return true;
} else {
return false;
}
}

public double NotaRestante() {


if (Aprovado()) {
return 0.0;
} else {
return 60.0 - NotaFinal();
}
}
}

package Numero_3;

import java.util.Scanner;

public class Program {


public static void main(String[] args) {

Scanner leia = new Scanner(System.in);


Student aluno = new Student();

System.out.println("Nome do aluno: ");


aluno.nome = leia.next();

do {
System.out.println("Digite a nota do primeiro trimestre: ");
aluno.nota1 = leia.nextInt();
if (aluno.nota1 < 0 || aluno.nota1 > 30) {
System.out.println("Digite uma nota entre 0 e 30.");
}
} while (aluno.nota1 < 0 || aluno.nota1 > 30);

do {
System.out.println("Digite a nota do segundo trimestre: ");
aluno.nota2 = leia.nextInt();
if (aluno.nota2 < 0 || aluno.nota2 > 35) {
System.out.println("Digite uma nota entre 0 e 35.");
}
} while (aluno.nota2 < 0 || aluno.nota2 > 35);

do {
System.out.println("Digite a nota do terceiro trimestre: ");
aluno.nota3 = leia.nextInt();
if (aluno.nota3 < 0 || aluno.nota3 > 35) {
System.out.println("Digite uma nota entre 0 e 35.");
}
} while (aluno.nota3 < 0 || aluno.nota3 > 35);

System.out.println("Nota final: " + aluno.NotaFinal());


if (aluno.Aprovado()) {
System.out.println("APROVADO");
} else {
System.out.println("REPROVADO");
System.out.println("FALTARAM " + aluno.NotaRestante() + " PONTOS");
}

}
}

4. (2,0) Você aprendeu nessa disciplina os conceitos sobre listas e arranjos. Um cliente deseja construir um sistema para manter um registro
de artistas musicais os quais poderão ser consultadas pelo sistema. O sistema também deve permitir a busca de artistas por nome. O
sistema também deve ser capaz de exibir os artistas cadastrados. Use a criatividade para imprimir os dados no console, crie métodos para
isso e imprima um menu para que o usuário possa cadastrar o artista, visualizar artista, ver quantidade de artistas, apagar todos os
artistas, ver total de artistas e seus álbuns.

[COLE OS PRINTS AQUI]


package Numero_4;

public class Artistas {


private String nome;
private int quantidade;

public String getNome() {

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

public int getQuantidade() {


return quantidade;
}

public void setQuantidade(int quantidade) {


this.quantidade = quantidade;
}

public int calcularTotal() {


return this.quantidade;
}

public String toString() {


return "\nArtista " + this.nome + " possui " + this.quantidade + " álbun(s)";
}

package Numero_4;

import java.util.ArrayList;

public class Lista {


private ArrayList<Artistas> lista;

public Lista() {
lista = new ArrayList<Artistas>();
}

public ArrayList<Artistas> getLista() {


return lista;
}

public void setLista(ArrayList<Artistas> lista) {


this.lista = lista;
}

public String toString() {


return "Artistas cadastrados: " + lista;
}

public void adicionarArtista(Artistas a1) {


this.lista.add(a1);
}

public void apagarTudo() {


this.lista.clear();
}

public int obterQuantidadeDeArtistas() {


return this.lista.size();
}

public int calcularTotalDeArtistas() {


int soma = 0;
for (int i = 0; i < this.lista.size(); i++) {
soma = soma + this.lista.get(i).calcularTotal();
}
return soma;
}
}

package Numero_4;

import java.util.Scanner;

public class Program {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

Lista l1 = new Lista();

int op;

do {
System.out.println("1 - Cadastrar artista");
System.out.println("2 - Visualizar artistas");
System.out.println("3 - Ver quantidade de artistas cadastrados");
System.out.println("4 - Apagar todos os artistas");
System.out.println("5 - Ver total de álbuns cadastrados");
System.out.println("0 - Sair");
op = sc.nextInt();
switch (op) {
case 1:
Artistas a1 = new Artistas();
System.out.println("Digite o nome do Artista: ");
sc.nextLine();
a1.setNome(sc.nextLine());
do {
System.out.println("Digite a quantidade de álbuns: ");
a1.setQuantidade(sc.nextInt());
if (a1.getQuantidade() <= 0) {
System.out.println("Erro! Quantidade inválida.");
}
} while (a1.getQuantidade() <= 0);

l1.adicionarArtista(a1);
System.out.println("Cadastrado com sucesso!");
break;

case 2:
if (l1.getLista().isEmpty()) {
System.out.println("Não há artistas");
} else {
System.out.println(l1);
}
break;

case 3:
System.out.println("Total de artistas cadastrados: " +
l1.obterQuantidadeDeArtistas());
break;
case 4:
if (l1.getLista().isEmpty()) {
System.out.println("Nãoo há artistas para excluir.");
} else {
int confirma;
System.out.println("Tem certeza que deseja EXLUIR TUDO?\n1-SIM\n2-
NAO");
confirma = sc.nextInt();
if (confirma == 1) {
l1.apagarTudo();
System.out.println("Artistas excluidos com sucesso");
} else {
System.out.println("Opcão cancelada.");
}
}
break;

case 5:
System.out.println("Total de álbuns cadastrados " +
l1.calcularTotalDeArtistas());
break;

case 0:
System.out.println("Sistema encerrado.");
break;
default:
System.out.println("Opcão inválida.");
}
} while (op != 0);
}
}

5. (2,0) Implemente um algoritmo utilizando o paradigma orientado a objetos testando e apresentando


Visibilidade e Ocultamento de Informação: public e private.
Observe o UML abaixo e baseado nele construía o algoritmo na linguagem Java. Print a tela do computador
com o desenvolvimento do código.

package Numero_5;

public class Editora {


private Long id;
private String nome;
private String email;

public Long getId() {


return id;
}

public void setId(Long id) {


this.id = id;
}

public String getNome() {


return nome;
}

public void setNome(String nome) {


this.nome = nome;
}

public String getEmail() {


return email;
}

public void setEmail(String email) {


this.email = email;
}

@Override
public String toString() {
return "Editora: " +
"id=" + id +
", nome='" + nome + '\'' +
", email='" + email + '\'';
}
}

package Numero_5;

public class Livro {


private String titulo;
private String autor;
private int idEditora;
private int ano;

public String getTitulo() {


return titulo;
}

public void setTitulo(String titulo) {


this.titulo = titulo;
}

public String getAutor() {


return autor;
}

public void setAutor(String autor) {


this.autor = autor;
}

public int getIdEditora() {


return idEditora;
}

public void setIdEditora(int idEditora) {


this.idEditora = idEditora;
}

public int getAno() {


return ano;
}

public void setAno(int ano) {


this.ano = ano;
}

@Override
public String toString() {
return "Livro: " +
"titulo='" + titulo + '\'' +
", autor='" + autor + '\'' +
", idEditora=" + idEditora;
}
}
package Numero_5;

import java.util.Scanner;

public class Main {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Livro livro = new Livro();
Editora editora = new Editora();

System.out.println("Digite a ID da editora:");
editora.setId(sc.nextLong());

System.out.println("Digite o nome da editora");


sc.nextLine();
editora.setNome(sc.nextLine());

System.out.println("Digite o e-mail:");
editora.setEmail(sc.nextLine());

System.out.println("Digite o título do livro:");


livro.setTitulo(sc.nextLine());

System.out.println("Digite o autor do livro:");


livro.setAutor(sc.nextLine());

System.out.println("Digite o a IdEditora:");
livro.setIdEditora(sc.nextInt());

System.out.println("Digite o ano do livro:");


livro.setAno(sc.nextInt());

System.out.println(livro.toString());
System.out.println(editora.toString());

}
}

[COLE OS PRINTS AQUI]

6. (2,0) Crie um cadastro que tenha uma classe para representar uma pessoa, com os atributos privados nome, idade, sexo e endereço.
Crie os métodos públicos necessários para sets e gets e também um método para imprimir os dados das pessoas cadastradas. Para que
o cadastro seja efetivo, você deverá cria uma classe endereço conforme o diagrama abaixo. Observe bem o diagrama e crie o código em
Java.

[COLE OS PRINTS AQUI]

package Numero_6;

public class Endereco {


private String logradouro;
private String complemento;
private int numero;
private String cep;

public String getLogradouro() {


return logradouro;
}

public void setLogradouro(String logradouro) {


this.logradouro = logradouro;
}

public String getComplemento() {


return complemento;
}

public void setComplemento(String complemento) {


this.complemento = complemento;
}

public int getNumero() {


return numero;
}

public void setNumero(int numero) {


this.numero = numero;
}

public String getCep() {


return cep;
}

public void setCep(String cep) {


this.cep = cep;
}
@Override
public String toString() {
return "Endereço:" +
"logradouro='" + logradouro + '\'' +
", complemento='" + complemento + '\'' +
", numero=" + numero +
", cep='" + cep + '\''
;
}

package Numero_6;

public class Pessoa {

Endereco endereco = new Endereco();

private String nome;


private int idade;
private char sexo;
private Endereco end;

public Pessoa() {
}

public Pessoa(String nome, int idade, char sexo, Endereco end) {


this.nome = nome;
this.idade = idade;
this.sexo = sexo;
this.end = end;
}

public String getNome() {


return nome;
}

public void setNome(String nome) {


this.nome = nome;
}

public int getIdade() {


return idade;
}

public void setIdade(int idade) {


this.idade = idade;
}

public char getSexo() {


return sexo;
}

public void setSexo(char sexo) {


this.sexo = sexo;
}

public Endereco getEnd() {


return endereco;
}
public void setEnd(Endereco end) {
this.end = endereco;
}

@Override
public String toString() {
return
"Nome:" + nome + '\'' +
", Idade:" + idade +
", Sexo:" + sexo;
}
}

package Numero_6;

import java.util.Scanner;

public class Program {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Pessoa pessoa = new Pessoa();
Endereco end = new Endereco();

System.out.println("Digite seu nome:");


pessoa.setNome(sc.nextLine());

System.out.println("Digite sua idade:");


pessoa.setIdade(sc.nextInt());

System.out.println("Digite 'F' para o sexo Feminino ou 'M' para o sexo masculino:");


pessoa.setSexo(sc.next().charAt(0));

System.out.println("Logradouro:");
sc.nextLine();
end.setLogradouro(sc.nextLine());

System.out.println("Complemento:");
end.setComplemento(sc.nextLine());

System.out.println("Número:");
end.setNumero(sc.nextInt());

System.out.println("CEP:");
sc.nextLine();
end.setCep(sc.nextLine());

System.out.println(pessoa.toString());
System.out.println(end.toString());
}
}

Você também pode gostar