- [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]
brendon alex
Novo Membro
Registrado
2 Mensagens
0 Curtidas
Programa C - função listar
#1 Por brendon alex
16/09/2015 - 09:48