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

Movimentar Ponteiro


Guest Luckxander

Pergunta

Guest Luckxander

No programa abaixo, informo os dados do carro no case:1 e quando busco os dados no case:2, ele não funciona. Tenho a impressão que o erro está na incrementação do ponteiro, mas não consigo achar.

Alguém sabe me dizer o que está errado?

#include <iostream.h>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <string.h>

#include <time.h>

#include <dos.h>

//estrutura para cadastrar o carro//

struct dados{

float valorfracao; //valor da fraçao//

long hora;

char placa[8];

char data[10];

};

void main(){

int opcao, nvagas, i, cont,a;

char novaplaca[8];

long hora2;

double tempo, valor;

dados *p; //ponteiro da estrutura dados//

p=(dados*)malloc(sizeof(dados));

cont=0;

cout<<"ESTACIONAMENTO UNATEC";

a=1;

while (a==1){

time_t timer;

struct tm *tblock;

timer = time(NULL); //obtem a hora do sistema //

tblock = localtime(&timer);//converte a hora em estrutura //

cout<<"\n"<<asctime(tblock); //exibe a hora//

a=a+1; //incrementa o contador para sair do loop//

}

cout<<"\n\nInforme o numero de vagas existentes: ";

cin>>nvagas;

cout<<"\nInforme o valor da fraçao: ";

cin>>p->valorfracao;

for (i=0; i<nvagas; i++){

cout<<"\n\nInforme a opcao\n";

cout << "0-Fechar \n";

cout << "1-Entrada de veiculos \n";

cout << "2-Saida de veiculos \n";

cin>>opcao;

switch(opcao) {

case 0 : {cout<<"\nSessao encerrada"; break;}

case 1 : {

if (nvagas==0){

cout<<"\nEstacionamento lotado";

}

else

cout<<"\nTotal de vagas disponiveis "<<nvagas;

cout<<"\nInforme a placa(xxx-yyyy): ";

gets(p->placa);

cout<<"\nInforme a hora: ";

cin>>p->hora;

cout<<"\nInforme a data(xx/xx/xxxx): ";

gets(p->data);

cont=cont+1; //atualizando as vagas//

cout<<"\nVeiculo Cadastrado";

break;

}

case 2 : {

cout<<"\nInforme a placa: ";

gets(novaplaca);

while (p->placa!='\0'){

if(strcmp(novaplaca,p->placa)==0){

cout<<"\nInforme a hora atual";

cin>>hora2;

cout<<"\nPlaca: "<<p->placa;

cout<<"\nHora de entrada: "<<p->hora;

cout<<"\nHora de saida: "<<hora2;

tempo=(hora2-p->hora);

cout<<"\nTempo de parmanencia: "<<tempo;

valor=(tempo*p->valorfracao); //calculando o valor//

cout<<"\nValor a pagar: "<<valor;

nvagas=(nvagas+1); //atualizando as vagas//

}

else

cout<<"\nVeiculo não localizado";

}

break;

}

}

}

getch();

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

identa o código e posta eles em tags code

case 2 : {
    cout<<"\nInforme a placa: ";
    gets(novaplaca);
    while (p->placa!='\0'){
        if(strcmp(novaplaca,p->placa)==0){
            cout<<"\nInforme a hora atual";
            cin>>hora2;
            cout<<"\nPlaca: "<<p->placa;
            cout<<"\nHora de entrada: "<<p->hora;
            cout<<"\nHora de saida: "<<hora2;
            tempo=(hora2-p->hora);
            cout<<"\nTempo de parmanencia: "<<tempo;
            valor=(tempo*p->valorfracao); //calculando o valor//
            cout<<"\nValor a pagar: "<<valor;
            nvagas=(nvagas+1); //atualizando as vagas//
        }
        else
            cout<<"\nVeiculo não localizado";
        p->
    }
break;
}

cara sinceramente tem muita coisa errada

voce perde a referencia da lista, voce só aloca espaço para uma estrutura

tem else faltando '{'

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,2k
    • Posts
      652k
×
×
  • Criar Novo...