Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Agenda eletrônica feita em C ( Linux )

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    C / C++ Agenda eletrônica feita em C ( Linux )

    genda eletrônica feita em C que permite o cadastro de clientes com os seguintes atributos: nome, telefone e e-mail. O programa também permite a listagem de clientes tanto em ordem alfabética quanto por ordem de cadastro. Também é possível a pesquisa de clientes por nome ou por número de cadastro. No final do programa, todos os dados de cadastro de clietes são salvos em arquivo. Obs.: Para compiladores gcc.

    Codigo Fonte:

    Código:
    /*Autor:Marcus Vinícius Souza Costa
    Descrição:Agenda eletrônica feita em C que permite o cadastro de Clientes
    com os seguintes atributos:Nome,telefone e e-mail.
        O programa também permite a listagem de clientes tanto em ordem alfabética
    quanto por ordem de cadastro.Também é possível a pesquisa de clientes por nome
    ou por número de cadastro.
       No final do programa é todos os dados de cadastro de clietes são salvos
    no em disco.
    OBS:Para compiladores GCC*/
    
    //Declaração das bibliotecas
    # include <stdio_ext.h>
    # include<stdlib.h>
       // Declaração de variaveis GLOBAIS
       int cont,n=0,o,resp=0,k=0;
       int pos[200];
       char email[200][50],nome[200][50],aux[1][50],tel[200][50],vet[255];
    
    void mostrarcliente(){ // Essa função mostra os clientes em ordem de inscrição
       int op,i,j;
       char ch;
       if (n!=0){ //Verfica se existe cadsatro
          printf("Você possui %d cliente(s) cadastrados até agora\n\n",n);
          printf("Você deseja visualizar todos?(1-para sim)|(outra tecla para não): ");
          scanf("%d",&op);
          system("clear");
          if (op==1){
             j=0;
             while(j<n){
                retorno:
                for (i=0;i<n;i++){
                   if (j==pos[i]){
                      printf("Número de inscrição:%.4d\n",pos[i]+1);
                      printf("Nome:%s",nome[i]);
                      printf("Telefone:%s",tel[i]);
                      printf("E-mail:%s\n\n",email[i]);
                      j++;
                      goto retorno;
                   }
                }
             }
          }
       }else{
          printf("Não há clientes cadastrados");
       }
       printf("\n\n\t\t\tAperte ENTER para voltar ao menu principal");
       __fpurge(stdin);
       ch=getchar();
       main();
    }
    void ordem(){ // Ordenação por Seleção (em ordem Alfabética)
       int j,i,indi,indj;
       char ch;
       if (n!=0){
          for (i=n-k;i<n;i++){
             for (j=0;j<n;j++){ //Ordena os nomes
                if (nome[i][0]<nome[j][0]){
                   //Colocando em ordem os nomes
                   strcpy(aux[0],nome[i]);
                   strcpy(nome[i],nome[j]);
                   strcpy(nome[j],aux[0]);
                   //Colocando em ordem o número de telefone
                   strcpy(aux[0],tel[i]);
                   strcpy(tel[i],tel[j]);
                   strcpy(tel[j],aux[0]);
                   //Colocando em ordem o e-mail
                   strcpy(aux[0],email[i]);
                   strcpy(email[i],email[j]);
                   strcpy(email[j],aux[0]);
                   //Colocando em ordem o número do candidato
                   k=pos[i];
                   pos[i]=pos[j];
                   pos[j]=k;
                }else if((nome[i][0]==nome[j][0]) && (i!=j)){ //Verfica se a primeira letra do nome,se forem iguais
                   indi=0;
                   indj=0;
                   while(nome[i][indi]==nome[j][indj]){
                      indi++;
                      indj++;
                      again:
                      if (nome[i][indi]<nome[j][indj]/* && nome[i][indi]!='_' && nome[j][indj]!='_' */) {
                         //Colocando em ordem os nomes
                         strcpy(aux[0],nome[i]);
                         strcpy(nome[i],nome[j]);
                         strcpy(nome[j],aux[0]);
                         //Colocando em ordem o número de telefone
                         strcpy(aux[0],tel[i]);
                         strcpy(tel[i],tel[j]);
                         strcpy(tel[j],aux[0]);
                         //Colocando em ordem o e-mail
                         strcpy(aux[0],email[i]);
                         strcpy(email[i],email[j]);
                         strcpy(email[j],aux[0]);
                         //Colocando em ordem o número do candidato
                         k=pos[i];
                         pos[i]=pos[j];
                         pos[j]=k;
                      }if (nome[i][indi]=='_' || nome[j][indj]=='_'){
                         if (nome[i][indi]=='_'){
                            indi++;
                         }if (nome[j][indj]=='_'){
                            indj++;
                         }
                         goto again;
                      }
                   }
                }
             }
          }
          system("clear");
          printf("Número de inscrição\t\tNome\n\n");
          for (i=0;i<n;i++){
             printf("\t%.4d\t\t\t%s\n",pos[i]+1,nome[i]);
          }//fim do for
          k=resp*(-1);
          
       }else{
          printf("Não existem clientes cadastrados: \n\n");
       }
       printf("\n\n\t\t\t\tPressione ENTER para voltar ao menu incial");
       __fpurge(stdin);
       ch=getchar();
       main();
    }
    void cadastro (){
       int j,i,conv;
       char ch;
       system("clear");
       printf("\n Digite a quantidade de clientes que deseja cadastrar: ");
       scanf("%d",&resp);
       system("clear");
       for (j=n;j<resp+n;j++){
          repeticao:
          system("clear");   
          printf("----------------\n");
          printf("| Cliente %.4d |\n",j+1);
          printf("----------------\n\n");
          printf("\nEntre com o nome(sem caracteres especiais): ");
          __fpurge(stdin);// limpa o bufer usado pelo teclado (linux)
          fgets(nome[j],40,stdin);
          for (i=strlen(nome[j])-2;i>=0;i--){
             if ((nome[j][i]<'0') || (nome[j][i]>'z')){
                printf("Não é permitido o uso de caracteres especias e nem de espaço em branco,favor aperte ");
                printf("ENTER para inserir outro nome no char %c e i %d\n",nome[j][i],i);
                __fpurge(stdin);
                ch=getchar();
                goto repeticao;
             }
          }
          printf("Entre com o telefone: ");
          fgets(tel[j],20,stdin);
          printf("Entre com o email: ");
          __fpurge(stdin);
          fgets(email[j],45,stdin);
          pos[j]=j;
       }
       printf("\n\n");
       n=n+resp;
       k=resp;
           for (i=n-k;i<n;i++){
          for (j=strlen(nome[i])-2;j>=0;j--)
              nome[i][j]=toupper(nome[i][j]);
       }
       main();
    }
    
    void clientes(){ // Pesquisa Sequêncial
         int j,op,num,cont=0,ch;
       char cliente [255];
       if (n!=0){
          volta:
               system("clear");
               printf("Escolha uma das opções:\n");
               printf("1-Pesquisa por nome\n");
               printf("2-Pesquisa por número de cadastro\n");
               printf("0-Voltar ao Menu principal\n");
               printf("\tEscolha aqui:");
               scanf("%d",&op);
               if ((op<0) || (op>2)){
                     printf("Operação inválida,aperte ENTER para continuar o programa\n");
                     __fpurge(stdin);
                     ch=getchar();
                     goto volta;
               }
               if (op==1){
                        printf("\nDigite o nome para a pesquisa: ");
                   __fpurge(stdin); //limpa o buffer do teclado
                        fgets(cliente,40,stdin);
                        for (j=strlen(cliente)-2;j>=0;j--)
                cliente[j]=toupper(cliente[j]);
             system("clear");
             for (j=0;j<n;j++){
                   if (0==strcmp(cliente,nome[j])) { //Verifica se há o nome no cadastro
                     if (cont==0)
                        printf("*********************************\n");   
                     printf("Número de cadastro:%.4d\n\n",pos[j]+1);
                     printf("Nome:%s\n",nome[j]);
                     printf("Telefone:%s\n",tel[j]);
                     printf("E-mail:%s\n",email[j]);
                     cont++;
                           printf("*********************************\n");
                     if (j==n-1){
                        printf("\n\n\tForam(foi) encontrado(s) %d cliente(s)\n",cont);
                     }
                   }else if((j==n-1) && (cont==0)){
                    printf("Cliente inexistente.Favor aperte ENTER para continuação do programa\n");
                   }
                         }
               }else if(op==2){
                        printf("Digite o número para pesquisa:");
                        scanf("%d",&num);
                        if (num>n || num<=0){
                           printf("Cliente inexistente.Favor aperte ENTER para continuação do programa\n");
                           __fpurge(stdin);
                           ch=getchar();
                           goto volta;
                        }
                        system("clear");
             for (j=0;j<n;j++){
                            if (pos[j]+1==num){
                                  printf("Número de cadastro:%.4d\n\n",pos[j]+1);
                   printf("Nome:%s\n",nome[j]);
                   printf("Telefone:%s\n",tel[j]);
                   printf("E-mail:%s\n",email[j]);
                   break;
                }
                        }//fim do for
               }else{
             main();
          }
       }else{
          printf("\n\nNão há clientes cadastrados,aperte ENTER para retornar ao Menu Principal\n");
       }
          printf("\n\n\t\tAperte ENTER para retornar ao Menu Principal\n");
          __fpurge(stdin);
          ch=getchar();
          main();
    } //Fim da função clientes
    
    void gravaremdisco (){ // Função de Salvar o porgrama em DISCO e sair
           int i;
           FILE *arquivo;
           arquivo = fopen ("arquivo.txt", "w");
    
           for (i = 0; i <n; i++){
                   fprintf (arquivo, "%s %s %s\n\n", nome[i], tel[i], email[i]);
           }
           fclose (arquivo);
           printf("\n   Arquivo Gravado com SUCESSO");
           printf("\n\n  Obrigado por utilizar o programa! :-)\n\n\n\n ");
           exit(0);
    }
    //FIM DA FUNÇÃO CLIENTES
    
    int main(){
       char ch;
        do{
          system("clear");
          printf("\n\n\n     ===========================\n");
          printf("     =    AGENDA ELETRÔNICA    =");
          printf("\n     ===========================\n");
          printf ("\n             MENU \n");
          printf("        CONTROLE DE CLIENTES\n");
          printf ("\n\t1-Cadastro");
          printf ("\n\t2-Pesquisar clientes");
          printf ("\n\t3-Listar em ordem alfabetica");
          printf ("\n\t4-Mostrar número de clientes");
          printf ("\n\t5-Sair & Gravar em Disco");
          __fpurge(stdin);
          printf ("\n\n    Escolha uma opcao: ");
          scanf ("%d", & cont);
          switch (cont){
          
             case 1:
                cadastro();
             break;
       
             case 2:
                clientes();
             break;
       
             case 3:
                ordem();
             break;
       
             case 4:
                mostrarcliente();
             break;
             
             case 5:
                gravaremdisco();
             break;
             
             default:
                printf("\n\tOpcao invalida\n");
                printf("Pressione ENTER para Retornar ao MENU: ");
                __fpurge(stdin);
                ch=getchar ();
                main();
          } //Fim do switch
       }while((cont<=1)||(cont>=6));
    }
    Fonte: vivaoLinux
    Postado Por: RedDeviL




  • Font Size
    #2
    que, graças é tão bom para postagem
    New beach hotel is furnished with designer furniture and replace handbags also so good.

    Comment


    • Font Size
      #3
      Interessante,porém,o código tem muitas gafes além de não ser CP.

      Comment

      X
      Working...
      X