Criar uma Agenda Eletrônica| Questões Resolvidas de Linguagem C
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;
}
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.