Ir para conteúdo
Fórum Script Brasil
  • 0

Não sei usar ponteiro no meu programa o que faço?


Nayara Traldi

Pergunta

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.

CODE

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

Editado por Durub
Adicionar tags code [Durub]
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...