Bom galera, venho aqui com um programa simples, apenas para estudo, porém me deparei com um probleminha chato.
Vamos ao TAD do programa:
1 - Cadastrar (Apenas entrara em uma função para o cadastro, passando para a função um vetor do meu tipo de dado criado, ou seja, um vetor de "CONTATO", retornando ao programa principal a quantidade de pessoas cadastradas nessa função. já detectei que poderá ocorrer um problema como sobrescrever alguns contatos, mais isso é fácil de resolver quando conseguir passar desse primeiro problema que estou enfrentando.
2 - Consulta (Com base no valor retornado da função CADASTRAR, vou fazer a consulta dos usuários cadastrados, essa é sem muito segredo, mas sem a primeira parte funcionando, não há como prosseguir.
Eu vi que a passagem de uma estrutura por referencia, deveria ser feita como no exemplo:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct ponto
{
int x,y;
};
void adiciona(struct ponto *p);
main ()
{
struct ponto q = {0,0};
adiciona(&q);
printf("Numeros: X = %d, Y = %d",q.x,q.y);
getch();
}
void adiciona(struct ponto *p){
printf("Digite 2 numeros para usar no plano: \n");
scanf("%d",&p->x);
scanf("%d",&p->y);
}
Porém isso, não estava funcionando quando eu passo um vetor da minha estrutura, queria saber se existe algo além disso para ser passado, pois realmente, essa eu não sei .. HAHA.
Enfim, deixo o código, se caso alguém tiver uma idéia para compartilhar, ficarei agradecido.
Abraços
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 30
typedef struct CONT
{
char nome[MAX], nick[MAX];
int tel;
}CONTATO;
int menu();
int CADASTRA(CONTATO *PESSOA);
void CONSULTA(CONTATO *PESSOA, int IND);
main()
{
CONTATO PESSOA[100];
int opc, aux,rmnu;
rmnu=menu();
switch(rmnu){
case 1:
{
aux=CADASTRA(PESSOA);
printf("Voce cadastrou %d usuario(s), parabens !\n\n",aux);
_sleep(1000);
system("cls");
menu();
break;
}
case 2:
{
CONSULTA(PESSOA,aux);
break;
}
}
getch();
}
int menu()
{
int opc;
do{
printf("******************** AGENDA ********************\n\n");
printf("(1) - Cadastro\n(2) - Consulta\n");
printf("Digite a opcao desejada: ");
scanf("%d",&opc);
fflush(stdin);
}while(opc!=1 && opc!=2);
return opc;
}
int CADASTRA(CONTATO *PESSOA)
{
char OPC;
int IND;
do{
printf("*** Cadastro ***\n\n");
printf("Digite o nome do contato: ");
fgets(PESSOA[IND].nome,MAX,stdin);
printf("Digite o nick do contato: ");
fgets(PESSOA[IND].nick,MAX,stdin);
printf("Digite o telefone do contato: ");
scanf("%d",&PESSOA[IND].tel);
fflush(stdin);
printf("Deseja cadastrar mais alguma pessoa ? S/N\n");
scanf("%c",&OPC);
fflush(stdin);
IND++;
}while(OPC=='S');
return IND;
}
void CONSULTA(CONTATO *PESSOA, int IND)
{
printf("******************** AGENDA ********************\n\n");
do{
printf("---------- Contato %d ----------\n",IND);
printf("Nome: %s\n",PESSOA[IND].nome);
printf("Apelido: %s\n",PESSOA[IND].nick);
printf("Telefone: %d",PESSOA[IND].tel);
printf("\n--------------------------------\n\n");
IND--;
}while(IND>0);
}
Pergunta
M4CK
Hi !
Bom galera, venho aqui com um programa simples, apenas para estudo, porém me deparei com um probleminha chato.
Vamos ao TAD do programa:
1 - Cadastrar (Apenas entrara em uma função para o cadastro, passando para a função um vetor do meu tipo de dado criado, ou seja, um vetor de "CONTATO", retornando ao programa principal a quantidade de pessoas cadastradas nessa função. já detectei que poderá ocorrer um problema como sobrescrever alguns contatos, mais isso é fácil de resolver quando conseguir passar desse primeiro problema que estou enfrentando.
2 - Consulta (Com base no valor retornado da função CADASTRAR, vou fazer a consulta dos usuários cadastrados, essa é sem muito segredo, mas sem a primeira parte funcionando, não há como prosseguir.
Eu vi que a passagem de uma estrutura por referencia, deveria ser feita como no exemplo:
Porém isso, não estava funcionando quando eu passo um vetor da minha estrutura, queria saber se existe algo além disso para ser passado, pois realmente, essa eu não sei .. HAHA. Enfim, deixo o código, se caso alguém tiver uma idéia para compartilhar, ficarei agradecido. AbraçosObrigado desde já, abraços !
Editado por M4CKLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.