Exercícios

Herança e Interface

1) Faça as classes para o programa que monta uma agenda de contatos (AgendaDeContatos) que possibilite o cadastro de 3 tipos de contatos com as seguintes características (para o dia 02/11):

a) Amigo: com nome, celular, email, idade

b) Empresa: com nome, celular, telefone fixo, email, endereco

c) Professor: nome, email, celular, site

Não precisa fazer o main, mas o programa deve criar uma interface IPessoa, deve utilizar herança com classe abstrata e a AgendaDeContatos deve ter uma coleção de IPessoa.

Obs: podem reutilizar o programa da agenda feito no exercicio anterior.

Criação de Classes

1) Faça um pequeno programa que cadastra pessoas numa lista de contatos. O programa deve, nesta ordem (para o dia 30/09):

a) Mostrar um menu ao usuário com as seguintes opções: Cadastrar Contato, Mostrar todos, Pesquisar por nome (semelhante, não idêntico), Pesquisar por cidade (semelhante, não idêntica)

Para tal, seu programa deve:

a) Criar uma classe Pessoa com nome, telefone, e-mail e endereço (cidade, bairro, rua e número)

b) Criar uma classe Endereço (cidade, bairro, rua e número) para ser usada como atributo da classe Pessoa

c) Criar uma classe separada com o main, executando o menu citado acima.

d) Usar a classe JOptionPane para interface com o usuário através de janelas de diálogo.

Coleções

1) Faça um analisador léxico (básico) de uma linguagem de programação escolhida por você. Para isso, voce deve (para o dia 23/09):

a) Cadastrar os símbolos e palavras reservadas da linguagem em coleções distintas

b) Processar dados da entrada padrão e a cada linha identificar se cada String lida pertence a uma das duas coleções. Se não pertencer, mostrar erro ao usuário com o número da respectiva linha.

c) Ao final, imprimir quantos erros no total foram encontrados

Obs: Não é para detectar todos os símbolos, mas o máximo que voce puder.

Dica: se quiser ler de um arquivo passado como argumento no Terminal (via a String args[]), declare seu Scanner assim:

Scanner sc = null;

try {

sc = new Scanner(new File(args[0]));

} catch (FileNotFoundException e) {

System.err.println("Arquivo " + args[0] + " não encontrado");

return;

}

Neste caso, para executar, digite: "java AnalisadorLexico Programa.java". Neste caso ele vai abrir e analisar o arquivo "Programa.java".

Sempre que for usar o array "args" é bom antes checar se o usuário realmente passou algum argumento. Assim, por exemplo:

//isso vem antes do Scanner

if(args.length == 0){

System.err.println("Voce precisa passar o nome de um arquivo como argumento.");

System.err.println("Exemplo: java AnalisadorLexico Arquivo.java");

return;

}

2) Este programa deve ser divido em três etapas (para o dia 16/09):

a) Primeiro ele deve receber do usuário uma inicial de um estado brasileiro (ex: PB, PE, RR, MT etc.) e retornar o nome do estado correspondente.

b) Faça a modificação no nome de um dos estados. Por exemplo, substitua "Paraiba" por "Paraíba" (com acento).

c) Ele deve imprimir a lista com o nome dos estados e depois, separadamente, o nome das siglas.

Dica 1: voce pode usar vários tipos de coleção para resolver este problema. Estude e use, por exemplo, duas ArrayList, ou utilize um HashMap. Sugiro voce tentar as duas implementações para aprender como elas funcionam.

Dica 2: para alterar o dado de um elemento da coleção, lembre-se de que cada objeto é uma referência (apontador) de memória.

Usando Objetos

1) Faça um programa que utilize a API p1.jar e apresente um menu ao usuário com as opções abaixo, sempre executando cada uma das operações. Faça o download da API para o programa poder funcionar e consulte o material "Usando Objetos" para saber como compilar e executar o programa usando a API. A documentação da API pode ser vista aqui! (para o dia 09/09).

- Criar uma conta (e adicioná-la à Agencia)

- Selecionar conta a ser usada (classe Agencia)

- Exibir saldo da conta selecionada

- Fazer um saque da conta selecionada

- Fazer um depósito na conta selecionada

- Sair (obs: o programa deve sempre salvar as informações da conta antes de sair do sistema - use classe Agência)

Introdução

1) Elabore um programa em Java que leia uma data no formato dd/mm/aaaa e exibir a data por extenso. (para o dia 24/08)

Exemplo:

Entrada: 23/08/2006

Saída: 23 de agosto de 2006