Ir ao conteúdo
  • Cadastre-se

JoãoApenas

Membro Pleno
  • Posts

    36
  • Cadastrado em

  • Última visita

  1. O seu problema pode ser resolvido facilmente se você utilizar de uma pilha. Não sei se aprendeu ou não pilhas, mas a lógica é a seguinte: toda vez que você identificar uma nova tag de abertura, isto é, sem a barra invertida \, você deve adicionar a tag à sua pilha. Por exemplo ao identifcar a tag "< negrito >" o programa deve adicionar a tag à pilha que gerencia as tags. Quando o programa identificar uma tag que fecha um bloco (no caso uma tag que possua a barra invertida). o programa deve desempilhar - remover - da pilha um último elemento adicionado. Porém caso as tags sejam diferentes o programa identificou um erro no texto. Por exemplo se a última tag a ser aberta foi um "< italico>" o próxima tag de fechamento deve OBRIGATÓRIAMENTE ser um " <\ italico >". Ao termino da leitura do texto a pilha deve estar vazia. Faça alguma coisa do programa, se tiver dúvidas avise.
  2. Você poderia tornar a pessoa um struct ou um union, mas talvez você não tenha aprendido isso ainda. #include<iostream> #include <stdio.h> #include <stdlib.h> #include <string> /******************************************** Diretivas ********************************************/ #define tam 100 #define SAIR 0 #define ADICIONAR 1 #define VERLISTA 2 /******************************************** Estruturas ********************************************/ using namespace std; struct Pessoa { string nome; string endereco; string bairro; string cidade; string identidade; string CPF; string UF; string CEP; string sexo; int idade; float salario; } Pessoa; /******************************************** Funções Globais ********************************************/ struct Pessoa adicionarFuncionario(); void verListaDeFuncionarios(); /******************************************** Variáveis Globais ********************************************/ struct Pessoa listaDeFuncionarios[100]; int numeroDePessoasAdicionadas = 0; /******************************************** Início do Programa ********************************************/ int main() { int opcaoMenu = 1; int indice = 0; while (opcaoMenu != SAIR) { cout <<"\n ***************************************************************************** "<< endl; cout <<" ** ********* *** ***** Folha de Pagamento ***** *** ********** ** "<< endl; cout <<" ***************************************************************************** "<< endl << endl << endl; cout << "1 - Cadastrar Funcionarios \n"; cout << "2 - Lista Funcionarios \n"; cout << "3 - Pesquisar Funcionarios \n"; cout << "4 - Calcular \n"; cout << "0 - Sair\n \n"; scanf("%d", &opcaoMenu); if (opcaoMenu == ADICIONAR) { listaDeFuncionarios[numeroDePessoasAdicionadas] = adicionarFuncionario(); numeroDePessoasAdicionadas++; } if (opcaoMenu == VERLISTA) verListaDeFuncionarios(); } cout << "\nFim da execução do programa.\n"; return 0; } void verListaDeFuncionarios() { int indice = 0; for (; indice < numeroDePessoasAdicionadas; indice++) { cout << indice << " " << listaDeFuncionarios[indice].nome << endl; } } struct Pessoa adicionarFuncionario() { struct Pessoa novoFuncionario; cout << "\n ===== ===== CADASTRO DE FUNCIONARIOS ===== ===== \n"; cout<<"\n Nome: "; fflush(stdin); getline (std::cin, novoFuncionario.nome); cout<<"\n Sexo: "; fflush(stdin); /* getline (cin, novoFuncionario.sexo); cout<<"\n Idade: "; cin>> novoFuncionario.idade; cout<<"\n Endereco: "; fflush(stdin); getline (cin, novoFuncionario.endereco); cout<<"\n Bairro: "; fflush(stdin); getline (cin, novoFuncionario.bairro); cout<<"\n Cidade: "; fflush(stdin); getline (cin, novoFuncionario.cidade); cout<<"\n CEP: "; cin>> novoFuncionario.CEP; cout<<"\n UF: "; fflush(stdin); getline (cin, novoFuncionario.UF); cout<<"\n CPF: "; getline(cin, novoFuncionario.CPF); cout<<"\n Identidade: "; getline(cin, novoFuncionario.identidade); cout<<"\n Salario Bruto: "; cin>> novoFuncionario.salario; cout<<"\n --------------------------------------------------------------- "; cout<<"\n"; */ fflush(stdin); system("cls"); return novoFuncionario; } Dúvidas avise! Esse código que eu fiz não é o programa todo, fiz algumas funções básicas, mas que devem ser suficientes pra que você utilize como base.
  3. Eu aconselho que você utilize o Code::Blocks, o DevC++ é muito bugado.
  4. Olá. Vou tentar te ajudar. Antes de mais nada, quero te dizer que o computador é capaz de armazenas arquivos, mesmo os deletados durante longos períodos. Mesmo que você formate o computador, ainda sobram rastros de arquivos antigos. O HD na verdade não apaga os arquivos deletados, mas deixa o espaço ocupado por eles disponiveis. Se você apagou um texto por exemplo, apenas se um outro arquivo fique "por cima" do texto você não pedorá recuperá-lo completamente. Te aconselho a utilizar o recuva, o melhor programa (free) desse tipo. Mas se não funcionar continue tentando. Link: http://download.piriform.com/rcsetup135.exe

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...