Ir ao conteúdo
  • Cadastre-se

C Sistema de Organização de Biblioteca (Programado em C)


Daniel13

Posts recomendados

Código de organização de livros de uma biblioteca, bem simples, era só pra treinar alguns conceitos.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <string.h>
#define qtd 2

//define a estrutura
typedef struct Bibli
{
	float cod;
	char titulo[25], autor[25], editora[25], nome[25];
	int ano;	
}biblio;

//define a quantidade de livros (váriavel global)
biblio livros[qtd];

//função pra "limpar" o espaço do livro
void limpa()
{
	int i;
	
	for (i=0; i<qtd; i++)
	{
		livros[i].titulo[0]=' ';
		livros[i].autor[0]=' ';
		livros[i].editora[0]=' ';
		livros[i].cod=0;
		livros[i].ano=0;		
		livros[i].nome[0]=0;			
	}	
}

//função pra incluir livros
biblio inclui()
{
	biblio livro;
	
	printf("\nInsira o código do livro: ");
	scanf("%f", &livro.cod);
	printf("Insira o título do livro: ");
	__fpurge(stdin);
	gets(livro.titulo);
	printf("Insira o autor do livro: ");
	__fpurge(stdin);
	gets(livro.autor);
	printf("Insira o editora do livro: ");
	__fpurge(stdin);
	gets(livro.editora);
	printf("Insira o ano de publicação do livro: ");
	scanf("%d", &livro.ano);	
	
	return (livro);			
}

//função pra excluir livros
void exclui()
{
	float codi;
	int i;
	
	printf("Insira o código do livro que quer excluir: ");
	scanf("%f", &codi);
	if(codi==0)
	printf("Livro não existe.\n");
	else
		for(i=0; i<qtd; i++)
			if(codi==livros[i].cod)
			{
				limpa();
				break;
			} 
}

//função pra consultar livros
int consulta()
{
		int opc, i;
		float codi;
		char volta;
		
		system("clear");
		printf("\n=========================================\n");	
		printf("CONSULTAR\tCÓDIGO\n\n");
		printf("UM LIVRO\t1\nTODOS LIVROS\t2\n");
		printf("=========================================\n");	
		printf("Insira o código(0 para sair): ");
		scanf("%d", &opc);	
		
		if(opc==1)
		{	
			printf("Insira o código do livro: ");
			scanf("%f", &codi);
			for(i=0; i<qtd; i++)
			{
				if(codi==livros[i].cod && livros[i].nome[0]==0)
				{
						printf("\nO livro é: %s\nO autor é: %s\nA editora é: %s\nO ano de lançamento: %d\nO código: %.1f\nSituação: Disponível\n", livros[i].titulo, livros[i].autor, livros[i].editora, livros[i].ano, livros[i].cod);	
						break;
				}		
				else if(codi==livros[i].cod)
				{
						printf("\nO livro é: %s\nO autor é: %s\nA editora é: %s\nO ano de lançamento: %d\nO código: %.1f\nSituação: Indisponível\n", livros[i].titulo, livros[i].autor, livros[i].editora, livros[i].ano, livros[i].cod);	
						break;		
				}										
		 }
	  } 
		
		else if(opc==2)
		{
			printf("\nTodos livros da biblioteca:\n");
			for(i=0; i<qtd; i++)
			{
				if(livros[i].cod!=0 && livros[i].nome[0]==0)
				printf("\nLivro: %s \t Código: %.1f\nSituação: Disponível\n", livros[i].titulo, livros[i].cod);		
				else if(livros[i].cod!=0)
				printf("\nLivro: %s \t Código: %.1f\nSituação: Indisponível\n", livros[i].titulo, livros[i].cod);							
		  } 
		}  
		
		printf ("\nQuer retornar a tela principal (s/n)? ");
		__fpurge(stdin);
		scanf("%c", &volta);
					
		if(volta =='s')
			return(1);
		else
			return(0);
}

//função pra emprestar livros
int empresta()
{
	int i;
	float codi;
	char name[25], volta;
	
	printf("Escreva seu nome: ");
	__fpurge(stdin);
	gets(name);
	
	printf("Insira o código do livro que quer pegar emprestado: ");
	scanf("%f", &codi);
	
	if(codi==0)
		printf("O livro não existe.\n");
	else
	{
		for(i=0; i<qtd; i++)
		{
			if(codi==livros[i].cod && livros[i].nome[0]==0)
			{
				strcpy(livros[i].nome, name);
				printf("\nO livro %s foi emprestado para %s.\n", livros[i].titulo, livros[i].nome);
				break;
			}
			else
			{
				printf("Esse livro não está disponível.\n"); 
				break;
			}	
		}	
	}	
	
		printf ("\nQuer retornar a tela principal (s/n)? ");
		__fpurge(stdin);
		scanf("%c", &volta);
					
		if(volta =='s')
			return(1);
		else
			return(0);				
}

//função pra devolver livros
int devolve()
{
	int i;
	float codi;
	char name[25], volta;
	
	printf("Insira o código do livro que quer devolver: ");
	scanf("%f", &codi);
	
		for(i=0; i<qtd; i++)
		{
			if(codi==livros[i].cod)
			{
				printf("Confirme seu nome para a devolução: ");
				__fpurge(stdin);
				gets(name);

				if(!(strcmp(name, livros[i].nome)))
				{
					printf("\nO livro %s foi devolvido com sucesso.\n", livros[i].titulo);
					livros[i].nome[0]=0;
					break;					
				}
			} 
			else
			printf("O livro não está emprestado.");
		}	
		printf ("\nQuer retornar a tela principal (s/n)? ");
		__fpurge(stdin);
		scanf("%c", &volta);
					
		if(volta =='s')
			return(1);
		else
			return(0);						
}

//roda a biblioteca
void main()
{
	int opc, keb=3;
	int i, j=0;

	limpa();
	
	while(1)
	{			
		system("clear");
		printf("\n=========================================\n");	
		printf("DESEJA FAZER\tCÓDIGO\n\n");
		printf("INCLUSÃO\t1\nEXCLUSÃO\t2\nCONSULTA\t3\nEMPRÉSTIMO\t4\nDEVOLUÇÃO\t5\n");
		printf("=========================================\n");	
		printf("Insira o código(0 para sair): ");
		scanf("%d", &opc);
		switch(opc)
		{
			case 1:
			livros[j] = inclui();
			j++;
			break;
			case 2:
			exclui();
			break;
			case 3:
		  keb = consulta();
			break;
			case 4:
			keb = empresta();
			break;
			case 5:
			keb = devolve();
			break;
		}
		if(opc==0 || keb==0)
			break;
	}	
}

Qualquer dúvida, tentarei responder.

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...