1
I’m trying to develop an agenda in C. I would like to know how to store contacts from the agenda I created in an array and list them?
I’m also racking my brain when it comes to listing a phone number... (Follows print)
PLUS I would like tips to improve my code and add new features.
PLUS I would like tips to improve my code and add new features.
Follows the code:
#include <string.h>
#include <conio.h>
#include <stdio.h>
struct agenda {
int cod;
char nome[40];
int tel;
int vazio; // VAZIO = 0 e DISPONÍVEL = 1
} registros[100];
void cadastrar(int cod, int pos);
int verifica_pos();
int verifica_cod(int cod);
void consultar();
void excluir();
void zerar();
int main() {
zerar();
int op=0, retorno, codaux, posicao;
while(op!=4){
printf("************ AGENDA ************\n\n\n");
printf(">>> MENU <<<\n\n");
printf("1 - CADASTRAR\n");
printf("2 - CONSULTAR\n");
printf("3 - EXCLUIR\n");
printf("4 - SAIR\n\n");
printf("OPCAO: ");
scanf("%d", &op);
fflush(stdin);
switch(op){
case 1: { //CADASTRAR
posicao = verifica_pos();
if (posicao != -1){
printf("\nEntre com o codigo desejado: ");
scanf("%d", &codaux);
fflush(stdin);
retorno=verifica_cod(codaux);
if(retorno==1)
cadastrar(codaux,posicao);
else
printf("\nCodigo ja existente!");
}
else
printf("\nA agenda esta cheia!");
break;
}
case 2: { //CONSULTAR
consultar();
break;
}
case 3: {
excluir();
break;
}
case 4: {
printf("\n\n TCHAU!!");
break;
}
}
}
getch();
}
void cadastrar(int cod, int pos){
pos = verifica_pos();
registros[pos].cod = cod;
printf("\nNOME: ");
fgets(registros[pos].nome, 40, stdin);
printf("\nTelefone: ");
scanf("%d",®istros[pos].tel);
registros[pos].vazio = 1;
printf("\nCadastro Realizado com Sucesso!\n\n");
}
int verifica_pos(){
int cont=0;
while(cont<=100){
if(registros[cont].vazio==0)
return(cont);
cont++;
}
return(-1);
}
int verifica_cod(int cod){
int cont=0;
while(cont<=100){
if(registros[cont].cod == cod)
return(0);
cont++;
}
return(1);
}
void consultar(){
int cont=0, cod;
printf("\nEntre com o codigo: ");
scanf("%d", &cod);
while(cont<=100){
if(registros[cont].cod == cod){
if(registros[cont].vazio == 1){
printf("\nNome: %s", registros[cont].nome);
printf("\nTelefone: %d\n\n", registros[cont].tel);
break;
}
}
cont++;
if(cont>100)
printf("\nCodigo nao encontrado!\n\n");
}
}
void excluir(){
int cod, cont=0;
printf("\nEntre com o codigo do registro que deseja excluir\n");
scanf("%d",&cod);
while(cont<=100){
if(registros[cont].cod == cod)
if(registros[cont].vazio == 1){
registros[cont].vazio = 0;
printf("\nExclusao realizada com sucesso!\n");
break;
}
cont++;
if(cont>100)
printf("\nCodigo nao encontrado.\n");
}
}
void zerar(){
int cont;
for(cont=0; cont<=100; cont++){
registros[cont].vazio=0;
}
}
Thanks for the tips, Lucas! I hope here I have the luck to meet more people like you. :)
– EDU