Buscar

Acervo Biblioteca

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Trabalho de Programa��o/Manual.docx
Universidade Federal de São João del-Rei
Engenharia de Telecomunicações
Trabalho Prático
Métodos e Algoritmos Computacionais
Manual de instruções de um programa que simula o acervo de livros de uma biblioteca.
Autores:
João Paulo Vieira Cordeiro
Thiago Vinícius Dantas Ferraz
Lucas de Paula Couto Ferreira
Ouro Branco /MG
Junho / 2010
Manual de Instruções
 
Introdução
Este é um programa que faz o gerenciamento de uma biblioteca. Nele você pode controlar a entrada de novos livros e novos usuários, a exclusão de livros e usuários e também o controle de aluguel e devolução de livros.
Funcionamento
Figura 
1
 
- 
Tela Inicial da BibliotecaO programa é rodado na plataforma DOS. Ao abrir o arquivo do mesmo, aparecerá uma tela mostrando que para ter acesso à biblioteca o número 1 tem que ser digitado pelo usuário. Logo aparecerá um menu contendo nove opções, sendo estas destinadas às principais operações de um bibliotecário. 
O menu está ilustrado abaixo:
Figura 
2
 - Menu de Operações
Na opção 1, o funcionário pode fazer cadastros de novos livros. Para acessá-la, basta digitar a tecla 1 e isso serve para as demais opções(opção 2, tecla 2 e assim sucessivamente). Acessando a opção 1, serão solicitados os dados do livro, isto é, código, nome, área e um pequeno resumo do mesmo. Após isso, o livro será cadastrado no computador.
Na opção 2, pode-se retirar livros (para o caso de perdas, vendas, doações, renovações, etc.). Basta digitar os dados novamente e o livro será deletado da lista de cadastros.
Na opção 3, pode-se inserir novos usuários. Ao acessar esta opção, o funcionário deve entrar com os dados do usuário, isto é, código, nome, CPF e endereço. Ao fazer isto, o usuário será cadastrado no sistema.
OBS: ao fazer o cadastro de livros e usuários, o sistema cria uma lista contendo todos os dados até então. Esta lista é um arquivo de texto simples e pode ser facilmente acessada no bloco de notas (Microsoft Windows). Os nomes são “Livros1.txt” e “Usuários1.txt”.
Na opção 4, o funcionário pode retirar usuários (para o caso de usuários engraçadinhos que ultrapassam o prazo de entrega, ou para aqueles que freqüentemente causam danos aos livros, ou por outra razão). Quando digitado os dados do usuário ele é excluído da lista de cadastrados do computador.
Nas opções 5 e 6, pode-se fazer uma pesquisa a um determinado livro ou usuário respectivamente. Basta o gerente digitar os dados, e o sistema procurará o livro ou o usuário em questão. Se estes existirem, aparecerá na tela a ficha de cadastro.
A opção 7 serve para controlar o aluguel de livros. Ao acessá-la, o sistema irá perguntar o código do livro, o código do usuário e as datas do dia da locação e devolução respectivamente. Feito isso aparecerá uma ficha contendo o nome do usuário, nome do livro e os respectivos códigos.
Atenção! Na opção Data deve ser digitado somente o DIA.
A opção 8 é destinada à devolução dos livros. Perguntam-se as datas de locação e devolução do livro e então a ficha do empréstimo aparece. A devolução é concluída. 
OBS: caso o usuário ultrapasse o prazo de entrega, será cobrada uma multa de R$2,00 por dia.
A opção 9 fecha o programa. Ela pode ser acessada no final do honorário quando é preciso desligar o computador ou para alguma outra emergência.
Especificações 
Programado em linguagem C utilizando-se o DEV C++ como compilador.
 
Trabalho de Programa��o/Programa/Biblioteca_Acervo.dev
[Project]
FileName=Trabalho 1.dev
Name=Trabalho 1
UnitCount=7
Type=1
Ver=1
ObjFiles=
Includes=
Libs=
PrivateResource=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=
IsCpp=1
Icon=
ExeOutput=
ObjectOutput=
OverrideOutput=0
OverrideOutputName=
HostApplication=
Folders=
CommandLine=
UseCustomMakefile=0
CustomMakefile=
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=
[Unit2]
FileName=Livros.cpp
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit3]
FileName=Livros.h
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit4]
FileName=Emprestimo.h
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit5]
FileName=Emprestimo.cpp
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit6]
FileName=Usuarios.h
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit7]
FileName=Usuarios.cpp
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit1]
FileName=main.cpp
CompileCpp=1
Folder=
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=
AutoIncBuildNr=0
Trabalho de Programa��o/Programa/Emprestimo.cpp
/*Autores: João Paulo Vieira Cordeiro
 Lucas de Paula Couto Ferreira
 Thiago Vinícius Dantas Ferraz*/
#include "Emprestimo.h"
#include <iostream>
void insereEmprestado(Emprestimo **paramLista,long codil,string noml,long codiu,string nomu){ 
 long ant; 
 Emprestimo *nList;//criando ponteiro nova lista. 
 nList=new Emprestimo();//alocando o espaço em memória e usando cast. 
 nList->codigol =codil; //atribuindo valor para n nova lista. 
 nList->codigou=codiu;
 nList->nomel=noml;
 nList->nomeu=nomu; 
 nList->prox = NULL;// apontando para fim da lista 
 ant=codil; 
 
 if(*paramLista == NULL){//verifica se é o final da fila 
 *paramLista = nList;//se for insere a nova lista no final 
 }else{ 
 Emprestimo *listaAux; //senao cria uma lista auxiliar 
 listaAux = *paramLista; //coloca a lista atual na lista auxiliar 
 while(listaAux->prox != NULL){ //e vai percorrendo a lista ate encontrar o final ou seja NULL 
 listaAux = listaAux->prox; //enquato nao acha o final ela fica colocando "as estruturas listas" na lista temporaria 
 }//obviamente uma hora ela vai chegar no final da lista ou seja nesta linha 
 listaAux->prox = nList;//como ele ja esta no final da fila ele so adiciona a nova lista 
 } 
} 
void consultaEmprestado(Emprestimo * paramList,long codil,string noml,long codiu,string nomu) 
{ 
 while(paramList != NULL && paramList->codigol != codil)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 } 
 cout << "Livro encontrado\n";
 cout << "CODIGO: " << paramList->codigol << "\n" << "NOME LIVRO: " << paramList->nomel << "\n" << paramList->codigou << "\n" << "NOME USUARIO: " << paramList->nomeu << "\n"; 
} 
void imprimeEmprestado(Emprestimo * paramList) 
{ 
 cout << "\nImprimindo a Lista de emprestimos\n"; 
 while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 //system("cls");//limpa a tela 
 // printf("\nImprimindo a Lista\n"); 
 cout << "CODIGO LIVRO: " << paramList -> codigol <<"\n" << "NOME LIVRO: " << paramList->nomel <<"\n" << "CODIGO USUARIO: " << paramList->codigou<<"\n" << "NOME USUARIO: " << paramList->nomeu <<"\n";//imprimindo o valor 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 cout<<"\n"; 
 } 
}
void verificadata(long d,long dev)
{
 long diferenca;
float multa;
 if(dev > (d=2)) // o usuario tem 2 dias para entregar o livro
 {
 diferenca=dev-d;
 multa=diferenca*2;
 cout << "Atraso!Sera cobrada multa de R$2,00 por dia" << endl;
 cout << "Valor a pagar :" << multa << endl;
 }
 else
 {
 cout << "\a";
 cout << "Devolucao Ok! Agradecemos a Colaboracao... " << endl;
 }
} 
 
Emprestimo *retira(Emprestimo *e,long codil,string noml,long codiu,string nomu)
{
 Emprestimo *ant = NULL; /* ponteiro para elemento anterior */
 Emprestimo *pe = e; /* ponteiro para percorrer a lista*/
 /* procura elemento na lista, guardando anterior */
 while (pe != NULL && pe->codigou!=codiu) 
 {
 ant = pe;
 pe = pe->prox;
 }
 /* verifica se achou elemento */
 if (pe == NULL)
 {
 cout<<"Nao foi encontrado ..." << endl; 
 return e; /* não achou: retorna lista original */
 } /* retira elemento */
 if (ant == NULL) 
 { /* retira elemento do inicio */
 e = pe->prox;
 }
 else 
 { /* retira elemento do meio da lista */
 ant->prox = pe->prox;
 }
 delete pe;
 cout << "Livro devolvido" << endl;
 return e;
} 
Trabalho de Programa��o/Programa/Emprestimo.h
#ifndef EMPRESTIMOS_H
#define EMPRESTIMOS_H
#include <string>
#include <iostream>
using namespace std;
struct Emprestimo
{
 long codigol,codigou;
 string nomel,nomeu;
 Emprestimo *prox;
};
void insereEmprestado(Emprestimo **paramLista,long codil,string noml,long codiu,string nomu);
void consultaEmprestado(Emprestimo * paramList,long codil,string noml,long codiu,string nomu);
void imprimeEmprestado(Emprestimo * paramList);
void verificadata(long d,long dev); 
Emprestimo *retira(Emprestimo *e,long codil,string noml,long codiu,string nomu);
#endif
Trabalho de Programa��o/Programa/Emprestimo.o
Trabalho de Programa��o/Programa/Livros.cpp
/*Autores: João Paulo Vieira Cordeiro
 Lucas de Paula Couto Ferreira
 Thiago Vinícius Dantas Ferraz*/
#include "Livros.h"
#include <fstream>
#include <iostream>
void leitura1(long codl,string nl,string a,string r)
{
 cout << "Por favor digite os dados do livro, codigo: ";
 cin >> codl;
 cout << "\nEntre com o nome: ";
 fflush(stdin);
 getline(cin,nl);
 cout << "\nEntre com a area: ";
 cin >> a;
 cout << "\nEntre com o resumo: ";
 fflush(stdin);
 getline(cin,r);
}
 
void imprime1(long codl,string nl,string a,string r)
{ 
 cout << "Dados do livro, codigo:" << codl << endl;
 cout << "Nome:" << nl << endl; 
 cout << "Area:" << a << endl;
 cout << "Resumo:" << r << endl; 
}
void insereLivro(Livro **paramLista, long codl,string n,string a,string r){ 
 Livro *nList;//criando ponteiro nova lista. 
 nList=new Livro();//alocando o espaço em memória e usando cast. 
 nList->codigo = codl; //atribuindo valor para n nova lista. 
 nList->nome=n;
 nList->area=a;
 nList->resumo=r; 
 nList->prox = NULL;// apontando para fim da lista 
 
 if(*paramLista == NULL){//verifica se é o final da fila 
 *paramLista = nList;//se for insere a nova lista no final 
 }else{ 
 Livro *listaAux; //senao cria uma lista auxiliar 
 listaAux = *paramLista; //coloca a lista atual na lista auxiliar 
 while(listaAux->prox != NULL){ //e vai percorrendo a lista ate encontrar o final ou seja NULL 
 listaAux = listaAux->prox; //enquato nao acha o final ela fica colocando "as estruturas listas" na lista temporaria 
 }//obviamente uma hora ela vai chegar no final da lista ou seja nesta linha 
 listaAux->prox = nList;//como ele ja esta no final da fila ele so adiciona a nova lista 
 } 
} 
void consultaLivro(Livro * paramList,long codl,string n,string a,string r) 
{ 
 while(paramList != NULL && paramList->nome != n)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 } 
 cout << "\a";
 cout << "Livro Encontrado\n";
 cout << "CODIGO: " << paramList->codigo << "\n" << "NOME: " << paramList->nome << "\n" << "AREA: " << paramList->area << "\n" << "RESUMO: " << paramList->resumo << "\n"; 
} 
void imprimeLivro(Livro * paramList) 
{
 system ("color 06");
 cout << endl << endl; 
 cout << "DADOS INSERIDOS:\n\n"; 
 while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 //system("cls");//limpa a tela 
 // printf("\nImprimindo a Lista\n"); 
 cout << "Codigo Livro: " << paramList->codigo << "\n" << "Nome: " << paramList->nome << "\n" << "Area: " << paramList->area << "\n" << "Resumo: " << paramList->resumo<<"\n";//imprimindo o valor 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 cout<<"\n"; 
 } 
} 
Livro *retira(Livro *l,long codl,string nl,string a,string r)
{
 Livro *ant = NULL; /* ponteiro para elemento anterior */
 Livro *pl = l; /* ponteiro para percorrer a lista*/
 /* procura elemento na lista, guardando anterior */
 while (pl != NULL && pl->codigo!=codl && pl->nome!=nl && pl->area!=a && pl->resumo!=r) 
 {
 ant = pl;
 pl = pl->prox;
 }
 /* verifica se achou elemento */
 if (pl == NULL)
 {
 cout << "\a";
 cout<<"Nao foi encontrado ..." << endl; 
 return l; /* não achou: retorna lista original */
 } /* retira elemento */
 if (ant == NULL) 
 { /* retira elemento do inicio */
 l = pl->prox;
 }
 else 
 { /* retira elemento do meio da lista */
 ant->prox = pl->prox;
 }
 delete pl;
 cout << "\a\a";
 cout<<"Livro excluido com Sucesso ..." << endl;
 return l;
} 
void arquivol(Livro * paramList)
{
 ofstream livro;
 livro.open("livro1.txt");
 livro << "Lista de livros:\n";
 while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 livro << "CODIGO: " << paramList->codigo << "\n" << "NOME: " << paramList->nome << "\n" << "AREA: " << paramList->area << "\n" << "RESUMO: " << paramList->resumo << "\n";//imprimindo o valor 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 livro << "\n";
 }
 livro.close();
 cout << "Os dados foram enviados\n"; 
}
Trabalho de Programa��o/Programa/Livros.h
#ifndef LIVROS_H
#define LIVROS_H
#include <string>
#include <iostream>
using namespace std;
struct Livro
{
 long codigo;
 string nome;
 string area;
 string resumo;
 Livro *prox;
};
void leitura1(long codl,string nl,string a,string r);
void imprime1(long codl,string nl,string a,string r);
void insereLivro(Livro **paramLista, long codl,string n,string a,string r);
void consultaLivro(Livro * paramList,long codl,string n,string a,string r);
void imprimeLivro(Livro * paramList);
Livro *retira(Livro *l,long codl,string nl,string a,string r);
void arquivol(Livro * paramList);
#endif
Trabalho de Programa��o/Programa/Livros.o
Trabalho de Programa��o/Programa/main.cpp
/*Autores: João Paulo Vieira Cordeiro
 Lucas de Paula Couto Ferreira
 Thiago Vinícius Dantas Ferraz*/
#include<conio.h> 
#include<stdio.h> 
#include<stdlib.h> 
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include "Livros.h"
#include "Usuarios.h"
#include "Emprestimo.h"
using namespace std;
int main(int argc, char *argv[])
{
 Usuario *u1;
 Livro *l1;
 Emprestimo *e1;
 l1=NULL;
 u1=NULL;
 e1=NULL;
 long codl, codu, codil, codiu, d, dev, ant; // d equivale a data DIA
 double cpf;
 string nl, a, r, nu, end, noml, nomu;
 int op=0,contl=0,retl=0,contu=0,retu=0;
 system ("color 6F");
 cout << "\t\t _ " << endl;
 cout << "\t\t /_)./_ /._ _/__ _ _ " << endl;
 cout << "\t\t /_)//_////_// /_'/_ /_| " << endl;
 int enter;
 cout << "\n\n\n\n\n\n\n\n\n\nDigite 1 para Entrar ... "; 
 cin >> enter;
 if (enter == 1)
 {
 while(op!=10)
 { 
 REFAZ:
 cout << "\a";
 system("cls"); 
 system ("color 02");
 
 cout << "MENU:" << endl << endl << endl;
 cout << "_____________________" << endl << endl;
 cout<<"1. Inserir livro\n2. Retirar livro\n3. Inserir usuario\n4. Excluir usuario\n";
 cout<<"5. Consultar livro\n6. Consultar usuario\n7. Alugar livros\n8. Devolver livros\n9. Sair\n";
 cout << "_____________________" << endl << endl;
 
 cout << "Opcao: ";
 cin >> op;
 switch(op)
 { 
 case 1: system("cls");
 system ("color 09"); 
 cout << "Por favor digite os dados do livro, codigo: ";
 cin >> codl;
 cout << "\nEntre com o nome: ";
 fflush(stdin);
 getline(cin,nl);
 cout << "\nEntre com a area: ";
 cin >> a;
 cout << "\nEntre com o resumo: ";
 fflush(stdin);
 getline(cin,r);
 insereLivro(&l1,codl,nl,a,r);
 imprimeLivro(l1);
 arquivol(l1);
 contl++;
 
 cout << endl;
 cout << "Livros inseridos: " << contl << endl;
 cout << "Voltar ao MENU?" << endl; int op1;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa ";
 cin >> op1;
 if (op1 == 1)
 goto REFAZ;
 else goto fim;
 
 case 2: system("cls");
 system ("color 06"); 
 cout << "Qual livro deseja excluir?\n";
 fflush(stdin);
 getline(cin,nl);
 l1=retira(l1,codl,nl,a,r);
 retl++;
 cout << "Livros retirados:" << retl << endl;
 imprimeLivro(l1);
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op2;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa ";
 cin >> op2;
 if (op2 == 1)
 goto REFAZ;
 else goto fim;
 
 case 3: system("cls");
 system ("color 08"); 
 cout << "Por favor digite os dados do usuario, codigo: ";
 cin >> codu;
 cout << "Entre com o nome: ";
 fflush(stdin);
 getline(cin,nu);
 cout << "Entre com o CPF: ";
 cin >> cpf;
 cout << "Entre com o endereco: ";
 fflush(stdin);
 getline(cin,end);
 insereUsuario(&u1,codu,nu,cpf,end);
 imprimeUsuario(u1);
 arquivou(u1);
 contu++;
 cout << "Usuarios inseridos:" << contu << endl;
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op3;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa ";
 cin >> op3;
 if (op3 == 1)
 goto REFAZ;
 else goto fim; 
 
 case 4: system("cls");
 system ("color 09"); 
 cout << "Qual usuario deseja excluir? ";
 fflush(stdin);
 getline(cin,nu);
 u1=retira(u1,codu,nu,cpf,end);
 retu++;
 cout << "Usuarios retirados:" << retu << endl;
 imprimeUsuario(u1);
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op4;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa";
 cin >> op4;
 if (op4 == 1)
 goto REFAZ;
 else goto fim; 
 
 case 5: system("cls");
 system ("color 02"); 
 cout << "Digite o nome do livro que deseja consultar: ";
 fflush(stdin);
 getline(cin,nl);
 consultaLivro(l1,codl,nl,a,r);
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op5;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa";
 cin >> op5;
 if (op5 == 1)
 goto REFAZ;
 else goto fim; 
 
 case 6: system("cls");
 system ("color 03"); 
 cout << "Digite o nome do usuario que deseja consultar: ";
 fflush(stdin);
 getline(cin,nu); 
 consultaUsuario(u1,codu,nu,cpf,end);
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op6;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa";
 cin >> op6;
 if (op6 == 1)
 goto REFAZ;
 else goto fim;
 
 case 7: system("cls");
 system ("color 06"); 
 cout << "\nEntre com o codigo do livro: ";
 cin >> codil;
 cout << "\nEntre com o codigo do usuario: ";
 cin >> codiu;
 cout << "\nEntre com o nome do livro: ";
 fflush(stdin);
 getline(cin,noml);
 cout << "\nEntre com o nome do usuario: ";
 fflush(stdin);
 getline(cin,nomu);
 cout << "\nEntre com a data do emprestimo: ";
 cin >> d; // em dias
 cout << "\nEntre com a data de devolucao: ";
 cin >> dev;
 if(ant==codil)
 {
 cout<<"Livro ja emprestado\n";
} 
 insereEmprestado(&e1,codil,noml,codiu,nomu);
 cout << "Emprestimo efetuado\n";
 imprimeEmprestado(e1);
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op7;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa";
 cin >> op7;
 if (op7 == 1)
 goto REFAZ;
 else goto fim;
 
 case 8: system("cls");
 system ("color 09"); 
 cout << "\nEntre com a data do emprestimo: ";
 cin >> d;
 cout << "\nEntre com a data de devolucao: ";
 cin >> dev;
 consultaEmprestado(e1,codil,noml,codiu,nomu);
 verificadata(d,dev);
 e1=retira(e1,codil,noml,codiu,nomu);
 
 cout << endl;
 cout << "Voltar ao MENU?" << endl; int op8;
 cout << endl << endl;
 cout << "1. Sim\t\t2. Fechar Programa";
 cin >> op8;
 if (op8 == 1)
 goto REFAZ;
 else goto fim;
 
 case 9: op=10;
 
 } 
 }
 }else goto fim;
 fim:
 cout << "Pressione uma tecla para Sair! Obrigado!!!"; 
 system("PAUSE > NUL");
 cout << "\a\a";
 return EXIT_SUCCESS;
}
Trabalho de Programa��o/Programa/main.o
Trabalho de Programa��o/Programa/Makefile.win
# Project: Trabalho 1
# Makefile created by Dev-C++ 4.9.9.2
CPP = g++.exe
CC = gcc.exe
WINDRES = windres.exe
RES = 
OBJ = main.o Livros.o Emprestimo.o Usuarios.o $(RES)
LINKOBJ = main.o Livros.o Emprestimo.o Usuarios.o $(RES)
LIBS = -L"D:/Dev-Cpp/lib" 
INCS = -I"D:/Dev-Cpp/include" 
CXXINCS = -I"D:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"D:/Dev-Cpp/include/c++/3.4.2/backward" -I"D:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"D:/Dev-Cpp/include/c++/3.4.2" -I"D:/Dev-Cpp/include" 
BIN = Biblioteca_Acervo.exe
CXXFLAGS = $(CXXINCS) 
CFLAGS = $(INCS) 
RM = rm -f
.PHONY: all all-before all-after clean clean-custom
all: all-before Biblioteca_Acervo.exe all-after
clean: clean-custom
	${RM} $(OBJ) $(BIN)
$(BIN): $(OBJ)
	$(CPP) $(LINKOBJ) -o "Biblioteca_Acervo.exe" $(LIBS)
main.o: main.cpp
	$(CPP) -c main.cpp -o main.o $(CXXFLAGS)
Livros.o: Livros.cpp
	$(CPP) -c Livros.cpp -o Livros.o $(CXXFLAGS)
Emprestimo.o: Emprestimo.cpp
	$(CPP) -c Emprestimo.cpp -o Emprestimo.o $(CXXFLAGS)
Usuarios.o: Usuarios.cpp
	$(CPP) -c Usuarios.cpp -o Usuarios.o $(CXXFLAGS)
Trabalho de Programa��o/Programa/Usuarios.cpp
/*Autores: João Paulo Vieira Cordeiro
 Lucas de Paula Couto Ferreira
 Thiago Vinícius Dantas Ferraz*/ 
#include "Usuarios.h"
#include <fstream>
#include <iostream>
void leitura2(long codu,string nu,long cpf,string end)
{
 cout << "Por favor digite os dados do usuario, codigo: ";
 cin >> codu;
 cout << "Entre com o nome: ";
 fflush(stdin);
 getline(cin,nu);
 cout << "Entre com o CPF: ";
 cin >> cpf;
 cout << "Entre com o endereco: ";
 fflush(stdin);
 getline(cin,end);
}
 
void imprime2(long codu,string nu,long cpf,string end)
{
 cout << "Dados do livro, codigo: " << codu << endl;
 cout << "Nome: " << nu << endl;
 cout << "CPF: " << cpf << endl;
 cout << "Endereco: " << end << endl; 
}
void insereUsuario(Usuario **paramLista,long codu,string nu,long cpf,string end)
{
 Usuario *nList;//criando ponteiro nova lista. 
 nList=new Usuario();//alocando o espaço em memória e usando cast. 
 nList->codigo = codu; //atribuindo valor para n nova lista. 
 nList->nome=nu;
 nList->cpf=cpf;
 nList->endereco=end; 
 nList->prox = NULL;// apontando para fim da lista 
 
 if(*paramLista == NULL)//verifica se é o final da fila 
 {
 *paramLista = nList;//se for insere a nova lista no final 
 }
 else
 {
 Usuario *listaAux; //senao cria uma lista auxiliar 
 listaAux = *paramLista; //coloca a lista atual na lista auxiliar 
 while(listaAux->prox != NULL) //e vai percorrendo a lista ate encontrar o final ou seja NULL 
 {
 listaAux = listaAux->prox; //enquato nao acha o final ela fica colocando "as estruturas listas" na lista temporaria 
 }//obviamente uma ora ela vai chegar no final da lista ou seja nesta linha 
 listaAux->prox = nList;//como ele ja esta no final da fila ele so adiciona a nova lista 
 } 
}
void imprimeUsuario(Usuario *paramList)
{
 
 cout << "\nImprimindo Dados do Usuario ..." << endl; 
 while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 cout << "CODIGO: " << paramList->codigo << "\n" << "NOME: " << paramList->nome << "\n" << "CPF: " << paramList->cpf << "\n" << "ENDERECO: " << paramList->endereco <<"\n";//imprimindo o valor 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 cout << "\n"; 
 } 
} 
void consultaUsuario(Usuario * paramList, long codu, string nu, long cpf, string end) 
{ 
 while(paramList != NULL && paramList->nome != nu)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 } 
 cout << "Usuario Encontrado\n";
 cout << "CODIGO: " << paramList->codigo << "\n" << "NOME: " << paramList->nome << "\n" << "CPF: " << paramList->cpf << "\n" << "ENDERECO: " << paramList->endereco << "\n"; 
} 
Usuario *retira(Usuario *u,long codu,string nu,long cpf,string end)
{
 Usuario *ant = NULL; /* ponteiro para elemento anterior */ 
 Usuario *pu = u; /* ponteiro para percorrer a lista*/
 /* procura elemento na lista, guardando anterior */
 while (pu != NULL && pu->codigo!=codu && pu->cpf!=cpf && pu->nome!=nu && pu->endereco!=end) 
 {
 ant = pu;
 pu = pu->prox;
 }
 /* verifica se achou elemento */
 if (pu == NULL)
 {
 cout << "Usuario nao Encontrado!!!\n"; 
 return u; /* não achou: retorna lista original */
 } /* retira elemento */
 if (ant == NULL) 
 { /* retira elemento do inicio */
 u = pu->prox;
 }
 else 
 { /* retira elemento do meio da lista */
 ant->prox = pu->prox;
 }
 delete pu;
 return pu;
} 
void arquivou(Usuario * paramList)
{
 ofstream usuario;
 usuario.open("usuario1.txt");
 usuario << "Lista de usuarios:\n";
 while(paramList != NULL)//enquanto nao é o final da lista leia e imprima o conteudo 
 { 
 usuario << "CODIGO: " << paramList->codigo << "\n" << "NOME: " << paramList->nome << "\n" << "CPF: " << paramList->cpf << "\n" << "ENDERECO: " << paramList->endereco << "\n";//imprimindo o valor 
 paramList = paramList->prox; //apontando a lista a proxima lista 
 usuario << "\n";
 }
 usuario.close();
 cout << "Os dados foram enviados..."; 
}
Trabalho de Programa��o/Programa/Usuarios.h
#ifndef USUARIOS_H
#define USUARIOS_H
#include <string>
#include <iostream>
using namespace std;
struct Usuario
{
 long codigo;
string nome;
 double cpf;
 string endereco;
 Usuario *prox;
};
void leitura2(long codu,string nu,long cpf,string end);
void imprime2(long codu,string nu,long cpf,string end);
void insereUsuario(Usuario **u,long codu,string nu,long cpf,string end);
void consultaUsuario(Usuario *paramList,long codu,string nu,long cpf,string end);
Usuario *retira(Usuario *u,long codu,string nu,long cpf,string end);
void imprimeUsuario(Usuario *paramList); 
void arquivou(Usuario * paramList);
#endif
Trabalho de Programa��o/Programa/Usuarios.o

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais