Ir ao conteúdo
  • Cadastre-se

Montagem de uma Agenda em Java


Posts recomendados

Boa noite a todos! Sou novo no fórum e principiante em programação em java.

Tenho uma bucha em mãos que meu professor passou e não consigo resolver:

Montagem de uma agenda utilizando apenas classes, JOptionPane, encapsulamento e arraylist. Segue a descrição:

Criar uma agenda para organizar todos os contatos de seus amigos.
Na agenda deverá ser possível armazenar o nome do amigo, o endereço (Rua, numero, complemento, cidade, estado e CEP), celular, e-­‐mail e data de nascimento (dia, mês e ano – Podendo utilizar a Classe GregorianCalendar ou Date).
Para desenvolver a Agenda de Amigos, criar as seguintes classes:

Classe Amigo

Especificar os atributos de um amigo, definir métodos de acesso (getters/setters) para cada atributo, construtores e implementar os seguintes métodos:

• imprimir():
método que retorna uma string contendo todos os dados de um amigo.

• calcularDiasParaAniversariar():
método que retorna um inteiro informando quantos dias faltam para um amigo fazer aniversário ou quantos dia já se passaram do aniversário do amigo.
Exemplo1: se o amigo Paulo fizer aniversário em 20/Outubro/1985 e a data atual for 29/Outubro/2012, o método deve retornar uma string: “Passaram 9 dias do aniversário de Paulo”
Exemplo2: se a amiga Maria fizer aniversário em 05/Novembro/1986 e a data atual for 29/Outubro/2012, o método deve retornar uma string: “Faltam 7 dias para o aniversário de Maria”

Validações a serem feitas para a data de nascimento:

• dia: permitir valores entre 1 e 31.
• mês: permitir valores entre 1 e 12
• ano: valor não pode ser igual ou maior que o ano atual.

Classe GerenciarAmigo:

Especificar a classe GerenciarAmigo para realizar a gestão de uma coleção de Amigos. Esta classe terá um ArrayList como único atributo. Os métodos que a classe deverá implementar são:

• cadastrarAmigo(): método para realizar o cadastro de um objeto da classe Amigo no ArrayList. O usuário deverá ter uma mensagem como de resposta: “Amigo cadastrado com Sucesso!”. O desenvolvedor é quem decidirá se o método retornará um valor ou não;

• buscarAmigoPeloNome(): método que recebe como parâmetro uma string contendo o nome de um amigo para realizar uma pesquisa no ArrayList e caso encontre o Amigo, retornar uma string contendo todos os dados do amigo cadastrado e quantos dias fazem/faltam para o amigo aniversariar;

• aniversariarNoMes(): método que recebe como parâmetro um inteiro contendo um mês do ano (entre 1 e 12) e retorna uma string contendo o nome de todos os amigos cadastrados que fazem aniversário no mês informado. Caso o mês informado esteja fora do intervalo válido, informar o usuário;

• listarTodosAmigos(): método que imprime todos os dados de todos os amigos cadastrados no ArrayList.

Classe Agenda

A classe Agenda irá implementar o método main().
Nesta classe criar objetos das Classes Amigo, Endereco e GerenciarAmigo (caso necessário).

Definir um menu de opções como segue:

Menu de Opções:

1 - Cadastrar Amigo na Agenda
2 - Procurar Amigo pelo nome
3 - Aniversariantes do mês
4 - Listar todos os Amigos
5 - Sair da Agenda

Escolha uma opção

ok | sair

 

A quem puder ajudar, valeu.

 

Link para o comentário
Compartilhar em outros sites

Pense nisso como um algoritmo, só que nesse você usará conceitos de orientação de objetos como abstração de classes. Você realmente tem dominio dos recursos que o proessor pediu(criação classes, criação de arrays...)? Mais uma coisa, você tem que postar seu programa

mesmo que errado pra termos uma noção em que devemos te ajudar e quais são suas dificuldades!

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

@Davi Fonseca Cara, ele postou isso aqui em 2015 e nunca mais voltou. Ele tem apenas esse post aqui no fórum.

 

Vai tentando fazer. Qualquer dúvida ou se você travou no desenvolvimento, posta seu código aqui que vamos dando dicas de como resolver. O objetivo aqui é você aprender e não ganhar o código pronto.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

1 hora atrás, TwistedSoul disse:

@Davi Fonseca Cara, ele postou isso aqui em 2015 e nunca mais voltou. Ele tem apenas esse post aqui no fórum.

 

Vai tentando fazer. Qualquer dúvida ou se você travou no desenvolvimento, posta seu código aqui que vamos dando dicas de como resolver. O objetivo aqui é você aprender e não ganhar o código pronto.

@TwistedSoul Certo, vou tentar desenvolver algo e posto aqui.

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

Classe Amigo

 

package classes;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;


public class Amigo {
    private String nome;
    private Endereco endereco;
    private String telefone;
    private String email;
    private int diaNascimento;
    private int mesNascimento;
    private int anoNascimento;
    
    public Amigo(){
        
    }
       
    public Amigo(String nome, String email, String telefone, int diaNascimento,
            int mesNascimento, int anoNascimento, Endereco endereco){
        
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
        this.email = email;
        this.diaNascimento = diaNascimento;
        this.mesNascimento = mesNascimento;
        this.anoNascimento = anoNascimento; 
    }
    
    //GETTERS E SETTERS DAS INFORMAÇÕES BÁSICAS
    public String getNome(){
        return nome;
    }
         
    public void setNome(String nome){
        this.nome = nome;
    }
    
    public Endereco getEndereco(){
        return endereco;
    }
    public void setEndereco(Endereco endereco){
        this.endereco = endereco;
    }
    
    public String getTelefone(){
        return telefone;
    }
    public void setTelefone(String telefone){
        this.telefone = telefone;
    }        
   
    public String getEmail(){
        return email;
    }
    public void setEmail(String email){
        this.email  = email;
    }
  
    //GETTERS E SETTER PARA DATAS 
    public int getDiaNascimento(){
        return diaNascimento;
    }
    public void setDiaNascimento(int diaNascimento){
        this.diaNascimento = diaNascimento;
    }
    
    public int getMesNascimento(){
        return mesNascimento;
    }
    public void setMesNascimento(int mesNascimento){
        this.mesNascimento = mesNascimento;
    }
    
    public int getAnoNascimento(){
        return anoNascimento;
    }
    public void setAnoNascimento(int anoNascimento){
        this.anoNascimento = anoNascimento;
    }
    
    
        //METHOD CALCULATING HOW MANY DAYS MISS FOR THE BIRTHDAY
        public String calcularDiasParaAniversariar(String nome){
        String mesNascimento2 = String.format("%02d",mesNascimento);
        String diaNascimento2 = String.format("%02d", diaNascimento);
        String nasceu  = diaNascimento2+ "/"+mesNascimento2+"/"+anoNascimento;
        
        
        //Pega a data atual
        LocalDate atual = LocalDate.now();
       //Formatação de dados
       DateTimeFormatter formatada = DateTimeFormatter.ofPattern("dd/MM/yyyy");
       LocalDate aniversario = LocalDate.parse(nasceu,formatada);
       
       //Pega o dia atual e o dia do aniversario em relação ao inicio do ano
       int diasNascimento=aniversario.getDayOfYear();
       int diasAtual = atual.getDayOfYear();
       
       //calcula o periodo entre os dia do aniversario com os dias atual
       int dias = diasNascimento-diasAtual;
       if(dias>0){
           return "Faltam "+dias+ "dias para seu aniversário";       
                }else{
                      return  "Passaram " +dias*-1+ "dias do seu aniversário";
               } 
             }
        
        //Metodo que imprime todas as informações do amigo
        public String imprimir(){
            //Formata os meses para que fiquem sempre com dois digitos
            String mesNascimento2=String.format("%02d", mesNascimento);
            String diaNascimento2=String.format("&02d", diaNascimento);
            
            String saida = 
                    "Nome: "+nome+
                    "\nE-mail: "+email+
                    "\nTelefone: "+telefone+
                    "\nAniversario: "+diaNascimento2+"/"+mesNascimento2+"/"+anoNascimento+
                    "\n"+endereco.imprimir()+"\n";
            return saida;
                    
            
        }
        
}
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...