Olivi 0 Denunciar post Postado Abril 26, 2013 #include <iostream> #include <fstream> #include <iomanip> #include <string> #include <cstring> #include <cctype> #include "StanfordCPPLib/strlib.cpp" #include "StanfordCPPLib/vector.h" #include "StanfordCPPLib/stack.h" #include "StanfordCPPLib/queue.h" #include "StanfordCPPLib/map.h" #define ARQUIVO "lista-de-palavras.txt" using namespace std; /* Prototipos de Funcoes */ void lerArquivoDeEntradaVetor(istream &arq, Vector<string>&linhas); void lerArquivoDeEntradaPilha(istream &arq, Stack<string>&linhas); void lerArquivoDeEntradaFila(istream &arq, Queue<string>&linhas); void lerArquivoDeEntradaMap(istream &arq, Map<int,string>&linhas); void pausa(); /* Programa Principal */ int main(){ short opcao; long pos, tam; ifstream arqEntrada; Vector<string>linhasV; Stack<string>linhasP; Queue<string>linhasF; Map<int,string>linhasM; arqEntrada.open(ARQUIVO); lerArquivoDeEntradaVetor(arqEntrada, linhasV); arqEntrada.close(); arqEntrada.open(ARQUIVO); //promptUserForFile(arqEntrada, "Arquivo de entrada(Pilha): "); lerArquivoDeEntradaPilha(arqEntrada, linhasP); arqEntrada.close(); arqEntrada.open(ARQUIVO); //promptUserForFile(arqEntrada, "Arquivo de entrada(Fila): "); lerArquivoDeEntradaFila(arqEntrada, linhasF); arqEntrada.close(); arqEntrada.open(ARQUIVO); //promptUserForFile(arqEntrada, "Arquivo de entrada(Map): "); lerArquivoDeEntradaMap(arqEntrada, linhasM); arqEntrada.close(); do { cout << "<1 - Vetor >" << endl; cout << "<2 - Pilha >" << endl; cout << "<3 - Fila >" << endl; cout << "<4 - Map >" << endl; cout << "<9 - Sair >" << endl; cout << "Qual estrutura deseja manipular: "; cin >> opcao; switch(opcao) { case 1 : // Vetor tam = linhasV.size(); cout << endl; cout << "Posicao 110 : " << linhasV[110] << endl; cout << "Ultimo : " << linhasV[tam-1] << endl; cout << "Meio : " << linhasV[tam/2] << endl; for(long i = 0; i < tam; i++){ if (equalsIgnoreCase("FUTEBOL", linhasV.get(i))) { pos = i; break; } if (startsWith(linhasV.get(i), 'M')) linhasV.remove(i); } if(pos) cout << "Palavra FUTEBOL encontrada na posicao " << pos << endl << endl; else cout << "Palavra FUTEBOL nao encontrada!" << endl << endl; pausa(); tam = linhasV.size(); for(long i = 0; i < tam; i++) cout << linhasV[i] << "\t"; cout << endl; break; case 2 : // Pilha tam = linhasP.size(); for(long i = 0; i < tam; i++) cout << linhasP.pop() << "\t"; cout << endl << endl; break; case 3 : // Fila cout << "Tamanho da fila(antes): " << linhasF.size() << endl; pausa(); tam = linhasF.size(); for (long i = 0; i < tam; i++) cout << "Desenfileirando..." << linhasF.dequeue() << "\t"; cout << endl << "Tamanho da fila(depois): " << linhasF.size() << endl << endl; break; case 4 : // Map cout << "Buscar qual chave? "; cin >> pos; if (pos < linhasM.size()) cout << endl << "Na posicao " << pos << " encontra-se a palavra '" << linhasM[pos] << "'." << endl << endl; else cout << endl << "Na posicao " << pos << " nao ha nenhuma palavra." << endl << endl; break; case 9 : break; default: system("clear"); } } while(opcao!=9); return 0; } void pausa(){ char ch = ' '; while (ch!='c' && ch!='C') { cout << "Tecle 'c' para continuar... "; cin >> ch; } } void lerArquivoDeEntradaMap(istream &arq, Map<int,string> &linhas) { string linha; int i = 0; while (getline(arq, linha)) { linhas.put(++i,linha); } } void lerArquivoDeEntradaFila(istream &arq, Queue<string> &linhas) { string linha; while (getline(arq, linha)) { linhas.enqueue(linha); } } void lerArquivoDeEntradaPilha(istream &arq, Stack<string> &linhas) { string linha; while (getline(arq, linha)) { linhas.push(linha); } } void lerArquivoDeEntradaVetor(istream &arq, Vector<string> &linhas) { string linha; while (getline(arq, linha)) { linhas.add(linha); } } Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Abril 30, 2013 Isso é dúvida, partilhamento de código ou "encheção de linguiça"?? Se for partilhamento de código, portou no lugar errado. OBS.: Utilize a tag CODE para postar códigos fontes. Compartilhar este post Link para o post Compartilhar em outros sites