Oi pessoal, estou fazendo um trabalho pra facul onde devo armazenar 4 dados de uma consulta médica. Fiz os métodos para incluir na lista e verificar a lista, mas está dando Exception: STATUS_ACCESS_VIOLATION .
Não sei onde pode ser o erro.
Alguém poderia me dar uma ajuda?!
Segue o código:
#ifndef AGENDARCONSULTA_H
#define AGENDARCONSULTA_H
#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;
struct agenda {
string horaInicio;
string horaFim;
string dataInicio;
string dataFim;
struct agenda *prox;
};
typedef struct agenda horaMarcada;
//cabecalho da lista
horaMarcada *primeiro;
class AgendarConsulta {
horaMarcada c; //celula da lista
public:
AgendarConsulta(){primeiro->prox = NULL;}
AgendarConsulta(string hrIn, string hrFim, string dtIn, string dtFim) {
primeiro->prox = NULL;
c.horaInicio = hrIn;
c.horaFim = hrFim;
c.dataInicio = dtIn;
c.dataFim = dtFim;
}
bool insereConsulta(string hrIn, string hrFim, string dtIn, string dtFim) {
agenda* proximo = NULL;
agenda* aux = NULL;
//insere no primeiro da lista
if (primeiro->prox == NULL) {
*primeiro->prox = c;
c.horaInicio = hrIn;
c.horaFim = hrFim;
c.dataInicio = dtIn;
c.dataFim = dtFim;
return true;
} else {
proximo = primeiro->prox;
//procura na lista data para insercao
//se chegar a nulo, fim da lista
while (proximo->dataInicio < dtIn && proximo->prox != NULL)
proximo = proximo->prox;
//insere no ultimo elemento da lista
if (proximo->prox == NULL) {
*proximo->prox = c;
c.horaInicio = hrIn;
c.horaFim = hrFim;
c.dataInicio = dtIn;
c.dataFim = dtFim;
return true;
} else{
//insere no meio da lista
aux->prox = proximo->prox;
*proximo->prox = c;
c.prox = aux->prox;
return true;
}
}
return false;
}
bool verificaConsulta(string hrIn, string hrFim, string dtIn, string dtFim){
agenda* proximo = NULL;
while(proximo->prox != NULL){
if(c.dataInicio == dtIn && c.dataFim == dtFim
&& c.horaInicio == hrIn && c.horaFim == hrFim){
return true;
}
return false;
}
}
};
#endif /* AGENDARCONSULTA_H */
Pergunta
muttleydm
Oi pessoal, estou fazendo um trabalho pra facul onde devo armazenar 4 dados de uma consulta médica. Fiz os métodos para incluir na lista e verificar a lista, mas está dando Exception: STATUS_ACCESS_VIOLATION .
Não sei onde pode ser o erro.
Alguém poderia me dar uma ajuda?!
Segue o código:
#ifndef AGENDARCONSULTA_H #define AGENDARCONSULTA_H #include <stdio.h> #include <iostream> #include <string> using namespace std; struct agenda { string horaInicio; string horaFim; string dataInicio; string dataFim; struct agenda *prox; }; typedef struct agenda horaMarcada; //cabecalho da lista horaMarcada *primeiro; class AgendarConsulta { horaMarcada c; //celula da lista public: AgendarConsulta(){primeiro->prox = NULL;} AgendarConsulta(string hrIn, string hrFim, string dtIn, string dtFim) { primeiro->prox = NULL; c.horaInicio = hrIn; c.horaFim = hrFim; c.dataInicio = dtIn; c.dataFim = dtFim; } bool insereConsulta(string hrIn, string hrFim, string dtIn, string dtFim) { agenda* proximo = NULL; agenda* aux = NULL; //insere no primeiro da lista if (primeiro->prox == NULL) { *primeiro->prox = c; c.horaInicio = hrIn; c.horaFim = hrFim; c.dataInicio = dtIn; c.dataFim = dtFim; return true; } else { proximo = primeiro->prox; //procura na lista data para insercao //se chegar a nulo, fim da lista while (proximo->dataInicio < dtIn && proximo->prox != NULL) proximo = proximo->prox; //insere no ultimo elemento da lista if (proximo->prox == NULL) { *proximo->prox = c; c.horaInicio = hrIn; c.horaFim = hrFim; c.dataInicio = dtIn; c.dataFim = dtFim; return true; } else{ //insere no meio da lista aux->prox = proximo->prox; *proximo->prox = c; c.prox = aux->prox; return true; } } return false; } bool verificaConsulta(string hrIn, string hrFim, string dtIn, string dtFim){ agenda* proximo = NULL; while(proximo->prox != NULL){ if(c.dataInicio == dtIn && c.dataFim == dtFim && c.horaInicio == hrIn && c.horaFim == hrFim){ return true; } return false; } } }; #endif /* AGENDARCONSULTA_H */Editado por muttleydmLink para o comentário
Compartilhar em outros sites
2 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.