Jump to content

SGTFalcao

Members
  • Content count

    1
  • Joined

  • Last visited

Community Reputation

0 Comum

About SGTFalcao

  1. Boa noite, Preciso de ajuda com o desenvolvimento de um programa. Quero saber 3 coisas . 1 - Criei uma vetor de struct vinculada a uma constante de valor 5. Quero saber como faço para limitar o cadastro ao tamanho da constante ( controla o n° de posições do vetor da struct) De forma que ao cadastrar 5 livros ele impeça de cadastrar o sexto. 2- Impedir que dos 5 cadastros algum deles se repita. (Livros iguais) 3- Se eu der o comando para exibir a lista de dados cadastrados e não houver nenhum ele tem que informar lista vazia. Segue o meu código. #include<stdio.h> #include<stdlib.h> #include<string.h> #define Max_livros 5 struct biblio{ char nomeobra[30]; char nomeedit[30]; char nomeaut[30]; int codigo; int ativo; }; biblio livros[Max_livros]; void menu(); void cadastrar(); void mostrar(); // Menu principal -------------------------INICIO------------------------------- int main(){ menu(); return 0; } // -----------------------------------------FIM--------------------------------- void menu(){ int op; do{ system("cls"); printf("---------->>Sistema para bibliotecas<<----------\n \n \n "); printf("\n1 - Inserir um novo cadastro: "); printf("\n2 - Mostrar todos os cadastros: "); printf("\n0 - Encerrar \n\n"); printf("Opcao escolhida: "); scanf("%d",&op); getchar(); fflush(stdin); switch(op){ case 1: cadastrar(); break; case 2: mostrar(); break; default : system("cls"); printf("\n \n =========================================="); printf("\n\n\n\n\t Erro : opcao invalida!!!\n\n\n\n"); printf("\n \n ==========================================\n\n"); system("pause"); } getchar(); }while(op!=0); } void cadastrar(){ system("cls"); char nomeobra[20]; char nomeedit[20]; char nomeaut[20]; int codigo; int op; do{ codigo=0; codigo=codigo+1; printf("\nDigite o nome da obra: "); fgets(nomeobra,sizeof(nomeobra),stdin); printf("\nDigite o(s) nome(s) d(os) autor(es): "); fgets(nomeaut,sizeof(nomeaut),stdin); printf("\nDigite o nome da editora: "); fgets(nomeedit,sizeof(nomeedit),stdin); for(int i=0;i<Max_livros;i++){ if(livros.ativo==0) { strcpy(livros.nomeobra,nomeobra); strcpy(livros.nomeaut,nomeaut); strcpy(livros.nomeedit,nomeedit); livros.ativo=1; break; } } printf("\n1 - Continuar \n0 - Sair \n\n"); scanf("%d",&op); getchar(); fflush(stdin); }while(op!=0); } void mostrar(){ int codigo=0; system("cls"); printf("------------->>Lista de livros cadastrados<<-------------\n \n \n"); for(int i=0;i<Max_livros;i++){ if(livros.ativo==1){ codigo=codigo+1; printf("\nCodigo: %d\n",codigo); printf("\nNome da Obra: %s\n",livros.nomeobra); printf("\nNome do(s) autor(es): %s\n",livros.nomeaut); printf("\nNome da editora: %s\n",livros.nomeedit); printf("\n\n--------------------------------\n\n"); } } printf("\n\nPressione '0' para voltar ao menu..."); getchar(); fflush(stdin); }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.