Programa só mostra a lista de objetos completa após o vetor ficar cheio.
#include<stdio.h>
//Inicio Structs
typedef struct{
int codigo;
char nomeContato[40];
char telefoneContato[40];
char emailContato[40];
} contato;
//Fim Structs
//Inicio Funções
void cabecalho(){
printf("-------- Agenda --------\n\n");
}
int menu(){
int opc = 0;
printf("\t1 - Novo Contato\n");
printf("\t2 - Agenda\n");
printf("\t0 - Sair\n");
scanf("%d", &opc);
return opc;
}
void zeraVetor(contato *vet){
int i;
for (i=0; i<5; i++){
vet[i].codigo = 0;
}
}
int retornaUltimaPosUsada(contato *vet){
int i = 0;
while(vet[i+1].codigo > 0){
i++;
}
return i;
}
void cadastraContato(contato *vet){
int i = 0;
i = retornaUltimaPosUsada(vet);
if (i == 6){
printf("Limite de Contatos Atingidos!\n");
system("PAUSE");
return;
}
printf("Codigo do contato: [%d]", i+1);
fflush(stdin);
vet[i+1].codigo = i+1;
printf("\nNome:");
gets(vet[i+1].nomeContato);
fflush(stdin);
fflush(stdin);
vet[i+1].codigo = i+1;
printf("\nTelefone:");
gets(vet[i+1].telefoneContato);
fflush(stdin);
vet[i+1].codigo = i+1;
printf("\nEmail:");
gets(vet[i+1].emailContato);
printf("\nCadastrado com Sucesso!\n");
fflush(stdin);
system("PAUSE");
//Inicio Cadastro
}
void listarContatos(contato *vet){
int i;
printf("Codigo Nome Telefone Email\n");
printf("___________________\n");
for ( i = 1; i<retornaUltimaPosUsada(vet); i++){
printf ("| %d | %s | %s | %s |\n", vet[i].codigo,
vet[i].nomeContato,
vet[i].telefoneContato,
vet[i].emailContato);
}
system("PAUSE");
}
//Fim Funções
int main (){
contato vet[6];
int itemEscolhido;
zeraVetor(vet);
while(1==1){
system("CLS");
cabecalho();
itemEscolhido = menu();
//Inicio Switch Case
switch(itemEscolhido){
case 1:
system("CLS");
cabecalho();
printf("\n\t 1 - Novo contato \n");
cadastraContato(vet);
break;
case 2:
system("CLS");
cabecalho();
printf("\n\t\t 2 - Agenda \n");
if(retornaUltimaPosUsada(vet) > 0){
listarContatos(vet);
}
else{
printf("\n Agenda vazia!\n");
system("PAUSE");
}
break;
case 0:
return;
default :
printf("Opcao Invalida\n");
system("PAUSE");
}
}
//Fim Switch Case
system("PAUSE");
}
Lucas Berto
Curtidas 0