Preview only show first 10 pages with watermark. For full document please download

Lista1

Lista 1 de Programação orientada a objeto - Unifacs

   EMBED


Share

Transcript

  Estrutura de Dados com Orientação A Objetos 1 a  Lista de Exercícios Prof. Dr. Artur Henrique Kronbauer 1.   Crie uma classe conta bancária com os dados: nome do titular, número da conta e valor na conta corrente. Crie um construtor para setar os dados e métodos para imprimir o seu conteúdo, e fazer depósitos e retiradas do valor da conta. 2.   Crie uma classe com um método principal capaz de ler informações do teclado para instanciar um objeto da classe ContaBancaria e utilize através do objeto os métodos definidos na classe. 3.   Escreva uma classe em Java que simule uma calculadora bem simples. Essa classe deve ter como atributos duas variáveis double e um char. Deve possuir um construtor que recebe como parâmetro dois números e um caracter, correspondente a uma das operações básicas (+, -, *, /). Deve ter um método para calcular a operação desejada e um para imprimir o resultado. O programa deve considerar divisões por zero como sendo erros, e imprimir uma mensagem adequada. 4.   Escreva uma classe “EntradaDeCinema” com a seguinte estrutura (dados):    Data dataDoFilme    float horário    int sala    float valor E com as seguintes ações (métodos):    Construtor: com a finalidade de inicializar todos os atributos.    CalculaDesconto: que deve receber como parâmetro a data de nascimento do cliente (do tipo Data) e caso seja menor de 12 anos, deve ser dado um desconto de 50% no valor normal.    CalculaDesconto: que deve receber como parâmetro a data de nascimento do cliente (do tipo Data) e o número de sua carteira de estudante (do tipo int). Se o estudante tiver idade entre 12 e 15 anos, deve ser dado um desconto de 40%, de 16 a 20 um desconto de 30% e mais que 20 anos um desconto de 20% no valor normal.    CalculaDescontoHorário: esse método deve dar um desconto de 10% sobre o valor aferido após todas as outras opções de desconto, caso o horário do filme seja antes das 16 horas.    toString(): que deve imprimir todos os dados do ingresso. 5.   Desenvolva uma aplicação que leia os dados necessários para instanciar e imprimir o ingresso para clientes normais, menores de 12 anos e estudantes.  6.   Desenvolver um sistema de cadastro de Pessoas, Alunos e Professores. Classes envolvidas Classe Pessoa: Atributos: String nome, telefone, CPF; int idade; Métodos:  public pessoa(String nome, String telefone, String CPF, int idade)  public pessoa(String nome, int idade)  public String getNome()  public String getTelefone()  public String getCPF()  public int getIdade() Classe Aluno extends Pessoa: Atributos: int matricula; Métodos: public aluno(String nome, String telefone, String CPF, int idade, int matricula) Classe Professor extends Pessoa: Atributos: float salario; Métodos: public Unifacs(String nome, String telefone, String CPF, int idade, float salario)  public void calculaSalario() Classe Estrutura: a)   Responsável em ler todas as informações para o cadastramento de Pessoas, Alunos e Professores.  b)   Responsável em mostrar as informações existentes nos objetos instanciados. 7.   Crie uma aplicação gráfica que receba o nome e a senha de um usuário e notifique se a senha está certa ou errada. Para isso, crie um Label “Nome” e sua respectiva caixa de texto, um Label   “Senha” e sua respectiva caixa de texto. Um Botão “Entrar”. Se o nome e a senha estiverem corretas, o  programa deverá imprimir Senha correta caso contrário “Senha Errada”.  8.   Fazer um programa que leia 10 valores reais via teclado armazenando em um vetor. Em seguida, verifique se existe algum elemento maior do que 50 escrevendo na tela as posições onde estes se encontram no vetor. 9.   Escrever um programa que, para um dado vetor de inteiros A de 12 elementos, construa um vetor P formado pelos índices dos elementos pares de A. Assuma que existe 5 números pares no vetor A. Exemplo: Para A = (1, 3, 6, 7, 8, 4, 7, 9, 10, 16, 21, 25), o programa deve construir P = ( 2, 4, 5, 8, 9). 10.   Modifique a classe Nodo, para que o atributo info passe a ser uma String. Após modifique a classe ListaEncadeada para que se adapte a mudança realizada na classe Nodo. Permita que sejam incluídas Strings iguais na mesma lista encadeada e ordene as informações de acordo com a ordem de entrada na lista, ou seja, as inclusões devem ser realizadas sempre no final da lista. Dica: A classe Nodo e a classe ListaEncadeada foram escritas nos slides. Pessoa Aluno Professor Estrutura   11.   Modifique a classe Nodo, para que o atributo info passe a ser um char . Após modifique a classe ListaSimplesmenteEncadeada para que se adapte a mudança realizada na classe Nodo. Permita que sejam incluídos caracteres iguais na mesma lista encadeada. Escreva um programa que leia duas sequências de caracteres, equivalentes a duas palavras, armazenando-as em duas listas encadeadas distintas (cada letra deve ser um nodo da lista). Após, remova as vogais existentes nas duas listas e, em seguida, determine se elas têm as mesmas consoantes .  12.   Escreva um programa com um procedimento para inverter uma lista duplamente encadeada, de modo que o último elemento se torne o primeiro, o penúltimo o segundo e assim por diante. 13.   Escreva um programa que receba números inteiros em uma lista duplamente encadeada, não vazia, usando os seguintes critérios: a)   Para cada entrada N, coloque N no final da lista.  b)   Percorra a lista do final para o início apagando todos os nós que são maiores do que N. Obs: Implemente um menu de opções. 14.   Escreva um programa que leia o nome e a nota de n alunos, armazene em uma lista duplamente encadeada, mostre o nome e a nota do melhor aluno (varrendo a lista da direita para a esquerda), mostre o nome e a nota do pior aluno (varrendo a lista da esquerda para a direita) e a média geral. Obs: Pegue sempre o primeiro nome encontrado no caso de duas ou mais notas serem iguais. 15.   Escreva um programa para determinar se uma string de caracteres de entrada é da forma xCy , onde x é uma string consistindo das letras ‘A’ e ‘B’, e y é o inverso de x (isto é, se x = “ABABBA”, y deve equivaler a “ABBABA”). Em cada ponto, apenas o próximo caracter da string pod e ser lido. Obs: Implemente as strings em duas listas duplamente encadeadas. 16.   Modifique os métodos da classe ListaSimplesmenteEncadeada para que essa atenda as definições de uma lista circular simplesmente encadeada. Desenvolva uma aplicação para testar as novas rotinas. 17.   Modifique os métodos da classe ListaDuplamenteEncadeada para que essa atenda as definições de uma lista circular duplamente encadeada. Desenvolva uma aplicação para testar as novas rotinas. 18.   Escreva um programa que possa gerar números aleatórios e distribui-los em duas filas. As filas dos  pares e a fila dos ímpares. A geração de números aleatórios deve acabar quando for gerado um número primo. Posteriormente retire de forma intercalada os elementos das filas e mostre na tela. Obs: Use fila em estrutura estática. 19.   Escreva um programa que possa gerar números aleatórios e distribui-los em duas filas. As filas dos  pares e a fila dos ímpares. A geração de números aleatórios deve acabar quando for gerado um número primo. Posteriormente retire de forma intercalada os elementos das filas e mostre na tela. Obs: Use fila em estrutura dinâmica.