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

Problema com lista


muttleydm

Pergunta

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

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...