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