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(®istro,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
Pergunta
Binder
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
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.