Criar uma Agenda Eletrônica| Questões Resolvidas de Linguagem C

izasminizasmin
4 min read

Considerando as informações necessárias criar uma AGENDA ELETRÔNICA. Considere a possibilidade de alterar , cadastrar e consultar a agenda.

Ingredientes:

1. Estrutura de dados para armazenar os contatos da agenda (pode ser uma matriz, vetor ou lista).

2. Variáveis auxiliares para controlar o número de contatos cadastrados e o índice do contato sendo alterado/consultado.

3. Funções para cadastrar, alterar e consultar contatos na agenda.

4. Um loop principal para exibir um menu de opções e interagir com o usuário.

Forma de Preparo:

1. Definir a estrutura de dados para armazenar as informações de um contato, como nome, telefone, email, etc.

2. Criar uma variável ou constante para definir o tamanho máximo da agenda (por exemplo, MAX_CONTATOS).

3. Inicializar uma variável contador para controlar o número de contatos cadastrados.

4. Criar um vetor ou matriz de contatos com o tamanho MAX_CONTATOS.

5. Implementar uma função para cadastrar um novo contato na agenda:

  • Verificar se ainda há espaço disponível na agenda.

  • Solicitar as informações do novo contato ao usuário.

  • Armazenar as informações na próxima posição livre do vetor/matriz de contatos.

  • Incrementar o contador de contatos cadastrados.

6. Implementar uma função para alterar um contato existente na agenda:

  • Solicitar ao usuário o índice ou outra informação para identificar o contato a ser alterado.

  • Verificar se o índice ou identificação é válido.

  • Solicitar as novas informações do contato ao usuário.

  • Atualizar as informações do contato na posição correspondente do vetor/matriz de contatos.

7. Implementar uma função para consultar um contato na agenda:

  • Solicitar ao usuário o índice ou outra informação para identificar o contato a ser consultado.

  • Verificar se o índice ou identificação é válido.

  • Exibir as informações do contato correspondente na posição do vetor/matriz de contatos.

8. Criar um loop principal para exibir um menu de opções ao usuário:

  • Exibir as opções disponíveis (cadastrar, alterar, consultar, sair, etc.).

  • Solicitar a escolha do usuário.

  • Executar a função correspondente à opção escolhida.

  • Repetir o loop até que o usuário escolha sair.

9. Ao finalizar o programa, liberar qualquer memória alocada dinamicamente e encerrar a execução.

Essas são as principais ideias para criar uma agenda eletrônica. O código final dependerá da linguagem de programação escolhida, mas seguindo esses passos, você terá uma estrutura básica para implementar a agenda eletrônica.

#include <stdio.h>
#include <stdlib.h>

#define MAX_CONTATOS 100

// Definição da estrutura de dados para armazenar informações de um contato
struct Contato {
    char nome[50];
    char telefone[15];
    char email[50];
};

// Função para cadastrar um novo contato na agenda
void cadastrarContato(struct Contato agenda[], int* contador) {
    if (*contador < MAX_CONTATOS) {
        printf("\n--- CADASTRAR CONTATO ---\n");

        printf("Nome: ");
        scanf("%s", agenda[*contador].nome);

        printf("Telefone: ");
        scanf("%s", agenda[*contador].telefone);

        printf("Email: ");
        scanf("%s", agenda[*contador].email);

        (*contador)++;
        printf("Contato cadastrado com sucesso!\n");
    } else {
        printf("A agenda está cheia. Impossível cadastrar novos contatos.\n");
    }
}

// Função para alterar um contato existente na agenda
void alterarContato(struct Contato agenda[], int contador) {
    if (contador > 0) {
        printf("\n--- ALTERAR CONTATO ---\n");

        int indice;
        printf("Digite o índice do contato a ser alterado (0 a %d): ", contador - 1);
        scanf("%d", &indice);

        if (indice >= 0 && indice < contador) {
            printf("Novo nome: ");
            scanf("%s", agenda[indice].nome);

            printf("Novo telefone: ");
            scanf("%s", agenda[indice].telefone);

            printf("Novo email: ");
            scanf("%s", agenda[indice].email);

            printf("Contato alterado com sucesso!\n");
        } else {
            printf("Índice inválido. Nenhum contato foi alterado.\n");
        }
    } else {
        printf("A agenda está vazia. Não há contatos para alterar.\n");
    }
}

// Função para consultar um contato na agenda
void consultarContato(struct Contato agenda[], int contador) {
    if (contador > 0) {
        printf("\n--- CONSULTAR CONTATO ---\n");

        int indice;
        printf("Digite o índice do contato a ser consultado (0 a %d): ", contador - 1);
        scanf("%d", &indice);

        if (indice >= 0 && indice < contador) {
            printf("Nome: %s\n", agenda[indice].nome);
            printf("Telefone: %s\n", agenda[indice].telefone);
            printf("Email: %s\n", agenda[indice].email);
        } else {
            printf("Índice inválido. Nenhum contato foi consultado.\n");
        }
    } else {
        printf("A agenda está vazia. Não há contatos para consultar.\n");
    }
}

int main() {
    struct Contato agenda[MAX_CONTATOS];  // Vetor de contatos
    int contador = 0;                     // Número de contatos cadastrados

    int opcao;
    int sair = 0;
    while (!sair) {
        // Exibir o menu de opções
        printf("\n--- AGENDA ELETRÔNICA ---\n");
        printf("1. Cadastrar contato\n");
        printf("2. Alterar contato\n");
        printf("3. Consultar contato\n");
        printf("4. Sair\n");
        printf("Escolha uma opção: ");
        scanf("%d", &opcao);

        if (opcao == 1) {
            cadastrarContato(agenda, &contador);
        } else if (opcao == 2) {
            alterarContato(agenda, contador);
        } else if (opcao == 3) {
            consultarContato(agenda, contador);
        } else if (opcao == 4) {
            printf("Encerrando o programa...\n");
            sair = 1;
        } else {
            printf("Opção inválida. Por favor, escolha uma opção válida.\n");
        }
    }

    return 0;
}
0
Subscribe to my newsletter

Read articles from izasmin directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

izasmin
izasmin

A paixão por moda e tecnologia me levaram ao mundo de ciência de dados, e venho aqui compartilhar o melhor dos 2 mundos.