Logo Hardware.com.br
brendon alex
brendon alex Novo Membro Registrado
2 Mensagens 0 Curtidas

Programa C - função listar

#1 Por brendon alex 16/09/2015 - 09:48
  • [php]Pessoal gostaria da ajuda de voces , tenho este trabalho para entregar, porem na função listar , esta aparecendo somente o primeiro livro que cadastro, sou novo no curso. Obrigado


    /*
    Universidade Camilo Castelo Branco
    Analise e Desenvolvimento de Sistemas
    Projeto Integrador II
    Prof° Roberto
    Brendon Alex da Gama Silva
    */


    [HASHTAG]#include[/HASHTAG]
    [HASHTAG]#include[/HASHTAG]



    struct livros //ESTRUTURA PARA REALIZAR CADASTRO
    {
    int cod;
    int vazio;
    char tipo_obra[20];
    char titulo_obra[20];
    char numero_obra[10];
    char autor[20];
    char editora[20];
    char numero_volume[10];
    char data_edicao[10];
    } registro[200];

    //Funçoes que serao usadas


    void incluir(int cod, int cont);//Função incluir


    void alterar( void );//Funçao para alterar


    void excluir( void );//Funçao para excluir


    void listar( void );//Função para listar

    int verifica_pos();//Verifica a posição

    int verifica_cod(int cod);//Verifica o codigo

    int main()
    {

    int op = 0, codaux, posicao, retorno;//Declarando as variaveis a serem usadas
    system("color 09");//Muda a cor
    while(op != 5)//whilw menu
    {
    printf("\n-- -- BIBLIOTECA -- --\n");
    printf("\n\t|--- MENU ---|\n\t| 1 - Incluir|\n\t| 2 - Alterar|\n\t| 3 - Excluir|\n\t| 4 - Listar |\n\t| 5 - Sair |\n\t--------------\t\nOpcao -> ");
    scanf("%i", &op);

    system("cls");

    switch(op)
    {
    case 1: // CADASTRAR
    {
    posicao = verifica_pos();
    if(posicao != -1)//If - Verifica se pode cadastrar ou se codigo ja existe
    {
    printf("\nEntre com o codigo de registro do livro : ");
    scanf("%i", &codaux);
    fflush(stdin);
    retorno = verifica_cod(codaux);

    if (retorno == 1 ){
    incluir(codaux, posicao);
    }
    else{
    printf("\nCodigo ja existente ou excluido");
    printf("\nTente outro codigo\n");
    }
    }
    else
    printf("\nNão e possivel realizar mais cadastro !");
    break;
    }
    case 2: //ALTERA
    {
    alterar();
    break;
    }

    case 3: //EXCLUIR
    {
    excluir();
    break;
    }
    case 4://LISTAR
    {
    listar();
    break;
    }
    case 5://SAIR DO PROGRAMA
    {
    printf("\nPrograma Biblioteca - By Brendon Alex ");
    getchar();
    break;
    }
    default://Nenhuma das opções acima
    printf("\nOpcao Invalida");
    break;

    }
    }
    getchar();
    return 0;

    }//FINAL FUNÇAO MAIN

    //FUNÇÃO CADASTRAR
    void incluir(int cod, int cont)
    {
    cont = verifica_pos();
    registro[cont].cod = cod;
    fflush(stdin);
    printf("\nTipo da Obra \n");
    gets(registro[cont].tipo_obra);

    printf("\nTiluto da Obra \n");
    gets(registro[cont].titulo_obra);

    printf("\nNumero da Obra \n");
    gets(registro[cont].numero_obra);

    printf("\nAutor \n");
    gets(registro[cont].autor);

    printf("\nEditora \n");
    gets(registro[cont].editora);

    printf("\nNumero de Volumes \n");
    gets(registro[cont].numero_volume);

    printf("\nData de Edicao \n");
    gets(registro[cont].data_edicao);
    registro[cont].vazio = 1;
    printf("\nInclusao do livro feita com sucesso.\n");
    getchar();
    system("cls");

    }


    //FUNÇÃO VERIFICA POSIÇÃO
    int verifica_pos()
    {
    int cont = 0;
    while (cont <= 200)
    {
    if (registro[cont].vazio == 0)
    return(cont);
    cont++;
    }
    return(-1);
    }


    //FUNÇÃO ZERAR
    void zerar()
    {
    int cont;
    for (cont = 0; cont <= 200; cont++)
    registro[cont].vazio = 0;
    registro[cont].cod = 0;
    }


    //FUNÇÃO VERIFICA CODIGO
    int verifica_cod(int cod)
    {
    int cont = 0;
    while (cont <= 200)
    {
    if (registro[cont].cod == cod)
    return(0);
    cont++;
    }
    return(1);
    }


    //Função Alterar
    void alterar(void)
    {
    int cod,cont=0;
    printf("\nDigite o Codigo do livro que deseja alterar : ");
    scanf("%i",&cod);
    //if(cod == registro[cont].cod)
    //{
    while(cont <= 200)
    {
    if(registro[cont].cod == cod)

    if(registro[cont].vazio == 1)
    {
    fflush(stdin);
    printf("\nTipo da Obra \n");
    gets(registro[cont].tipo_obra);

    printf("\nTiluto da Obra \n");
    gets(registro[cont].titulo_obra);

    printf("\nNumero da Obra \n");
    gets(registro[cont].numero_obra);

    printf("\nAutor \n");
    gets(registro[cont].autor);

    printf("\nEditora \n");
    gets(registro[cont].editora);

    printf("\nNumero de Volumes \n");
    gets(registro[cont].numero_volume);

    printf("\nData de Edicao \n");
    gets(registro[cont].data_edicao);
    printf("\nInclusao do livro feita com sucesso.\n");
    getchar();
    system("cls");
    }
    cont ++;
    }
    //}

    }





    //Função Excluir

    void excluir(void)
    {
    int cont = 0, cod;
    char resp;
    printf("\nDigite o Codigo do Livro que deseja Excluir : ");
    scanf("%i", &cod);
    system("cls");

    while(cont <= 200)
    {

    if (registro[cont].cod == cod)
    {
    if (registro[cont].vazio == 1)
    {
    printf("\nTipo da Obra %s", registro[cont].tipo_obra);
    printf("\nTiluto da Obra %s", registro[cont].titulo_obra);
    printf("\nNumero da Obra %s", registro[cont].numero_obra);
    printf("\nAutor %s", registro[cont].autor);
    printf("\nEditora %s", registro[cont].editora);
    printf("\nNumero de Volumes %s", registro[cont].numero_volume);
    printf("\nData de Edicao %s", registro[cont].data_edicao);

    getchar();

    printf("\nDeseja realmente excluir ? - S = Sim / N = Nao : ");
    scanf("%s", &resp);

    if((resp == 's') || (resp == 'S'))
    {
    registro[cont].vazio = 0;
    printf("\nLivro excluido com sucesso\n");
    break;
    }
    else if((resp == 'n') || (resp == 'N'))
    {



    printf("\nExclusão cancelada\n");
    break;
    }
    }
    }
    cont ++;
    }
    }
    //FUNÇÃO listar
    void listar(void)
    {
    int i,cont =0;



    for(i=0;i<=registro[cont].cod;i++){

    if(registro[cont].cod)
    {
    if(registro[cont].vazio == 1)
    {
    printf("\nTipo da Obra %i", registro[cont].cod);
    printf("\nTipo da Obra %s", registro[cont].tipo_obra);
    printf("\nTiluto da Obra %s", registro[cont].titulo_obra);
    printf("\nNumero da Obra %s", registro[cont].numero_obra);
    printf("\nAutor %s", registro[cont].autor);
    printf("\nEditora %s", registro[cont].editora);
    printf("\nNumero de Volumes %s", registro[cont].numero_volume);
    printf("\nData de Edicao %s", registro[cont].data_edicao);
    getchar();
    break;

    }
    }
    cont++;
    if ( cont > 200 )
    printf("\nCodigo nao encontrado\n");

    }
    printf("\nNumero de livros %i", registro[cont].cod);
    }
    /*
    Universidade Camilo Castelo Branco
    Analise e Desenvolvimento de Sistemas
    Projeto Integrador II
    Prof° Roberto
    Brendon Alex da Gama Silva
    */[/php]

Shinayder
Shinayder Veterano Registrado
669 Mensagens 118 Curtidas
#2 Por Shinayder
16/09/2015 - 12:15
Brendon, Bom Dia!

Sempre que postar um código, coloque ele dentro das Tags CODE que o fórum possui, é melhor para quem vai ver o código, facilita muito.

[code=C]/*
Universidade Camilo Castelo Branco

Analise e Desenvolvimento de Sistemas

Projeto Integrador II

Prof° Roberto

Brendon Alex da Gama Silva

*/



#include
#include



struct livros //ESTRUTURA PARA REALIZAR CADASTRO
{
int cod;
int vazio;
char tipo_obra[20];
char titulo_obra[20];
char numero_obra[10];
char autor[20];
char editora[20];
char numero_volume[10];
char data_edicao[10];
} registro[200];

//Funçoes que serao usadas


void incluir(int cod, int cont);//Função incluir


void alterar( void );//Funçao para alterar


void excluir( void );//Funçao para excluir


void listar( void );//Função para listar

int verifica_pos();//Verifica a posição

int verifica_cod(int cod);//Verifica o codigo

int main()
{

int op = 0, codaux, posicao, retorno;//Declarando as variaveis a serem usadas
system("color 09");//Muda a cor
while(op != 5)//whilw menu
{
printf("\n-- -- BIBLIOTECA -- --\n");
printf("\n\t|--- MENU ---|\n\t| 1 - Incluir|\n\t| 2 - Alterar|\n\t| 3 - Excluir|\n\t| 4 - Listar |\n\t| 5 - Sair |\n\t--------------\t\nOpcao -> ");
scanf("%i", &op);

system("cls");

switch(op)
{
case 1: // CADASTRAR
{
posicao = verifica_pos();
if(posicao != -1)//If - Verifica se pode cadastrar ou se codigo ja existe
{
printf("\nEntre com o codigo de registro do livro : ");
scanf("%i", &codaux);
fflush(stdin);
retorno = verifica_cod(codaux);

if (retorno == 1 ){
incluir(codaux, posicao);
}
else{
printf("\nCodigo ja existente ou excluido");
printf("\nTente outro codigo\n");
}
}
else
printf("\nNão e possivel realizar mais cadastro !");
break;
}
case 2: //ALTERA
{
alterar();
break;
}

case 3: //EXCLUIR
{
excluir();
break;
}
case 4://LISTAR
{
listar();
break;
}
case 5://SAIR DO PROGRAMA
{
printf("\nPrograma Biblioteca - By Brendon Alex ");
getchar();
break;
}
default://Nenhuma das opções acima
printf("\nOpcao Invalida");
break;

}
}
getchar();
return 0;

}//FINAL FUNÇAO MAIN

//FUNÇÃO CADASTRAR
void incluir(int cod, int cont)
{
cont = verifica_pos();
registro[cont].cod = cod;
fflush(stdin);
printf("\nTipo da Obra \n");
gets(registro[cont].tipo_obra);

printf("\nTiluto da Obra \n");
gets(registro[cont].titulo_obra);

printf("\nNumero da Obra \n");
gets(registro[cont].numero_obra);

printf("\nAutor \n");
gets(registro[cont].autor);

printf("\nEditora \n");
gets(registro[cont].editora);

printf("\nNumero de Volumes \n");
gets(registro[cont].numero_volume);

printf("\nData de Edicao \n");
gets(registro[cont].data_edicao);

registro[cont].vazio = 1;

printf("\nInclusao do livro feita com sucesso.\n");

getchar();
system("cls");


}


//FUNÇÃO VERIFICA POSIÇÃO
int verifica_pos()
{
int cont = 0;
while (cont <= 200)
{
if (registro[cont].vazio == 0)
return(cont);
cont++;
}
return(-1);
}


//FUNÇÃO ZERAR
void zerar()
{
int cont;
for (cont = 0; cont <= 200; cont++)
registro[cont].vazio = 0;
registro[cont].cod = 0;
}


//FUNÇÃO VERIFICA CODIGO
int verifica_cod(int cod)
{
int cont = 0;
while (cont <= 200)
{
if (registro[cont].cod == cod)
return(0);
cont++;
}
return(1);
}


//Função Alterar
void alterar(void)
{
int cod,cont=0;
printf("\nDigite o Codigo do livro que deseja alterar : ");
scanf("%i",&cod);
//if(cod == registro[cont].cod)
//{
while(cont <= 200)
{
if(registro[cont].cod == cod)

if(registro[cont].vazio == 1)
{
fflush(stdin);
printf("\nTipo da Obra \n");
gets(registro[cont].tipo_obra);

printf("\nTiluto da Obra \n");
gets(registro[cont].titulo_obra);

printf("\nNumero da Obra \n");
gets(registro[cont].numero_obra);

printf("\nAutor \n");
gets(registro[cont].autor);

printf("\nEditora \n");
gets(registro[cont].editora);

printf("\nNumero de Volumes \n");
gets(registro[cont].numero_volume);

printf("\nData de Edicao \n");
gets(registro[cont].data_edicao);


printf("\nInclusao do livro feita com sucesso.\n");
getchar();
system("cls");
}
cont ++;
}
//}

}





//Função Excluir

void excluir(void)
{
int cont = 0, cod;
char resp;
printf("\nDigite o Codigo do Livro que deseja Excluir : ");
scanf("%i", &cod);
system("cls");

while(cont <= 200)
{

if (registro[cont].cod == cod)
{
if (registro[cont].vazio == 1)
{
printf("\nTipo da Obra %s", registro[cont].tipo_obra);
printf("\nTiluto da Obra %s", registro[cont].titulo_obra);
printf("\nNumero da Obra %s", registro[cont].numero_obra);
printf("\nAutor %s", registro[cont].autor);
printf("\nEditora %s", registro[cont].editora);
printf("\nNumero de Volumes %s", registro[cont].numero_volume);
printf("\nData de Edicao %s", registro[cont].data_edicao);

getchar();

printf("\nDeseja realmente excluir ? - S = Sim / N = Nao : ");
scanf("%s", &resp);

if((resp == 's') || (resp == 'S'))
{
registro[cont].vazio = 0;
printf("\nLivro excluido com sucesso\n");
break;
}
else if((resp == 'n') || (resp == 'N'))
{



printf("\nExclusão cancelada\n");
break;
}
}
}
cont ++;
}
}


//FUNÇÃO listar
void listar(void)
{
int i,cont =0;



for(i=0;i<=registro[cont].cod;i++){

if(registro[cont].cod)
{
if(registro[cont].vazio == 1)
{
printf("\nTipo da Obra %i", registro[cont].cod);
printf("\nTipo da Obra %s", registro[cont].tipo_obra);
printf("\nTiluto da Obra %s", registro[cont].titulo_obra);
printf("\nNumero da Obra %s", registro[cont].numero_obra);
printf("\nAutor %s", registro[cont].autor);
printf("\nEditora %s", registro[cont].editora);
printf("\nNumero de Volumes %s", registro[cont].numero_volume);
printf("\nData de Edicao %s", registro[cont].data_edicao);
getchar();
break;

}
}
cont++;
if ( cont > 200 )
printf("\nCodigo nao encontrado\n");

}
printf("\nNumero de livros %i", registro[cont].cod);
}

/*
Universidade Camilo Castelo Branco

Analise e Desenvolvimento de Sistemas

Projeto Integrador II

Prof° Roberto

Brendon Alex da Gama Silva

*/[/code]
Phenon X4 Black Box Edition 3.4 64bits | Memoria DDR3 8Gb | Nvidea Geforce GTS 450 1GB| HD Samsung SATA 500Gb e Samsung SATA 1 Tb rindo_atoa.gif
NoteBook: Em Analise nao_sei.gif
http://www.stormclouds.com.br/
brendon alex
brendon alex Novo Membro Registrado
2 Mensagens 0 Curtidas
#3 Por brendon alex
16/09/2015 - 13:08
Obrigado , sou novo aqui smile.png

Consegui arrumar o codigo .
/*
Universidade Camilo Castelo Branco

Analise e Desenvolvimento de Sistemas

Projeto Integrador II

Prof° Roberto

Brendon Alex da Gama Silva

*/



#include <stdio.h>
#include <stdlib.h>



struct livros //ESTRUTURA PARA REALIZAR CADASTRO
{
int cod;
int vazio;
char tipo_obra[20];
char titulo_obra[20];
char numero_obra[10];
char autor[20];
char editora[20];
char numero_volume[10];
char data_edicao[10];
} registro[200];

//Funçoes que serao usadas


void incluir(int cod, int cont);//Função incluir


void alterar( void );//Funçao para alterar


void excluir( void );//Funçao para excluir


void listar( void );//Função para listar

int verifica_pos();//Verifica a posição

int verifica_cod(int cod);//Verifica o codigo

int main()
{

int op = 0, codaux, posicao, retorno;//Declarando as variaveis a serem usadas
system("color 09&quot;//Muda a cor
while(op != 5)//whilw menu
{
printf("\n-- -- BIBLIOTECA -- --\n&quot;
printf("\n\t|--- MENU ---|\n\t| 1 - Incluir|\n\t| 2 - Alterar|\n\t| 3 - Excluir|\n\t| 4 - Listar |\n\t| 5 - Sair |\n\t--------------\t\nOpcao -> &quot;
scanf("%i", &op);

system("cls&quot;

switch(op)
{
case 1: // CADASTRAR
{
posicao = verifica_pos();
if(posicao != -1)//If - Verifica se pode cadastrar ou se codigo ja existe
{
printf("\nEntre com o codigo de registro do livro : &quot;
scanf("%i", &codaux);
fflush(stdin);
retorno = verifica_cod(codaux);

if (retorno == 1 ){
incluir(codaux, posicao);
}
else{
printf("\nCodigo ja existente ou excluido&quot;
printf("\nTente outro codigo\n&quot;
}
}
else
printf("\nNão e possivel realizar mais cadastro !&quot;
break;
}
case 2: //ALTERA
{
alterar();
break;
}

case 3: //EXCLUIR
{
excluir();
break;
}
case 4://LISTAR
{
listar();
break;
}
case 5://SAIR DO PROGRAMA
{
printf("\nPrograma Biblioteca - By Brendon Alex &quot;
getchar();
break;
}
default://Nenhuma das opções acima
printf("\nOpcao Invalida&quot;
break;

}
}
getchar();
return 0;

}//FINAL FUNÇAO MAIN

//FUNÇÃO CADASTRAR
void incluir(int cod, int cont)
{
cont = verifica_pos();
registro[cont].cod = cod;
fflush(stdin);
printf("\nTipo da Obra \n&quot;
gets(registro[cont].tipo_obra);

printf("\nTiluto da Obra \n&quot;
gets(registro[cont].titulo_obra);

printf("\nNumero da Obra \n&quot;
gets(registro[cont].numero_obra);

printf("\nAutor \n&quot;
gets(registro[cont].autor);

printf("\nEditora \n&quot;
gets(registro[cont].editora);

printf("\nNumero de Volumes \n&quot;
gets(registro[cont].numero_volume);

printf("\nData de Edicao \n&quot;
gets(registro[cont].data_edicao);

registro[cont].vazio = 1;

printf("\nInclusao do livro feita com sucesso.\n&quot;
cont ++;
getchar();
system("cls&quot;


}


//FUNÇÃO VERIFICA POSIÇÃO
int verifica_pos()
{
int cont = 0;
while (cont <= 200)
{
if (registro[cont].vazio == 0)
return(cont);
cont++;
}
return(-1);
}


//FUNÇÃO ZERAR
void zerar()
{
int cont;
for (cont = 0; cont <= 200; cont++)
registro[cont].vazio = 0;
registro[cont].cod = 0;
}


//FUNÇÃO VERIFICA CODIGO
int verifica_cod(int cod)
{
int cont = 0;
while (cont <= 200)
{
if (registro[cont].cod == cod)
return(0);
cont++;
}
return(1);
}


//Função Alterar
void alterar(void)
{
int cod,cont=0;
printf("\nDigite o Codigo do livro que deseja alterar : &quot;
scanf("%i",&cod);
//if(cod == registro[cont].cod)
//{
while(cont <= 200)
{
if(registro[cont].cod == cod)

if(registro[cont].vazio == 1)
{
fflush(stdin);
printf("\nTipo da Obra \n&quot;
gets(registro[cont].tipo_obra);

printf("\nTiluto da Obra \n&quot;
gets(registro[cont].titulo_obra);

printf("\nNumero da Obra \n&quot;
gets(registro[cont].numero_obra);

printf("\nAutor \n&quot;
gets(registro[cont].autor);

printf("\nEditora \n&quot;
gets(registro[cont].editora);

printf("\nNumero de Volumes \n&quot;
gets(registro[cont].numero_volume);

printf("\nData de Edicao \n&quot;
gets(registro[cont].data_edicao);


printf("\nInclusao do livro feita com sucesso.\n&quot;
getchar();
system("cls&quot;
}
cont ++;
}
//}

}





//Função Excluir

void excluir(void)
{
int cont = 0, cod;
char resp;
printf("\nDigite o Codigo do Livro que deseja Excluir : &quot;
scanf("%i", &cod);
system("cls&quot;

while(cont <= 200)
{

if (registro[cont].cod == cod)
{
if (registro[cont].vazio == 1)
{
printf("\nTipo da Obra %s", registro[cont].tipo_obra);
printf("\nTiluto da Obra %s", registro[cont].titulo_obra);
printf("\nNumero da Obra %s", registro[cont].numero_obra);
printf("\nAutor %s", registro[cont].autor);
printf("\nEditora %s", registro[cont].editora);
printf("\nNumero de Volumes %s", registro[cont].numero_volume);
printf("\nData de Edicao %s", registro[cont].data_edicao);

getchar();

printf("\nDeseja realmente excluir ? - S = Sim / N = Nao : &quot;
scanf("%s", &resp);

if((resp == 's') || (resp == 'S'))
{
registro[cont].vazio = 0;
printf("\nLivro excluido com sucesso\n&quot;
break;
}
else if((resp == 'n') || (resp == 'N'))
{



printf("\nExclusão cancelada\n&quot;
break;
}
}
}
cont ++;
}
}


//FUNÇÃO listar
void listar(void)
{
int i,cont =0;



for(i=0;registro[cont].cod;i++){


if(registro[cont].vazio == 0){
printf("\n&quot;
}else{


printf("\nCodigo do livro %i", registro[cont].cod);
printf("\nTipo da Obra %s", registro[cont].tipo_obra);
printf("\nTiluto da Obra %s", registro[cont].titulo_obra);
printf("\nNumero da Obra %s", registro[cont].numero_obra);
printf("\nAutor %s", registro[cont].autor);
printf("\nEditora %s", registro[cont].editora);
printf("\nNumero de Volumes %s", registro[cont].numero_volume);
printf("\nData de Edicao %s", registro[cont].data_edicao);
printf("\n-----------------------------------\n&quot;
}
cont ++;


}

}

/*
Universidade Camilo Castelo Branco

Analise e Desenvolvimento de Sistemas

Projeto Integrador II

Prof° Roberto

Brendon Alex da Gama Silva

*/







© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal