Ir para conteúdo
Fórum Script Brasil
  • 0

Manipulando Arquivos.


nTx-T4boOo

Pergunta

Prezados,

Preciso da ajuda dos senhores...

Estou com o seguinte programa e desejo que os dados nele cadastrados sejam salvos em arquivo binario.

alguém podria por favor me ajudar?

Valeu!

#include <iostream>
#include <string.h>
#include <conio.h>
#include "Encadeada.h"



using namespace std;

int main (){
  
    tlistaenc funcionario;
    tfuncionario dadosFuncionario;
    
    tprojeto dadosProjeto;
    
    inicializaenc (&funcionario);
    
    int op = 0;
    tcelula *p;
    char deletar;
    tchave tempNumero;
    
   
    do{
        do{
           system ("cls");
           cout << "\n\t\tMenu de Opcoes\n\n";
           cout << "1 - Inclusao de um novo funcionario\n";
           cout << "2 - Inclusao de novos projetos para um funcionario\n";
           cout << "3 - Exclusao de projetos de um funcionario\n";
           cout << "4 - Exclusão de funcionarios sem projeto\n";
           cout << "5 - Consultar funcionario\n";
           cout << "6 - Imprimir contra-cheque\n";
           cout << "0 - Sair\n";
           cout << "\nEscolha uma opcao: "; 
           cin >> op;
           switch (op){
                   case 1: cout << "\n\nEntre com o numero do funcionario: "; //Incluir Funcionario
                           cin >> tempNumero;
                           if (encontrouenc(tempNumero, &funcionario, &p)){
                                 cout << "já existe um funcionario com este numero!\n\n"; 
                                 system ("pause");
                                 system ("cls");
                                 break;
                           }
                           dadosFuncionario.numero = tempNumero;
                           cout << "Entre com o nome: ";
                           fflush (stdin);
                           fgets (dadosFuncionario.nome, 40, stdin);
                           cout << "Entre com o endereco: ";
                           fflush (stdin);
                           fgets (dadosFuncionario.endereco, 40, stdin);
                           cout << "Entre com o numero de dependentes: ";
                           fflush (stdin);
                           cin >> dadosFuncionario.dependentes;
                           char controlaProjeto;
                           insereenc (dadosFuncionario, &funcionario);
                           do{
                              cout << "\nDeseja incluir algum projeto para este funcinario agora? [s] ou [n]: ";
                              cin >> controlaProjeto;
                           }while (controlaProjeto!='s' && controlaProjeto!='S' && controlaProjeto!='n' && controlaProjeto!='N');
                           
                           (encontrouenc (tempNumero, &funcionario, &p));
                           inicializaseq (&p->prox->item.projetos);
                           
                           
                           if (controlaProjeto == 's' || controlaProjeto == 'S'){
                              do {
                                  cout << "\nEntre com o numero do projeto: ";
                                  fflush (stdin);
                                  cin >> dadosProjeto.codigo;
                                  cout << "Entre com o nome do projeto: ";
                                  fflush (stdin);
                                  fgets (dadosProjeto.nome, 30, stdin);
                                  cout << "Entre com o numero de horas trabalhadas no projeto: ";
                                  fflush (stdin);
                                  cin >> dadosProjeto.horas;
                                  insereseq (dadosProjeto, &p->prox->item.projetos);
                                  do{
                                     cout << "\nDeseja inserir outro projeto para o funcionario? [s] ou [n]: ";
                                     cin >> controlaProjeto;
                                  }while (controlaProjeto!='s' && controlaProjeto!='S' && controlaProjeto!='n' && controlaProjeto!='N');
                              } while (controlaProjeto == 's' || controlaProjeto == 'S');
                           }
                           else if (controlaProjeto == 'n' || controlaProjeto == 'N'){
                                   system ("cls");
                           }
                           break;
                           
                   case 2: cout << "\nDigite o numero do funcionario para inclusao do projeto: "; //Inclusao de projeto
                           cin >> tempNumero;
                           do{
                               if (encontrouenc (tempNumero, &funcionario, &p)){
                                   imprimeFuncionario (p->prox);
                                   cout << "\n\nEntre com o numero do novo projeto: ";
                                   fflush (stdin);
                                   cin >> dadosProjeto.codigo;
                                   cout << "Entre com o nome do projeto: ";
                                   fflush (stdin);
                                   fgets (dadosProjeto.nome, 30, stdin);
                                   cout << "Entre com o numero de horas trabalhadas no projeto: ";
                                   fflush (stdin);
                                   cin >> dadosProjeto.horas;
                                   insereseq (dadosProjeto, &p->prox->item.projetos);
                                   system ("cls");
                                   do{
                                      cout << "\nDeseja inserir outro projeto para o funcionario? [s] ou [n]: ";
                                      cin >> controlaProjeto;
                                   }while (controlaProjeto!='s' && controlaProjeto!='S' && controlaProjeto!='n' && controlaProjeto!='N');
                               }
                               else{
                                    cout << "Este funcionario não esta cadastrado.\n\n";
                                    system ("pause");
                                    system ("cls");
                               }
                           }while (controlaProjeto == 's' || controlaProjeto == 'S');
                           break;
                           
                   case 3: cout << "\nDigite o numero do funcionario para exclusao do projeto: "; //Exclusao de projeto
                           cin >> tempNumero;
                           int *pseq;
                           do{
                               if (encontrouenc (tempNumero, &funcionario, &p)){
                                   imprimeFuncionario (p->prox);
                                   cout << "\n\nEntre com o numero do projeto a ser excluido: ";
                                   fflush (stdin);
                                   cin >> dadosProjeto.codigo;
                                   if (encontrouseq (dadosProjeto.codigo, &p->prox->item.projetos, pseq)){
                                      retiraseq (*pseq, &p->prox->item.projetos, &dadosProjeto);
                                      system ("cls");
                                      do{
                                         cout << "\nDeseja excluir outro projeto deste funcionario? [s] ou [n]: ";
                                         cin >> controlaProjeto;
                                      }while (controlaProjeto!='s' && controlaProjeto!='S' && controlaProjeto!='n' && controlaProjeto!='N');
                                   }
                                   else
                                       cout << "\nO funcionario não trabalha neste projeto!\n";
                                   
                               }
                               else{
                                    cout << "Este funcionario não esta cadastrado.\n\n";
                                    system ("pause");
                                    system ("cls");
                               }
                           }while (controlaProjeto == 's' || controlaProjeto == 'S');
                           break;
                   
                   case 4: p = funcionario.primeiro;
                           do{
                               if (vaziaseq (&p -> prox -> item.projetos))
                                  retiraenc (p -> prox, &funcionario, &dadosFuncionario);
                               else
                                   p = p -> prox;
                           }while (p -> prox != NULL);
                           break;
                   case 5: cout << "\nDigite o numero do funcionario a ser pesquisado: "; //Inclusao de projeto
                           cin >> tempNumero;
                           system ("cls");
                           if (encontrouenc (tempNumero, &funcionario, &p)){
                              imprimeFuncionario (p->prox);
                              cout << endl;
                              system ("pause");
                           }
                           else{
                                cout << "Este funcionario não esta cadastrado.\n\n";
                                system ("pause");
                                system ("cls");
                           }
                           break;
                                  
                   case 6: imprimeContraCheque (&funcionario);// Imprimir Contra-cheque
                           system ("pause");
                           break;
           }
        }while (op != 0);
    }while (op < 0 || op > 6);
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Recomendo que pesquise um pouco sobre a leitura/escrita de arquivos antes e tente criar alguns programas que façam isso.

Veja se esses links ajudam:

No seu caso, utilizará bastante as funções fread e fwrite.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...