4ª LISTA DE EXERCÍCIOS PROJETO DE CLASSES Disciplina: PC-II



Documentos relacionados
2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

Exercícios de Revisão Java Básico

Herança. Algoritmos e Programação II. Aula 5 Herança

Linguagem de Programação I. Orientação a Objetos em Java

2ª Lista de Exercícios Orientação a Objetos

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

3 Classes e instanciação de objectos (em Java)

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

Computação II Orientação a Objetos

Trabalho 3: Agenda de Tarefas

Vetores. Professor Dr Francisco Isidro Massettto

Algoritmos e Programação II. Sobrecarga

Programação Orientada a Objeto

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Programação Visual TIC - 3PA. Lista de Exercícios 02

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

Curso Java Starter. 1

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Instruções de controle: Parte by Pearson Education do Brasil

Implementando uma Classe e Criando Objetos a partir dela

Variáveis, Expressões, Atribuição, Matrizes, Comandos de Desvio

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Exemplo de Modelagem Orientada a Objetos

Orientação a Objetos

Capítulo 13. Encapsulamento. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Criando campanhas e gerando pedidos de venda com o Telemarketing

Configurando a emissão de boletos no sistema

Orientação a Objetos e a Linguagem Java

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Encapsulamento de Dados

Ficheiros binários 1. Ficheiros binários

Introdução a Java. Hélder Nunes

Análise de Programação

Este trabalho tem como objetivo praticar o uso de tipos abstratos de dados e estruturas do tipo Lista.

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4

Desenvolvimento Web TCC Turma A-1 /

Neste tópico, você aprenderá a criar facilmente um banco de dados para uma nova empresa e a definir configurações comuns de uma empresa no SAP

Estrutura de Dados Básica

2ª Lista de Exercícios

Roteiro 1: Dados, variáveis, operadores e precedência

Desenvolvimento OO com Java Orientação a objetos básica

Programação Orientada a Objetos (DPADF 0063)

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Java Como Programar, 8/E

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Lista de Exercícios da 3ª Unidade. ( Ponteiros, Alocação dinâmica, Arquivos, Estruturas de Dados)

Aula 3 Objeto atual com referencia THIS e Classes com Herança

Programação Orientada a Objetos - 3º semestre AULA 08 Prof. André Moraes

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

insfcanceof new public switch transient while byte continue extends for int null

Trabalho Prático 1 Revisão de Programação, Tipos Abstratos de Dados e Combinação de Alocação Estática e Dinâmica de Memória

Projeto e Desenvolvimento de Algoritmos

1. Herança. Sobrescrevem métodos - redefinem métodos herdados. Subclasse herda de uma superclasse

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

AS FUNÇÕES DO EXCEL NOME(P1;P2;P3)

Conversão de Tipos e Arrays

Capítulo 8. Introdução UML

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

INTRODUÇÃO À LINGUAGEM C++

Especificação do 3º Trabalho

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

JUROS SIMPLES. Onde: n é o número de períodos (number of periods) ou prazo em dias; i é o índice da taxa de juros (index) anual;

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Prof. Jhonatan Fernando

Programação Orientada a Objetos

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

UML: Diagrama de Casos de Uso, Diagrama de Classes

Prestação de Contas Eletrônica

Nome do Processo: Recebimento de produtos em consignação

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

OPENOFFICE PLANILHA EXERCÍCIOS

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Tipos agregados. Tipos estruturados

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Estatística no EXCEL

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

UML Diagramas Estruturais Classes

Mapeamento de memória e programação da IHM do controlador CP-WS41/8DO8DI4AO2AI2TAI

Planilha Eletrônica - Excel

2 Orientação a objetos na prática

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Operação de Computadores e Sistemas. Trabalho Terceiro Bimestre

Algoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da Secretaria Municipal de Saúde do Município de São Paulo

Estrutura Condicional em Java

Visual Basic.NET Programação Orientada a Objetos Lista de Exercícios

1. Importação das informações da carga transportada para CT-e, quando é informada a chave dos documentos (Pacote 3704).

Lista restrita onde as operações de inserção e retirada são feitas nas extremidades. Deque (fila de final duplo).

VERSÃO VERSÃO FINANCEIRO NEFRODATA ESTOQUE FINALIZAÇÃO: 10 JUN.

Implementação de Classe e Auto-Relacionamento em Java

Manual para Cedentes com Sistema Próprio e utilização do Correspondente Bradesco Impressão Local

Transcrição:

4ª LISTA DE EXERCÍCIOS PROJETO DE CLASSES Disciplina: PC-II Exercício 1: Construir uma Classe Horario cujo diagrama UML é dado na Figura 1.1. Horario(Horario H) Construtor que inicializa o campo hora com H.hora, o campo minuto com o valor contido em H.minuto e o campo segundo com o valor contido em H.segundo. Chama o método sethorario(). int gethora() que retorna o valor contido no campo hora. int getminuto() que retorna o valor contido no campo minuto. int getsegundo() que retorna o valor contido no campo segundo. sethorario(int h, int m, int s) que é chamado por todos os construtores para modificar os campos hora, minuto e segundo com os valores h, m e s, respectivamente. Estas modificações são realizadas através de chamadas aos métodos sethora(), setminuto() e setsegundo(), respectivamente. que modifica o valor do campo hora para o valor h. que modifica o valor do campo minuto para o valor m. que modifica o valor do campo segundo para o valor s. sethora(int h) setminuto(int m) setsegundo(int s) Tabela 1.1: s da classe Horario e suas descrições. Item (B): Implementar mais métodos tal como dado no detalhamento dos métodos dado na Tabela 1.. Figura 1.1: Campos e métodos da Classe Horario. Dado diagrama UML da Figura 1.1, pede-se: Item (A): Implementar os métodos tal como dado no detalhamento dos métodos dado na Tabela 1.1. Horario() Horario(int h) Horario(int h, int m) Horario(int h, int m, int s) Construtor sem parâmetros que inicializa os campos hora, minuto e segundo com o valor zero. Chama o método sethorario(). Construtor que inicializa o campo hora com o valor h e os demais com valor zero. Chama o método sethorario(). Construtor que inicializa o campo hora com o valor h e o campo minuto com o valor m. Chama o método sethorario(). Construtor que inicializa o campo hora com o valor h, o campo minuto com m e o campo segundo com s. Chama o método sethorario(). que realiza a soma de dois objetos da classe somarhoras(horario hora h1 e h e armazena o resultado em h1. A h) chamada ao método pode ser realizada através do comando: h1.somarhoras(h); Cuidado, o valor máximo de um horário é: 3:59:59. Se a soma for maior, mostrar uma mensagem apropriada e retornar 3:59:59. que realiza a soma de dois objetos da classe subtrairhoras(horario hora h1 e h e armazena o resultado em h1. A h) chamada ao método pode ser realizada através do comando: h1.subtrairhoras(h); Cuidado, o valor mínimo de um horário é: 00:00:00. Se a subtração for menor, mostrar uma mensagem apropriada e retornar 00:00:00. int numsegundos() que retorna o número de segundos contidos em um dado objeto da classe Horario. mostrarampm() que mostra o conteúdo dos campo segundo, minuto e hora em notação militar, ou seja, se a hora for 3:40:01 será mostrada, com este método, da seguinte forma: 11:40:01 PM. Se a hora for 11:40:01 (antes do meio-dia), então, será mostrada da seguinte forma: 11:40:01. Tabela 1.: Mais métodos da classe Horario e suas descrições. 1

Exercício : Construir uma classe Data cujos campos e métodos são dados na Figura.1. Exercício 3: Construir uma classe HistoricoChuvas cujo diagrama UML é dado na Figura 3.1 e métodos são descritos na Tabela 3.1. Figura 3.1: Diagrama UML da classe HistoricoChuvas. Figura.1: Campos e métodos da Classe Data. Para implementar os métodos da Figura.1 segue o detalhamento dos métodos dado na Tabela.1. Data(int d, int m, Construtor com três parâmetros inteiros d, m e a que int a) inicializam os campos dia, mês e ano, respectivamente, através do método setdata(). setdata(int d, int m, int a) avançar() voltar() boolean anobissexto() int diadomes() irparafrente(int irparatras(int responsável por modificar os campos dia, mes e ano com os valores d, m e a, respectivamente. Se os valores d, m e a não forem válidos, então, usar os valores 1, 1 e 1900, respectivamente. que deve avançar em 1 dia a data atual, mantendo os campos da classe em estado coerente. que reduz em 1 dia a data atual, mantendo os campos da classe em estado coerente. que retorna true se O campo ano contiver um ano tal que: (1) Seja divisível por 4, mas não por 100. () Seja divisível por 100 e 400. que retorna o número de dias do mês, considerando se o ano é bissexto ou não. que incrementa em n dias a data contida nos campos dia, mes e ano, mantendo estado coerente. que decrementa em n dias a data contida nos campos dia, mes e ano, mantendo estado coerente. Tabela.1: s da classe Data e suas descrições. HistoricoChuvas( ) Construtor sem parâmetros que pede ao usuário o número n de dados a serem inseridos no campo data e chama o método preencher. responsável por preencher os n elementos do campo (vetor) data. Para tanto, emprega um laço onde usa o método setdados e um método nextdouble de um objeto da classe Scanner. que tentar inserir o valor a na posição i do campo data desde que i seja um índice válido. Senão imprime uma mensagem de erro. que retorna o valor contido em data[i], desde que i seja um índice válido. Senão, imprime uma mensagem de erro e retorna o valor zero. que retorna o maior valor do histórico de chuvas armazenado em data. que retorna o menor valor do histórico de chuvas armazenado em data. que mostra todos os campos os elementos contidos no campo data, empregando um laço onde o método getdados é chamado. Tabela 3.1: s da classe HistoricoChuvas e suas descrições. preencher(int setdados(int i, a) getdados(int i) getdatamax( ) getdatamin( ) mostrar ( ) Pede-se ainda para construir uma classe TestaHistoricoChuvas com o intuito de se testar o emprego de um objeto da classe HistoricoChuvas. 3 4

Exercício 4: Deseja-se criar uma classe cujo diagrama UML é dado na Figura 4.1. Uma descrição dos métodos é dada na Tabela 4.1. Exercício 5: Deseja-se criar uma classe cujo diagrama UML é dado na Figura 5.1. Uma descrição dos métodos é dada na Tabela 5.1. Figura 5.1: Diagrama UML da classe Carro. ContaCorrente() Figura 4.1: Diagrama UML da classe ContaCorrente. ContaCorrente(String ContaCorrente(String n, s) Void setcontacorrente( String n, s) String getcontacorrente() Construtor sem parâmetros que inicializa os campos nome e saldo com os valores SemNome e 0.0, respectivamente, usando o método setcontacorrente. Construtor que inicializa o campo nome com n e o campo saldo com 0.0, usando setcontacorrente. Construtor que inicializa o campo nome com n e o campo saldo com s, usando setcontacorrente. que chama setnome e setsaldo para inicializar os campos nome e saldo com os valores n e s, respectivamente. que usa os métodos getnome e getconta para retornar uma String contendo o conteúdo dos campos nome e saldo no seguinte formato: <nome> seu saldo atual é de <saldo>. Void setnome(string que modifica o campo nome para n. setsaldo( s) que modifica o campo saldo para s. String getnome() que retorna o conteúdo do campo nome. getconta() que retorna o conteúdo do campo conta. fazerdeposito( d) que modifica o conteúdo do campo saldo para saldo + d (usar setsaldo). fazerretirada( r) que modifica o conteúdo do campo saldo para saldo d (usar setsaldo). Tabela 4.1: s da classe ContaCorrente e suas descrições. Carro() Construtor sem parâmetros que inicializa o campo velocidade com o valor 0.0, usando o método setcarro. Carro( Construtor que inicializa o campo velocidade com 0.0, usando setcarro. Void setcarro( que chama setvelocidade para inicializar o v) campo velocidade com o valor v. String getcarro() que usa getvelocidade e depois retorna uma String contendo o conteúdo do campo velocidade no seguinte formato: A velocidade atual do carro é de <velocidade>. setvelocidade( getvelocidade( ) acelerar( a) que modifica o campo velocidade para n, desde que n não seja negativa. que retorna o conteúdo do campo velocidade. que modifica o conteúdo do campo velocidade para velocidade + a (usar setvelocidade), mas desde que o valor de a seja maior ou igual a zero e menor que 0. Senão, imprime a mensagem Não foi possível acelerar e mantém o valor atual do campo velocidade. reduzir( r) que modifica o conteúdo do campo velocidade para velocidade r (usar setvelocidade), mas desde que o valor de r seja maior ou igual a zero e menor que 30. Senão, imprime a mensagem Não foi possível reduzir e mantém o valor atual do campo velocidade. Tabela 5.1: s da classe Carro e suas descrições. 5 6

Exercício 6: Deseja-se criar uma classe cujo diagrama UML é dado na Figura 6.1. Uma descrição dos métodos é dada na Tabela 6.1. duracaoligacao( d) Altera o campo preco para o valor contido no parâmetro d por meio do método setnumminutos. alterarpreco( Altera o campo preco para o valor contido no p) parâmetro d por meio do método setpreco. Tabela 6.1: s da classe Telefone e suas descrições. Exercício 7: Deseja-se criar uma classe cujo diagrama UML é dado na Figura 7.1. Uma descrição dos métodos é dada na Tabela 7.1. Figura 6.1: Diagrama UML da classe Telefone. Telefone() Telefone( Telefone( n, p) settelefone( n, p) String gettelefone() Void setnumminutos( setpreco( s) String getnumminutos() getpreco() Construtor sem parâmetros que inicializa os campos numminutos e preco com os valores 0.0 e 0.0, respectivamente, usando o método settelefone. Construtor que inicializa o campo numminutos com n e o campo preco com 0.0, usando settelefone. Construtor que inicializa o campo numminutos com n e o campo preco com p, usando settelefone. que chama setnome e setsaldo para inicializar os campos numminutos e preco com os valores n e p, respectivamente. que usa os métodos getnumminutos e getpreco para retornar uma String contendo o conteúdo dos campos numminutos e preco no seguinte formato: Total de minutos <numminutos> a um preço de <preco>. que modifica o campo numminutos para n, desde que n seja maior ou igual a zero, senão imprime uma mensagem de erro e mantém o valor atual de numminutos. que modifica o preco para s desde que s seja maior ou igual a zero, senão imprime uma mensagem de erro e mantém o valor atual de preço. que retorna o conteúdo do campo numminutos. que retorna o conteúdo do campo preco. Figura 7.1: Diagrama UML da classe Complex. Complex() Construtor sem parâmetros que inicializa os campos x e y com os valores 0.0 e 0.0, respectivamente, usando o método setcomplex. Complex( a) Construtor que inicializa o campo x com a e o campo y com 0.0, usando setcomplex. Complex( a, Construtor que inicializa o campo x com a e o campo y b) com b, usando setcomplex. setcomplex( que chama setx e sety para inicializar os a, b) campos x e y com os valores a e b, respectivamente. String getcomplex() que usa os métodos getx e gety para retornar uma String contendo o conteúdo dos campos x e y no seguinte formato: z=<x>+<y>* i. setx( que modifica o campo x para n. sety( s) que modifica o campo y para s. String getx() que retorna o conteúdo do campo x. gety() que retorna o conteúdo do campo y. 7 8

somar(complex z) mutiplicar(complex z) Realiza a soma de dois números complexos (objetos): o objeto do parâmetro de entrada e o objeto que invocou o método. O resultado é armazenado nos campos do objeto que invocou o método. Realiza a multiplicação de dois números complexos (objetos) e armazena o resultado no objeto que invocou o método. Para tanto, use a seguinte Equação: z = z z x, y ) = ( x x y y, x y + x ) 3 1 ( 3 3 1 1 1 y1 Tabela 7.1: s da classe Complex e suas descrições. Exercício 8: Deseja-se criar uma classe cujo diagrama UML é dado na Figura 8.1. Uma descrição dos métodos é dada na Tabela 8.1. sety( que modifica o campo y para s. s) String getx() que retorna o conteúdo do campo x. gety() que retorna o conteúdo do campo y. somar(ponto p) distancia(ponto p) Realiza a soma de dois pontos (objetos): o objeto do parâmetro de entrada e o objeto que invocou o método. O resultado é armazenado nos campos do objeto que invocou o método. Calcular a distância entre dois pontos (objetos) e depois retorna o resultado. Para tanto, use a seguinte Equação: d = x1) ( y ) ( x + y Tabela 8.1: s da classe Ponto e suas descrições. 1 Figura 8.1: Diagrama UML da classe Ponto. Ponto() Ponto( a) Ponto( a, b) setponto( a, b) String getponto() setx( Construtor sem parâmetros que inicializa os campos x e y com os valores 0.0 e 0.0, respectivamente, usando o método setponto. Construtor que inicializa o campo x com a e o campo y com 0.0, usando setponto. Construtor que inicializa o campo x com a e o campo y com b, usando setponto. que chama setx e sety para inicializar os campos x e y com os valores a e b, respectivamente. que usa os métodos getx e gety para retornar uma String contendo o conteúdo dos campos x e y no seguinte formato: (x, y) = (<x>, <y>). que modifica o campo x para n. 9 10