Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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);
} Carregando comentários...