Olá pessoal, sou novata em programação em C, é meu primeiro ano de faculdade e tenho um puco de difuculdade com ponteiros, eu fiz um programa para cadastro, funciona perfeitamente e eu não achei bug algum só que preciso passar minhas funções com retorno e usando ponteiros, da maneira que fiz funciona, mas ainda não está aquado para o que preciso na faculdade de Si. Queria saber como posso melhorar meu código usando ponteiros e se tiver algum bug que não vi me avisem para eu tentar corrigir ou me passem algumas dicas, por esse motivo vou anexar o cadastro, estou programando com o dev c ++. Desde jáagradeço.
//
//Cadastro desenvolvido a partir de um struct, para uma agenda telefonica. OBS: Necessário usar a aioria das funções ponteiros, menos a função sair.
//bibliotecas
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//prototipos de funções
int cad ();
int menu ();
int pesquisanome();
int exibir();
int sair ();
//estruturas
struct cadastro
{
char nome [10];
int telefone;
char apelido [30];
int celular;
int ind;
}cadas;
// variaveis globais
struct cadastro cdstr [100];
int vUltReg=0;
int MAX=100;
//inicio
main()
{
menu ();
}
//FUNÇÕES
//Menu
int menu()
{
int opc;
printf ("\n***************Menu Principal*****************\n\n");
printf ("----------------------------------------------\n");
printf("\n * Selecione a opcao desejada: *\n");
printf(" * *");
printf("\n * 1- Cadastrar agenda * \n * 2- Pesquisar Agenda por nome * \n * 3- Exibir Agenda *\n * 4- Sair *\n ");
printf ("\n**********************************************\n\t");
scanf ("%d",&opc);
switch(opc) {
printf ("%d",opc);
case 1:
system ("cls");
printf ("\n******************Cadastro********************\n\n");
cad();
break;
case 2:
pesquisanome();
system ("pause");
system ("cls");
menu();
break;
case 3:
system ("cls");
printf("\n*********************Agenda:****************** \n");
exibir();
system ("cls");
system ("pause");
break;
case 4:
sair();
break;
default:
printf("\a\n\tOpcao invalida!\n\n");
fflush(stdin);
system ("pause");
system ("cls");
menu ();
}
}
//Cadastro
int cad ()
{
int x;
int res;
for (x=vUltReg; x<MAX; x++)
{
printf ("\n------------------Contato=%d-------------------\n",x+1);
cdstr[x].ind=vUltReg+1;
vUltReg = cdstr[x].ind;
printf ("\nDigite o nome de seu contato:\n");
scanf("%s",&cdstr[x].nome);
printf ("\nDigite um numero de telefone para seu contato:\n");
scanf ("%d",&cdstr[x].telefone);
printf ("\nDigite o apelido do seu contato: \n");
scanf ("%s",&cdstr[x].apelido);
printf ("\nDigite o celular de seu contato:\n");
scanf ("%d",&cdstr[x].celular);
fflush(stdin);
printf ("\n----------------------------------------------\n\n");
printf("\n**Deseja inserir novo cadastro na agenda? (0=Sim/1=não)**\n ");
scanf("%d",&res);
if (res==1){
system ("cls");
menu();
}
if (x==MAX-1){
printf ("\n*****ATENCAO: Agenda atingiu limite de registros!*****\n");
system ("pause");
system ("cls");
menu();
}
}
}
//Pesquisa Agenda por nome
int pesquisanome()
{
char m [20];
int n;
int comp;
printf ("\t\n Pesquisa: Digite um nome:\n");
scanf ("%s",&m);
for (n=0;n<vUltReg; n++)
{
comp=strcmp(cdstr[n].nome,m);
if (comp==0)
{
printf ("\n\tContato = %d\n",cdstr[n].ind);
printf ("\n\n\tContato correspondente a tal nome:\t\n");
printf ("\n \tNome do seu contato: %s\n", cdstr[n].nome);
printf ("\n \tApelido de seu contato: %s\n", cdstr[n].apelido);
printf ("\n \tO celular do seu contato: %d\n", cdstr[n].celular);
printf ("\n \tO telefone do seu contato: %d\n", cdstr[n].telefone);
}
else
printf (" Invalido, tente novamente!\n");
}
}
//Exibir Agenda de um numero n de pessoas cadastradas
int exibir()
{
int z;
for (z=0;z<vUltReg; z++)
{
printf ("\n----------------------------------------------\n\n");
printf ("\n\tContato = %d\n",cdstr[z].ind);
printf ("\n \tNome de seu contato: %s\n", cdstr[z].nome);
printf ("\n \tApelido de seu contato: %s\n", cdstr[z].apelido);
printf ("\n \tO celular de seu contato: %d\n", cdstr[z].celular);
printf ("\n \tO telefone de seu contato: %d\n\n\t", cdstr[z].telefone);
}
printf ("\n***Total de registros exibidos:%d***\n\n",z);
system ("pause");
system ("cls");
menu();
}
//Sair do programa
int sair ()
{
system ("cls");
printf("\n\t###Bye, bye! Foi muito bom trabalhar com voce!!!###\n\t\n");
system ("pause");
exit (1);
}
Pergunta
Nayara Traldi
Olá pessoal, sou novata em programação em C, é meu primeiro ano de faculdade e tenho um puco de difuculdade com ponteiros, eu fiz um programa para cadastro, funciona perfeitamente e eu não achei bug algum só que preciso passar minhas funções com retorno e usando ponteiros, da maneira que fiz funciona, mas ainda não está aquado para o que preciso na faculdade de Si. Queria saber como posso melhorar meu código usando ponteiros e se tiver algum bug que não vi me avisem para eu tentar corrigir ou me passem algumas dicas, por esse motivo vou anexar o cadastro, estou programando com o dev c ++. Desde jáagradeço.
Link para o comentário
Compartilhar em outros sites
8 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.