Buscar

Sistema para Biblioteca

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIP-UNIVERSIDADE PAULISTA
Projeto Integrado Multidisciplinar II
Cursos Superiores de Tecnologia 
PROJETO DESENVOLVIMENTO DE 
SISTEMA BIBLIOTECARIO
SÃO PAULO
2015/2ºSemestre
 
10
BRUNO SALES 
HUGO CONCEIÇÃO 
JEFERSON SILVA ROCHA 
LUCAS GIOVANNI 
LUCAS GIZI GONÇALVES 
WELLINGTON VIANA 
PROJETO DESENVOLVIMENTO DE
 SISTEMA BIBLIOTECARIO
	Projeto Integrado Multidisciplinar apresentado à UNIP UNIVERSIDADE PAULISTA do curso de Análise e Desenvolvimento de Sistemas.
Orientador: Profº Rogério Silva.
SÃO PAULO
2015/2ºSemestre
BRUNO SALES 
HUGO CONCEIÇÃO 
JEFERSON SILVA ROCHA 
LUCAS GIOVANNI 
LUCAS GIZI GONÇALVES 
WELLINGTON VIANA 
PROJETO DESENVOLVIMENTO DE
 SISTEMA BIBLIOTECARIO
	Projeto Integrado Multidisciplinar apresentado à UNIP UNIVERSIDADE PAULISTA do curso de Análise e Desenvolvimento de Sistemas.
Aprovado em:
BANCA EXAMINADORA
_______________________ __/__/___
Professor
Universidade Paulista-UNIP
_______________________ __/__/___
Professor
Universidade Paulista-UNIP
_______________________ __/__/___
Professor
Universidade Paulista-UNIP
AGRADECIMENTOS
Agradecemos primeiramente a Deus, por ter nos concedido força e animo para chegarmos até aqui.
Aos nossos familiares que sempre nos apoiaram e também compreenderam os dias ausentes. Aos nossos amigos e cônjuges que sempre nos motivaram a prosseguir na conclusão deste projeto.
Também agradecemos aos nossos professores que nos ajudaram em tudo, em especial ao prof. e orientador do projeto Rogério Silva que se disponibilizou a ajudar com as críticas construtivas para a melhoria de nosso trabalho.
Finalmente agradecemos a todos que de alguma forma direta ou indiretamente ajudaram com ideias e sugestões para a realização do projeto, e a toda turma de ADS e ao nosso grupo ao qual realizaram este trabalho que nos deram momentos de alegria durante nossa formação neste semestre.
	
“Seu trabalho vai preencher uma parte grande da sua vida, e a única maneira de ficar realmente satisfeito é fazer o que você acredita ser um ótimo trabalho. E a única maneira de fazer um excelente trabalho é amar o que você faz.” 
Steve Jobs
RESUMO
Este PIM (Projeto Integrado Multidisciplinar), contém todo o descritivo do sistema de controle bibliotecário.
Desenvolvido em linguagem de programação “C”, tendo como principal foco o gerenciamento de uma biblioteca escolar de ensino médio, visando à melhoria, organização, e controle do ambiente.
Implantado na biblioteca da instituição, o sistema consiste em realizar consultas, inclusões e exclusões de livros. Além disso, controlar todos os processos de empréstimos, facilitando a rotina de trabalho do bibliotecário, gerando versatilidade, agilidade, gerenciamento e eficiência em suas tarefas diárias.
Palavras-chave: Sistema, biblioteca, programação, gerenciamento.
ABSTRACT
This PIM (Integrated Project Multidisciplinary), contains all descriptive Librarian control system.
Developed in "C" programming language, focusing mainly on the management of a school library of high school for improvement, organization, and environmental control.
Deployed in the library of the institution, the system consists of performing consultations, inclusions and exclusions books. In addition, control all processes loans, facilitating the librarian's work routine, generating versatility, agility, manageability and efficiency in their daily tasks.
Keywords: System, libary, programming, management.
SUMÁRIO DE IMAGENS
Figura 1 - Organograma de menus do sistema..	16
Figura 2 - Tela de login do sistema..	17
Figura 3 - Menu principal do sistema.	18
Figura 4 - Menu de consulentes.	18
Figura 5 - Menu de livros..	19
Figura 6 - Menu de movimentação do acervo.	20
Sumário
1 INTRODUÇÃO	10
1.1 Apresentação geral	10
1.2 justificativa	10
1.3 Objetivos	11
1.3.1 Objetivo geral	11
1.3.2 Objetivos específicos	11
1.4 Metodologia	11
2 DESCRIÇÃO DO FUNCIONAMENTO GERAL DE UMA BIBLIOTECA	12
2.1 Profissionais da biblioteca escolar	12
2.1.1 Bibliotecário	12
2.1.2 Auxiliar de biblioteca	12
2.2 Funções e objetivos	13
3 ESTRUTURA PARA DESENVOLVIMENTO DO SISTEMA	14
3.1 Ferramentas utilizadas	14
3.1.1 Dev-C++	14
3.1.1 Linguagem C	14
3.2 Organização do sistema	14
4 PROPOSTA DO GRUPO PARA IMPLANTAÇÃO DO SISTEMA EM UMA INSTUIÇÃO DE ENSINO	20
5 RELAÇÃO DAS DISCIPLINAS DO SEMESTRE COM O DESENVOLVIMENTO DO PIM	21
5.1 Matemática para computação	21
5.2 Fundamentos de redes	21
5.3 Linguagens e técnicas de programação	21
5.4 Engenharia de software	21
5.5 Metodologia científica	22
5.6 Ética e legislação profissional	22
6 CONCLUSAO	23
7 REFERENCIAS	24
ANEXO – Código do sistema	25
1 INTRODUÇÃO
1.1 Apresentação geral
O presente trabalho foi elaborado com o objetivo de mostrar a viabilidade e utilização de um sistema bibliotecário em uma determinada instituição que proporcione a mesma, segurança e organização de seus processos diários no gerenciamento dos livros da biblioteca.
Para a elaboração do projeto, foi comparada a maneira atual do gerenciamento dos processos bibliotecários, com a maneira por nós apresentada. Observamos e destacamos que a instituição usava um meio antigo para os procedimentos bibliotecários, realizando todo o controle de forma manuscrita. 
Com base nesses dados, formulamos a hipótese de que os procedimentos usados pela biblioteca para gerenciar os dados, poderia causar perdas de grande importância. Podemos citar algumas como: usuários não realizando a devolução dos materiais emprestados e perca de dados dos consulentes.
1.2 justificativa
Estima-se que com um software de gerenciamento bibliotecário, a instituição escolhida para do projeto, possa obter melhorias em seus procedimentos, mantendo o controle de seus materiais, bem com a organização e reorganização.
Além disso, a ferramenta apresenta ao bibliotecário, módulos de consulta referente à disponibilidade do material solicitado e também conta com funções de inclusão, exclusão e alteração dos dados contidos no sistema, possibilitando ao bibliotecário um tempo maior para desenvolver suas tarefas do dia a dia.
Um trunfo importante de um sistema informatizado é o controle adicional de todas as funções da biblioteca que se consegue com a ajuda de informações gerenciais mais abrangentes. Essas informações facilitam a justifica de uma boa causa e um processo decisório eficaz. (ROWLEY, 1994, p. 230).
1.3 Objetivos
1.3.1 Objetivo geral
O sistema apresentado tem como objetivo, gerenciar todas as tarefas de uma biblioteca, visando a melhoria, organização e controle dos dados, de forma que a biblioteca tenha uma estrutura informatizada no controle de cadastros de livros, empréstimos e devoluções feitos pelos consulentes.
1.3.2 Objetivos específicos
a. Oferecer controle do acervo de forma informatizada;
b. Cadastrar livros e consulentes
c. Controlar empréstimos e devoluções
1.4 Metodologia
Para elaboração do projeto, realizamos pesquisa de campo na própria instituição que foi alvo do nosso trabalho, pode ser considerada do tipo qualitativa. A forma qualitativa é aquela que possui caráter exploratório, é utilizada quando se busca entendimento sobre a natureza geral de uma questão, abrindo espaço para comprovar teorias, hipóteses e modelos já existentes.
A pesquisa tem como objetivo proporcionar maior familiaridade com o problema, com vista torná-lo mais explícito. O objetivo de estudo, restringe-se a uma instituição de ensino médio na área da biblioteca.
Como técnica de coleta de dados, realizou-se visitas técnicas juntamente com o próprio bibliotecário da instituição afim de que obtivéssemos informações a respeito de determinados problemas que afetavam os processos diários da biblioteca.
2 DESCRIÇÃO DO FUNCIONAMENTO GERAL DE UMA BIBLIOTECA
A finalidade básica de uma biblioteca escolar é tornar livros e outros materiais didáticos accessíveis a professores e alunos, em apoio ao programa de ensino, e promover o desenvolvimento intelectual geral deum estudante, em especial desenvolvendoa habilidade no uso de livros e bibliotecas. Deve desempenhar papel ativo no processo educacional, persuadindo corpo docente e discente a ler e usar livros, dando orientação na leitura, e encorajando leitura de qualidade mais elevada e a formação do hábito de leitura por prazer e auto-educação. (PENNA, C. V; FOSKETT, D.J; SWEWLL, P.H, 1979, p. 61).
2.1 Profissionais da biblioteca escolar
2.1.1 Bibliotecário
O trabalho de um bibliotecário é administrar informações abrangendo as áreas de logística que consiste na organização e analises de implementações em uma biblioteca, além de informar usuários sobre o acervo de livros presente.
2.1.2 Auxiliar de biblioteca
Um auxiliar de biblioteca atua na área de troca de informações para com os leitores, como o auxílio de uma sessão de livros e comunicados a respeito de informações geridas pelo bibliotecário.
2.2 Funções e objetivos
Uma biblioteca é importante para complementação de estudos para alunos de ensino médio, visando incentivar a leitura e auxiliar nos conhecimentos suprindo limitações didáticas. Consiste de mídias, livros, CDROM, DVD, slides, folhetos e filmes. Deve contas com espaço para leitura e empréstimos realizados tendem a ter 7 dias antes da devolução do livro, podendo ser feita e renovação do mesmo, no entanto, o atraso na entrega pode gerar punições como impedimento temporário para adquirir novos exemplares.
3 ESTRUTURA PARA DESENVOLVIMENTO DO SISTEMA
3.1 Ferramentas utilizadas
3.1.1 Dev-C++
O Dev-C++ é um ambiente de desenvolvimento para as linguagens C e C++ distribuído sob a licença GPLv2, ele foi usado para escrever o código-fonte do sistema e fazer a maioria dos testes.
3.1.1 Linguagem C
Segundo BACKES, André (2013, p. 2): ”A linguagem C foi criada em 1972 nos laboratórios Bell, por Dennis Ritchie”. É uma linguagem considerada de médio nível e bastante portável, já que existe um compilador C para a maioria das arquiteturas de computadores. O sistema foi desenvolvido em linguagem C.
O sistema é organizado em um menu principal onde só é concedido acesso após aprovação na tela de login.
3.2 Organização do sistema
O sistema armazena todos os dados em arquivos binários com extensão .sgb, e como o programa não cria os arquivos, o usuário deve criá-los antes da execução do programa para que não ocorra erro na execução. São três arquivos para armazenamento dos dados, sendo eles:
a) livros.sgb: armazena as informações referentes aos livros da biblioteca;
b) usuarios.sgb: armazena informações dos usuários da biblioteca; e
c) emprestimos.sgb: armazena informações dos empréstimos realizados na biblioteca.
O organograma de funcionamento do sistema pode ser visualizado na FIG. 1:
 (
Figura 
1
 - Organograma de menus do sistema. Dos autores, 2015.
)
Ao iniciar o programa é apresentada a tela de login (FIG. 2), onde é preciso digitar o usuário e senha corretos para ter acesso ao sistema.
 (
Figura 
2
 - Tela de login do sistema.
 Dos
 autores, 2015.
)
Após o login, o sistema exibe o menu principal (FIG. 3), onde existem quatro opções para o usuário prosseguir, as opções são:
a) Menu de consulentes (FIG. 4);
b) Menu de livros (FIG. 5);
c) Menu de movimentação (FIG. 6); e
d) Voltar.
Em todos os menus é exibida a opção de voltar, isso oferece um fluxo melhor no sistema.
 (
Figura 
3
 - 
Menu principal do sistema.
 Dos autores, 2015.
)
No menu de consulentes é possível procurar, cadastrar e excluir usuários da biblioteca.
 (
Figura 
4
 - 
Menu de consulentes.
 Dos autores, 2015.
)
No menu de livros é possível buscar um livro por título, autor ou ISBN na opção de consultar livros. Também há as opções para cadastrar ou excluir livros e listar todos os livros cadastrados.
 (
Figura 
5
 
- Menu de livros.
 Dos autores, 2015.
)
No menu de movimentação existem as opções para registrar um novo empréstimo e realizar uma operação de devolução, além de listar todos os empréstimos.
 (
Figura 
6
 - 
Menu de movimentação do acervo.
 Dos autores, 2015
)
4 PROPOSTA DO GRUPO PARA IMPLANTAÇÃO DO SISTEMA EM UMA INSTUIÇÃO DE ENSINO
O sistema que desenvolvemos com base nos dados obtidos, será implantado em uma instituição estadual de ensino médio, onde a mesma possui 450 alunos inscritos, sendo que em sua estrutura possui seis computadores ao qual se encontram sem utilidades dentro da biblioteca da instituição.
Diante do conhecimento que obtemos, a instituição de ensino realiza seus processos de controle de acervo bibliográfico através de anotações em cadernos e livros, processo esse que já se tornou muito antigo pela complicação na perda de dados e anotações importantes referentes a empréstimos realizados pelos alunos e também a perca de livros do acervo, e também a perca de tempo e falta de organização de todo acervo. Entretanto, um dos problemas que foi mais destacado pela instituição, foi em não haver um sistema adequado de controle que atenda suas necessidades diárias dos bibliotecários e dos consulentes.
Devido a todas essas informações a nós contribuídas, apresentamos para a biblioteca um novo modelo de gestão, ou seja, um sistema de controle que atenderá suas necessidades. O novo sistema que apresentamos, conta com uma estrutura de modelos de controle e pesquisa do seu acervo.
O sistema, controlará os consulentes que terão de ser cadastrados pelo próprio bibliotecário afim de verificar a porcentagem de usuários existentes na biblioteca e também verificar data, hora e quem realizou o empréstimo e qual livro foi emprestado. Além disso o bibliotecário também realizara o cadastro de todo acervo no próprio sistema, bem como exclusão e alteração do acervo. O sistema também contara com segurança de seus dados, ou seja, apenas os bibliotecários autorizados terão acesso ao sistema através de login, dificultando assim o acesso de pessoas não autorizadas para que não haja nenhum tipo de roubo de dados ou alterações indevidas o que ocasionaria o retrabalho dos bibliotecários em reorganizar e repor todas as informações no sistema.
5 RELAÇÃO DAS DISCIPLINAS DO SEMESTRE COM O DESENVOLVIMENTO DO PIM 
5.1 Matemática para computação
O uso da matemática é constante em qualquer área de exata, assim como para desenvolver este projeto, foram aplicados os conhecimentos da teoria de conjuntos para diferenciar a quais elementos como livros e seus conjuntos, que seriam autores, temas e gêneros, assim como também as facilidades e resoluções de contas que a matemática proporciona.
5.2 Fundamentos de redes
Usando a matéria de fundamento de redes foi possível identificar qual a rede de computadores da escola que a escola utiliza, pelo espaço geográfico que os dados são armazenados, transferidos e a quem que os equipamentos do estabelecimento pertencem. 
5.3 Linguagens e técnicas de programação
Matéria essencial para o desenvolvimento do projeto, com ela aprendemos os fundamentos da linguagem C, usada para desenvolver o sistema para a biblioteca.
5.4 Engenharia de software
Estudamos metodologias de desenvolvimento de software, assim a construção do sistema foi feita de forma organizada.
5.5 Metodologia científica
A Metodologia Cientifica foi a base para as pesquisas do projeto, fornecendo orientações sobre métodos de pesquisas, e formas de organização e apresentação do projeto de acordo com as normas da ABNT
5.6 Ética e legislação profissional
Através da disciplina de Ética e Legislação Profissional, fomos orientados como desenvolver um projeto respeitando as leis, sem infringir patentes, e respeitando a propriedade intelectual e direitos autorais.
6 CONCLUSAO
Pela observação dos aspectos analisados, foi possível identificar a necessidade de implantação de novas tecnologias e métodos para adequar o ambiente bibliotecário da instituição, dados os benefícios em que a informatização traria mudanças positivas no funcionamento da biblioteca. 
Visto que todo controle da biblioteca era feito de forma manuscrita, foi desenvolvido um sistema do qual atendesse as tarefas realizadas pelo bibliotecário, afim de que as mesmas pudessem ser realizadas de maneira pratica,segura e ágil, possibilitando eficiência no gerenciamento dos dados e organização de todo acervo.
Concluímos que o desenvolvimento do trabalho foi de grande importância para nosso conhecimento em técnicas de programação em linguagem “C”, pois através da ementa conseguimos colocar em pratica tudo o que nos foi apresentado e proposto para a elaboração do projeto.
 7 REFERENCIAS 
BACKES, André. Linguagem C: Completa e descomplicada. Rio de Janeiro: Elsevier, 2013.
ROWLEY, Jennifer. Informática para bibliotecas. Brasília: Lemos Informação e Comunicação Ltda., 1994.
PENNA, C. V; FOSKETT, D.J; SWEWLL, P.H. Serviços de informação e biblioteca. São Paulo: Livraria pioneira editora, 1979.
Bloodshedsoftware: Dev-C++ 5 <http://www.bloodshed.net/devcpp.html> Acesso em: 20 Nov, 2015.
GCC, the GNU Compiler Collection <https://gcc.gnu.org/> Acesso em: 17 Nov, 2015
Mini-Curso: Organizando e ativando a biblioteca escolar: desafios e propostas para a escola contemporânea <http://www.ufjf.br/virtu/files/2010/04/artigo-2a7.pdf> Acesso em: 9 Out, 2015.
ANEXO – Código do sistema
10
#include <windows.h>
#include <locale.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <time.h>
#define LIVROS_DB "livros.sgb"
#define USUARIOS_DB "usuarios.sgb"
#define EMPRESTIMOS_DB "emprestimo.sgb"
// Estruturas
struct Consulente{
	char usuario[50];
	int classe[50];
	
};
struct Livro{
	char titulo[50];
	char autor[50];
	char editora[50];
 int anopublicacao;
	char codigo[50];
	int total;
	char isbn[20];
	
};
struct Emprestimo{
	char usuario[50];
	int idLiv;
	time_t dataIni;
	time_t dataFin;
};
boolean login(){
	
	char usuario[15];
	char senha[15];
	boolean logado;
	
	int op = 0;
 	
	do{
		srand(time(NULL));
		
		clrscr();		
		printf("\n\n\n");		
 	printf("------- Sistema de Gestão de Bibliotecas --------\n\n");
		printf("+================================================+\n");
		printf("| Usuário: |\n");
		printf("| Senha: |\n");
		printf("| |\n");
		printf("+================================================+\n");
		
		
		gotoxy(13,7);
		gets(usuario);		
		
		//receber senha sem echo
 	DWORD mode = 0;
		HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); 	
 	GetConsoleMode(hStdin, &mode);
 	SetConsoleMode(hStdin, mode & (~ENABLE_ECHO_INPUT)); 	
		gotoxy(11,8);						
		gets(senha);				
		SetConsoleMode(hStdin, mode);
				
		
		//comparar usuario e senha com arquivo
		char senhaAdm[10] = {'1', '2', '3', '4', '\0'};
		char usuarioAdm[10] = {'a', 'd', 'm', '\0'};								
		logado = 0;						
		if(strcmp(senhaAdm, senha) == 0 && strcmp(usuarioAdm, usuario) == 0){
			logado = 1;
		
			return 1;
		}else{
			clrscr();
			printf("Usuário ou senha inválios.\n");
			printf("\n");
			printf("1 - Tentar novamente.\n");
			printf("2 - Sair.\n");
			
			op = (int)((char)getch() - '0');
		}					
	}while(op != 2);
	return 0;	
}
// Emprestimo
void empLivro() {
	FILE *arquivo, *arquivo2, *arquivo3;
	struct Emprestimo *emprestimo = malloc(sizeof(struct Emprestimo));
	struct Livro *livro = malloc(sizeof(struct Livro));
	struct Livro *livro2 = malloc(sizeof(struct Livro));
	time_t dataIni, dataFin;
	int op = 0;
	
	clrscr();
	do {
		printf("Digite o usuario: ");
		gets(emprestimo->usuario);
		printf("Digite o id do livro: ");
		fgets((int)emprestimo->idLiv, 20, stdin);
		dataIni = time(NULL);
		dataFin = ((time_t)(604800 + (int)(time(NULL))));
	 
	 arquivo2 = fopen(LIVROS_DB, "rb");
		while(fread(livro, sizeof(struct Livro), 1, arquivo2) != '\0'){		
			if (strcmp(emprestimo->idLiv, livro->codigo) == 0){							
				*livro2 = *livro;
			}
		}
		livro2->total -= 1;
	 
		arquivo3 = fopen("temp", "wb");
	 while(fread(livro, sizeof(struct Livro), 1, arquivo2) != '\0'){		
			if (strcmp(emprestimo->idLiv, livro->codigo) != 0){							
				fwrite(livro, sizeof(struct Livro), 1, arquivo3);
			}
		}
		fclose(arquivo2);
		fclose(arquivo3);
		
		if (strcmp(livro->codigo, "\0") != 0){
			arquivo = fopen(LIVROS_DB, "ab");
			fwrite(livro, sizeof(struct Livro), 1, arquivo3);
			fclose(arquivo3);
		}
		
		remove(LIVROS_DB);
		rename("temp", LIVROS_DB);
		
		if (strcmp(emprestimo->usuario, "\0") != 0){
			arquivo = fopen(EMPRESTIMOS_DB, "ab");
			fwrite(emprestimo, sizeof(struct Emprestimo), 1, arquivo);
			fclose(arquivo);
		}
	
		clrscr();
		printf("Deseja incluir realizar outro empréstimo?\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
		op = (int)((char)getch() - '0');
	} while(op != 2);
}
void fazDevo() {
	FILE *arquivo, *arquivo2, *arquivo3;
	struct Emprestimo *emprestimo = malloc(sizeof(struct Emprestimo));
	struct Livro *livro = malloc(sizeof(struct Livro));
	struct Livro *livro2 = malloc(sizeof(struct Livro));
	time_t dataIni, dataFin;
	int op = 0;
	
	clrscr();
	do {
		printf("Digite o usuario: ");
		gets(emprestimo->usuario);
		printf("Digite o id do livro: ");
		scanf("%d", emprestimo->idLiv);
	 
	 arquivo2 = fopen(LIVROS_DB, "rb");
		while(fread(livro, sizeof(struct Livro), 1, arquivo2) != '\0'){		
			if (strcmp(emprestimo->idLiv, livro->codigo) == 0){							
				*livro2 = *livro;
			}
		}
		livro2->total += 1;
	 
		arquivo3 = fopen("temp", "wb");
	 while(fread(livro, sizeof(struct Livro), 1, arquivo2) != '\0'){		
			if (strcmp(emprestimo->idLiv, livro->codigo) != 0){							
				fwrite(livro, sizeof(struct Livro), 1, arquivo3);
			}
		}
		fclose(arquivo2);
		fclose(arquivo3);
		
		if (strcmp(livro->codigo, "\0") != 0){
			arquivo = fopen(LIVROS_DB, "ab");
			fwrite(livro, sizeof(struct Livro), 1, arquivo3);
			fclose(arquivo3);
		}
		
		remove(LIVROS_DB);
		rename("temp", LIVROS_DB);
	
		clrscr();
		printf("Deseja devolver outro livro?\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
		op = (int)((char)getch() - '0');
	} while(op != 2);
}
void lisEmp() {
	FILE *arquivo;
	struct Emprestimo *emprestimo = malloc(sizeof(struct Emprestimo));
	
	clrscr();
	printf("Histórico de empréstimos:\n\n");
	arquivo = fopen(EMPRESTIMOS_DB, "r");
	while(fread(emprestimo, sizeof(struct Emprestimo), 1, arquivo) != '\0'){	
	printf(" \n\n - Código do livro: %s\n - Usuario: %s\n - Data de início: %s\n - Data final: %s\n", emprestimo->idLiv, emprestimo->usuario, emprestimo->dataIni, emprestimo->dataFin);		
	}	
	
	fclose(arquivo);
	getch();
}
void menuMovimentacao() {
	int op;
	
	do{
		clrscr();		
		printf("--- Movimentação do acervo ---\n\n");
		printf("1 - Realizar empréstimo\n");
		printf("2 - Realizar devolução\n");
		printf("3 - Listar empréstimos\n");
		printf("8 - Voltar\n");
		op = (int)((char)getch() - '0');
		
		switch(op){
			case 1:
				empLivro();
				break;
			case 2:
				fazDevo();
				break;
			case 3:
				lisEmp();
				break;
		}		
	}while(op != 8);
}
//CONSULTA DE CONSULENTE
void consultaConsu(){		
	FILE *arquivo;
	struct Consulente *consulente = malloc(sizeof(struct Consulente));
	
	clrscr();
	printf("Consulentes Cadastrados:\n\n");
	arquivo = fopen(USUARIOS_DB, "rb");	
	while(fread(consulente, sizeof(struct Consulente), 1, arquivo) != '\0'){		
		printf("%s\n", consulente->usuario);
	}	
	fclose(arquivo);
	getch();
}
//INCLUSÃO DE CONSULENTES
void incluirConsu(){
	FILE *arquivo;
	struct Consulente *consulente = malloc(sizeof(struct Consulente));
	int op = 0;
	
	do{
		clrscr();
		printf("Digite o nome do consulente que deseja incluir e pressione ENTER\n\n");
		printf("\n\nUsuario: ");
		gets(consulente->usuario);
		printf("\n\nClasse: ");
		scanf("%d",consulente->classe);
		
		
		
		if (strcmp(consulente->usuario, "\0") != 0){
			arquivo = fopen(USUARIOS_DB, "ab");
			fwrite(consulente, sizeof(struct Consulente), 1, arquivo);
			fclose(arquivo);
		}
		
		clrscr();
		printf("Deseja incluir outro consulente?\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
		op = (int)((char)getch() - '0');
	}while(op != 2);
}
// EXCLUSÃO DE CONSULENTES
void excluirConsu(){
	FILE *arquivo;
	FILE *arquivo2;
	struct Consulente *consulente = malloc(sizeof(struct Consulente));char nomeConsulente[50];
	int op = 0;
	
	do{
		clrscr();
		printf("Digite o nome do consulente que deseja excluir e pressione ENTER\n\n");
		printf("Excluir: ");
		gets(nomeConsulente);
		
		arquivo = fopen(USUARIOS_DB, "rb");
		arquivo2 = fopen("temp", "wb");
		while(fread(consulente, sizeof(struct Consulente), 1, arquivo) != '\0'){		
			if (strcmp(nomeConsulente, consulente->usuario) != 0){							
				fwrite(consulente, sizeof(struct Consulente), 1, arquivo2);
			}
		}
		fclose(arquivo);
		fclose(arquivo2);
		
		//substituir arquivo temporarios
		remove(USUARIOS_DB);
		rename("temp", USUARIOS_DB);
		
		
		clrscr();
		printf("Deseja excluir outro consulente?\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
		op = (int)((char)getch() - '0');
	}while(op != 2);
}
//MENU DE CONSULENTE
void consulentes(){
	int op;
	
	do{
		clrscr();		
		printf("--- Consulentes ---\n\n");
		printf("1 - Consultar\n");
		printf("2 - Incluir\n");
		printf("3 - Excluir\n");
		printf("8 - Voltar\n");
		op = (int)((char)getch() - '0');
		
		switch(op){
			case 1:
				consultaConsu();
				break;
			case 2:
				incluirConsu();
				break;
			case 3:
				excluirConsu();
				break;
		}		
	}while(op != 8);
}
// CONSULTAR LIVRO
void consultaLivro() {
 FILE *arquivo;
 struct Livro *livro = malloc(sizeof(struct Livro));
 char termo[20];
 int op=0;
 
 do {
		
 
 system("cls");
 printf("Digite o título, autor ou ISBN a ser pesquisado: \n\n ");
 gets(termo);
 arquivo = fopen(LIVROS_DB, "rb"); 
 while(fread(livro, sizeof(struct Livro), 1, arquivo) != '\0'){
 if (((strstr(livro->titulo, termo)) != NULL) || ((strstr(livro->autor, termo)) != NULL) || ((strstr(livro->isbn, termo)) != NULL)) {
 	 printf("\n");
 	 printf("\nLivro Encontrado\n");
 printf(" - Código: %s\n - Titulo: %s\n - Autor: %s\n - Ano de Publicação: %s\n - Exemplares: %s\n - ISBN: %s\n- Editora: %s\n", livro->codigo, livro->titulo, livro->autor, livro->anopublicacao, livro->total,livro->isbn,livro->editora);
 }
				 
 } 
 fclose(arquivo);
 getch();
 
 
		printf("\n\nDeseja consultar outro livro?\n\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
		op = (int)((char)getch() - '0');
	}while(op != 2);
 
 
}
	
//Listar LIVROS
void listaLivros(){		
	FILE *arquivo;
	struct Livro *livro = malloc(sizeof(struct Livro));
	
	clrscr();
	printf("Livros Cadastrados:\n\n");
	arquivo = fopen(LIVROS_DB, "r");
	while(fread(livro, sizeof(struct Livro), 1, arquivo) != '\0'){	
	printf(" \n\n - Código: %s\n - Titulo: %s\n - Autor: %s\n - Ano de Publicação: %s\n - Exemplares: %s\n - ISBN: %s\n - Editora: %s\n", livro->codigo, livro->titulo, livro->autor, livro->anopublicacao, livro->total, livro->isbn,livro->editora);		
	}	
	
	fclose(arquivo);
	getch();
}
//INCLUSÃO DE LIVROS
void incluirLivros(){
	FILE *arquivo;
	struct Livro *livro = malloc(sizeof(struct Livro));
	int op = 0;
	
	do{
		clrscr();
		printf("Digite o nome do livro que deseja incluir e pressione ENTER\n\n");
		printf("Titulo: ");
		gets(livro->titulo);
		printf("Autor: ");
		gets(livro->autor);
		printf("Código: ");
		gets(livro->codigo);
		printf("Ano de Publicação: ");
		gets(livro->anopublicacao);
		printf("Exemplares: ");
		scanf("%d", livro->total);
		printf("Editora: ");
		gets(livro->editora);
		printf("ISBN:");
		gets(livro->isbn);
		
		if (strcmp(livro->titulo, "\0") != 0){
			arquivo = fopen(LIVROS_DB, "ab");
			fwrite(livro, sizeof(struct Livro), 1, arquivo);
			fclose(arquivo);
			
		}
		
		clrscr();
		printf("***Livro cadastrado com Sucesso***\n\n");
		printf("Deseja incluir outro livro?\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
	
		op = (int)((char)getch() - '0');
		}while(op != 2);
	
}
// EXCLUSÃO DE LIVROS
void excluirLivros(){
	FILE *arquivo;
	FILE *arquivo2;
	struct Livro *livro = malloc(sizeof(struct Livro));
	char nomeLivro[50];
	int op = 0;
	
	do{
		clrscr();
		printf("Digite o nome do livro que deseja excluir e pressione ENTER\n\n");
		printf("Excluir: ");
		gets(nomeLivro);
		
		arquivo = fopen(LIVROS_DB, "rb");
		arquivo2 = fopen("temp", "wb");
		while(fread(livro, sizeof(struct Livro), 1, arquivo) != '\0'){		
			if (strcmp(nomeLivro, livro->titulo) != 0){							
				fwrite(livro, sizeof(struct Livro), 1, arquivo2);
			}
		}
		fclose(arquivo);
		fclose(arquivo2);
		
		//substituir arquivo temporarios
		remove(LIVROS_DB);
		rename("temp", LIVROS_DB);
		
		
		clrscr();
		printf("***Livro excluido com sucesso***\n\n");
		printf("Deseja excluir outro livro?\n");
		printf("1 - Sim\n");
		printf("2 - Não\n");
		op = (int)((char)getch() - '0');
	}while(op != 2);
}
//MENU DE LIVROS
void livros(){
	int op;
	
	do{
		clrscr();		
		printf("--- Livros ---\n\n");
		printf("***Escolha sua Opção***\n\n");
		printf("1 - Listar livros Cadastrados\n");
		printf("2 - Incluir\n");
		printf("3 - Excluir\n");
		printf("4 - Consultar livros \n");
		printf("8 - Voltar\n");
		op = (int)((char)getch() - '0');
		
		switch(op){
			case 1:
				listaLivros();
				break;
			case 2:
				incluirLivros();
				break;
			case 3:
				excluirLivros();
				break;
			case 4:
 consultaLivro();
				break;	
		}		
	}while(op != 8);
}
//Tela de menu principal
void menuPrincipal(){
	int op = 0;
	
	do{	
		clrscr();
		printf("--- Menu Principal ---\n\n");
		printf("\n\nEscolha sua opção\n\n\n");
		printf("1 - Consulente\n");
		printf("2 - Livros\n");
		printf("3 - Movimentação\n");
		printf("9 - Sair\n");	
		op = (int)((char)getch() - '0');
		
		switch(op){
			case 1:
				consulentes();
				break;
			case 2:
				livros();
				break;
			case 3:
			 menuMovimentacao();
				break;			
			case 9:
				break;
		}
	}while(op != 9);	
}
void emprestimo(){ // EMPRESTIMO DE LIVRO
}
main()
{		
	//USAR ACENTUAÇÃO
 setlocale(LC_ALL, "Portuguese");
 
	if(login()){		
		menuPrincipal();
		
	}
}

Continue navegando