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.
// //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); }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.