Ir ao conteúdo
  • Cadastre-se

Artefactho

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

posts postados por Artefactho

  1. @KXSY  Obrigado pelo seu tempo e ajuda.   fui testar e ta dando uns erros mas vou ver como corrijo isso e depois te passo feedback. obrigado 

     

    image.thumb.png.f6d275b212b078f832d337abd04d4226.pngimage.thumb.png.a3b8a7ad7683a65613347d3117e67335.png

    adicionado 11 minutos depois

    @arfneto Muito Bom, obrigado pela explicação e pelo code, vou testar.,  algumas coisa ainda não estão muito claras para mim  no que diz respeito a performance, segurança e eficiência em C.
    O começo parece ser duro mas o legal e que to ralando pra começar a codar sozinho.
    Creio que com tudo que você apresentou e suficiente para melhorar minha base, não consigo acrescetar nada pela falta de know how mas de fato o conteúdo e a didática apresentada  somou muito.
    Obrigado

     

    • Curtir 1
  2. 2 horas atrás, devair1010 disse:

    @Artefactho      seu código está bom , e para voltar ao menu é desse jeito mesmo que você colocou , um loop while mesmo , mas o que acontece é que você colocou o comando return uma linha antes do ideal , que seria depois do Loop while , e esses if's poderiam ser substituídos por um switch , que os case's dele fariam as comparações de Qual opção foi pedida pelo Usuário , e nesse caso o Default seria a opção Inválida que você pretende colocar nesse código , e seu código com algumas modificações poeria ser assim  :

    
    #include <stdio.h>
    #include <windows.h>
    #include <stdlib.h>
    #define cls system("cls || clear");
    #define TAM 01
    void saindo();
    struct livro
    {
        int codigo;
        char autor[30];
        char titulo[50];
        char editora[30];
    };
    int letras[8][5] ={{15,16,14, 1,30}, /* letra  S */
                       {14,17,31,17,17}, /* letra  A */
                       {14, 4, 4, 4,14}, /* letra  I */
                       {17,25,21,19,17}, /* letra  N */
                       {30,17,17,17,30}, /* letra  D */
                       {14,17,17,17,14}, /* letra  O */
                       { 0, 0, 0, 0, 0}, /* letra    */
                       { 1, 2, 4, 0,16}, /* letra  ! */
                      };
    int main()
    {
        struct livro ficha[TAM];
        int busca, i, j, acha, op;
        op = 32768;
        while( op != 0 )
        {
            cls
            printf("1 - Inserir um Novo Cadastro\n");
            printf("2 - Mostrar todos os cadastros\n");
            printf("0 - Encerrar\n");
            printf("Digite a opcao desejada: ");
            scanf("%d", &op);
            fflush(stdin);
            if (op == 1)
            {
                system("cls");
                for (i=0; i<TAM; i++)
                {
                    printf("Digite o codigo do livro da posicao %d:", i+1 );
                    scanf("%d", &ficha[i].codigo);
                    fflush(stdin);
                    printf("Digite o titulo do livro: ");
                    scanf("%50[^\n]s", &ficha[i].titulo);
                    fflush(stdin);
                    printf("Digite o nome do autor: ");
                    scanf("%30[^\n]s", &ficha[i].autor);
                    fflush(stdin);
                    printf("Digite o nome da editora: ");
                    scanf("%30[^\n]s", &ficha[i].editora);
                    fflush(stdin);
                }
            }
            else
            {
                if (op == 2)
                {
                    system("cls");
                    for (i=0; i<TAM; i++)
                    {
                        printf("\nCODIGO: %d\n",
                        ficha[i].codigo );
                        printf("TITULO: %s\n",
                        ficha[i].titulo);
                        printf("AUTOR: %s\n",
                        ficha[i].autor);
                        /*printf("ÁREA: %s\n", ficha.area);*/
                        /*printf("ANO: %d\n", ficha.ano);*/
                        printf("EDITORA: %s\n\n",
                        ficha[i].editora);
                    }
                }
                else
                {
                    if (op == 3)
                    {
                        system("cls");
                        printf("Digite o codigo que deseja buscar: ");
                        scanf ("%d", &busca);
                        i = 0;
                        acha = 0;
                        while ((i < TAM) && (acha == 0))
                        {
                            if (ficha[i].codigo == busca)
                                acha = 1;
                            else
                                i++;
                        }
                        if (acha == 1)
                        {
                            printf("\nCODIGO: %d\n",
                            ficha[i].codigo );
                            printf("TITULO: %s\n",
                            ficha[i].titulo);
                            printf("AUTOR: %s\n",
                            ficha[i].autor);
                            printf("EDITORA: %s\n\n",
                            ficha[i].editora);
                        }
                        else
                            printf("\n Registro não encontrado");
                    }
                    else
                    {
                        if (op ==4)
                        {
                            system("cls");
                            for (i=0;i<TAM-1;i++)
                            {
                                for (j=i+1;j<TAM;j++)
                                {
                                    {
                                        ficha[i] = ficha[j];
                                    }
                                }
                            }
                            for (i=0;i<TAM;i++)
                            {
                                printf("\n CODIGO: %d, TITULO:%s\n\n",
                                ficha[i].codigo,
                                ficha[i].titulo);
                            }
                        }
                        else
                        {
                            if( op != 0 )
                            {
                                printf("\n\t     Opcao Invalida !\n     Espere 3 Segundos para voltar ao Menu\n");
                                Sleep(3000);
                            }
                        }
                    }
                }
            }
        }
        saindo();
        printf("\n\n\n\n\n");
        return 65535;
    }
    void saindo(){
        int w,px,py,x;                            /* variáveis simples                       */
        HANDLE hOut;                              /* controle dos dispositivos do pc         */
        hOut= GetStdHandle(STD_OUTPUT_HANDLE);    /* pega a saída padrão                     */
        CONSOLE_SCREEN_BUFFER_INFO SBInfo;        /* informações sobre a buffer da tela      */
        GetConsoleScreenBufferInfo(hOut, &SBInfo);/* pega a posição do cursor do console     */
        px = SBInfo.dwCursorPosition.X;           /* pX será a posição da coluna do cursor no console */
        py = SBInfo.dwCursorPosition.Y;           /* pY será a posição da linha do cursor no console  */
        int y1=py+10,x1=20,y2=y1,x2=x1,j,i,a,b;    /*y1=linha inicial  y2 para recuperar a linha inicial*/
        for(i=0;i<8;i++){                     /*  sao 8 letras                                    */
            /*textcolor_2(rand()%15,rand()%15);*/
            for(j=0;j<5;j++){                 /*o caractere é de 5 linhas                          */
                x1 = x2;
                a=letras[i][j];               /*pega o numero da 1 linha do caractere              */
                for(b=0;b<5;b++){             /*aqui eh um numero de apenas 8 bits                 */
                    //gotoxy_2(x1,y1);
                    SetConsoleCursorPosition( GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x1,y1});
                    if(a % 2 != 0){           /*se bit 0 igual 1                                   */
                        printf("%c",219);     /*coloca espaço invertido senão coloca espaço normal */
                    }
                    else{
                        printf(" ");          /*senão coloca espaço normal                         */
                    }
                    a=a/2;                    /*dividindo numero por 2 desloca os bits para direita*/
                    x1--;
                    Sleep(10);
                }
                y1++;                   /*muda para proxima linha                                  */
                x1=x2;                  /*volta para a coluna inicial                              */
            }                           /*proxima linha                                            */
            x2=x2+6;                    /*avança 8 colunas posicionando para o prox caract         */
            y1=y2;                      /*volta para linha inicial                                 */
        }                               /*imprimiu o primeiro caractere                            */
    }

     

    Obrigado por responder,
    ficou legal, pois o menu agora aparece  porém matou a opçaõ 2.
    agora ele deixou de ler os dados de entrada da opção 2 . 
     

    • Obrigado 1
  3. Olá, senhores (as)

    sou sprendiz de C e no código abaixo gostaria de saber como fazer para que sempre que o usuário desejar executar as opção 1 ou 2 (exceto 0), o programa deve realizar executar o solicitado e, logo após isso, o programa deve retornar ao menu, dando ao usuário a possibilidade de executar novamente alguma das opções listadas no menu. A outra coisa seria como reportar uma msg de erro caso digite um valor diferente de 1,2 ou 0.

     

    #include <stdio.h>
    #include <stdlib.h>
    #define TAM 05
    
    struct livro
    {
        int codigo;
        char autor[30];
        char titulo[50];
        char editora[30];
    };
    int main()
    {
    struct livro ficha[TAM];
    int busca, i, j, acha, op;
    op = 0;
    while (op !=5)
    {
    printf("1 - Inserir um Novo Cadastro\n");
    printf("2 - Mostrar todos os cadastros\n");
    printf("0 - Encerrar\n");
    printf("Digite a opção desejada: ");
    scanf("%d", &op);
    fflush(stdin);
    if (op == 1)
    {
    system("cls");
    for (i=0; i<TAM; i++)
    {
    printf("Digite o cádigo do livro da posição %d:", i+1 );
    scanf("%d", &ficha.codigo);
    fflush(stdin);
    printf("Digite o título do livro: ");
    scanf("%50[^\n]s", &ficha.titulo);
    fflush(stdin);
    printf("Digite o nome do autor: ");
    scanf("%30[^\n]s", &ficha.autor);
    fflush(stdin);
    printf("Digite o nome da editora: ");
    scanf("%30[^\n]s", &ficha.editora);
    fflush(stdin);
    }
    }
    else
    {
    if (op == 2)
    {
    system("cls");
    for (i=0; i<TAM; i++)
    {
    printf("\nCÓDIGO: %d\n",
    ficha.codigo );
    printf("TÍTULO: %s\n",
    ficha.titulo);
    printf("AUTOR: %s\n",
    ficha.autor);
    /*printf("ÁREA: %s\n", ficha.area);*/
    /*printf("ANO: %d\n", ficha.ano);*/
    printf("EDITORA: %s\n\n",
    ficha.editora);
    }
    }
    else
    {
    if (op == 3)
    {
    system("cls");
    printf("Digite o código que deseja buscar: ");
    scanf ("%d", &busca);
    i = 0;
    acha = 0;
    while ((i < TAM) && (acha == 0))
    {
    if (ficha.codigo == busca)
    acha = 1;
    else
    i++;
    }
    if (acha == 1)
    {
    printf("\nCÓDIGO: %d\n",
    ficha.codigo );
    printf("TÍTULO: %s\n",
    ficha.titulo);
    printf("AUTOR: %s\n",
    ficha.autor);
    printf("EDITORA: %s\n\n",
    ficha.editora);
    }
    else
    printf("\n Registro não encontrado");
    }
    else
    {
    if (op ==4)
    {
    system("cls");
    for (i=0;i<TAM-1;i++)
    {
    for (j=i+1;j<TAM;j++)
    {
    {
    ficha = ficha[j];
    }
    }
    }
    for (i=0;i<TAM;i++)
    {
    printf("\n CÓDIGO: %d, TÍTULO:%s\n\n",
    ficha.codigo,
    ficha.titulo);
    }
    }
    }
    }
    }
    return (0);
    }
    }

     

    • Obrigado 1

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!