Baixe o app para aproveitar ainda mais
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(); } }
Compartilhar