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