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

Sistema de Passagens


Binder

Pergunta

Boa tarde Pessoal, estou fazendo um exercicio de sistema de passagens e não estou conseguindo fazer um item.

"Usuario digita o código do onibus desejado e o sistema lista em tela todas as poltronas vagas, Após listar,o usuario deverá informar o numero da poltrona vaga e o nome do passageiro,quando listado novamente o onibus ,a poltrona selecionada não devera aparecer em tela..."

Minha dúvida é em relação a associar o onibus com a poltrona. Tenho um menu, e 2 funções que gravam e le de um arquivo.txt

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>


struct rodoviaria
{
    int codigo,horapartida,poltrona[42];
    char destinoviagem[100];
    
};

 //função grava
   void grava(struct rodoviaria a[1000],int fim)
  {
      FILE *arq;
      int teste,i;
      arq = fopen("arquivo.txt","wb"); // w = cria arquivo, b = modo binario
       if(arq != NULL)
       {
          for(i=0;i<fim;i++)
          {
              teste = fwrite(&a[i],sizeof(struct rodoviaria),1,arq);
              if (teste !=1) // retorna 1 gravou e 0 senao gravou
              {
                 printf("erro ao salvar"); 
                 getch();                 
              }
          } 
            fclose(arq);  
       }  
          else 
          {         
             printf("erro ao abrir arquivo");
          }  
  }       
       
 //função carrega     
 int carrega(struct rodoviaria a[1000]) // abre arquivo e carrega no vetor
 {
    FILE *arq;  
    int teste,percorre=0;
    struct rodoviaria registro;
      
    arq = fopen("arquivo.txt","rb");
    if(arq != NULL)
    {
       while (!feof(arq)) // diferente do fim do arquivo?
       {
             teste = fread(&registro,sizeof(struct rodoviaria),1,arq);      
             if (teste ==1) // se conseguiu ler
             { 
                a[percorre] = registro;     
                percorre++;        
             }
       }    
           fclose(arq);  
           
    }        
      return percorre;
              
}          
     
  int main() 
 {
   struct rodoviaria vet[1000];  
   int ultimo=0, op=0,i,j,x,codonibus=0,qtd=0,onibus[100];    
   char nomedestino[100];
   
   //carrega vetor
   for (i=0;i<42;i++)
   {
     qtd++;
     onibus[i] = qtd;
   }
     
            
     while(op !=4)
     {    
           ultimo = carrega(vet); //abre arquivo e carrega para o vetor 
           printf ("======================================MENU======================================\n");
           printf ("1 - Cadastrar viagem :\n");
           printf ("2 - Comprar passagem :\n");
           printf ("3 - Listar Lista de passageiros :\n");
           printf ("4 - Sair :\n\n");
           fflush (stdin);
           scanf ("%d",&op);    
           fflush (stdin);   

           if(op==1)
           {
              printf("Informe Codigo do Onibus:");
              scanf ("%d",&vet[ultimo].codigo);  
              printf("Informe Destino de Viagem :");      
              fflush(stdin);
              fgets (vet[ultimo].destinoviagem,100,stdin);
              fflush(stdin);           
              printf("Informe Horario de Partida da Viagem:");
              scanf ("%d",&vet[ultimo].horapartida);
              ultimo++;
              grava(vet,ultimo); //função para gravar vetor no arquivo .txt
              onibus[i] = vet[ultimo].codigo;
              printf("\n");
              printf("Cadastro Realizado com sucesso !\n\n");
              system("pause");
           }  
              
     
           if(op==2)
           { 
                                     
              printf("Informe Destino de Viagem :");
              fflush(stdin);
              fgets(nomedestino,100,stdin);
              fflush(stdin);       
              printf("\n");
                          
              for(i=0;i<ultimo;i++)        
              {
                  x = strcmp(vet[i].destinoviagem,nomedestino); 
                  
                  if (x == 0)
                  {
                     printf ("=======================\n");   
                     printf("Codigo do Onibus :%d\n",vet[i].codigo);
                     printf("Horario de Partida :%d\n",vet[i].horapartida);
                     printf("\n");  
                  }   
              }          
                                  
              printf("Informe o codigo do onibus desejado:");
              scanf("%d",&codonibus);  
              
               
              for(i=0;i<ultimo;i++) // laço no arquivo
              {   
                  if(vet[i].codigo == codonibus) // se codigo do arquivo == codigo digitado
                  {
                      printf("\n");              
                      for (?)
                      {} 
                         
                  }    
              }    
              printf("\n"); 
                
              system("pause");
          }// fim op==2

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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...