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

Problema com Lista.


N a T a N

Pergunta

Então... É mais ou menos o seguinte

A minha lista (que se chama agenda), eu preciso iniciar ela com alguns dados, e o agenda->prox null... Até ai está tudo bem, o problema é quando eu preciso iniciar 1 compromisso para essa agenda... Eu tenho a função inicializaCompromisso que recebe um compromisso como parâmetro, só que eu preciso passar como parâmetro o agenda->c, que seria o compromisso do meu 'nó' da lista.

postarei o codigo, se alguém se habilitar a olhar e dar uma ajuda, eu agradeço.

PS: O erro está na função insereCompromisso, que fica no agenda.c

PS[2]: Como o código é muito grande e é dividido em vários arquivos, postarei o link para download do mesmo.

http://www.4shared.com/file/OMjI_Kuh/REUNI.html

Editado por N a T a N
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Agenda.c

#include "agenda.h"

static int idenAgend=1;

Agenda * criaAgenda(Agenda *a, int idProf, char *name, int ano){

a=(Agenda *)malloc(sizeof(Agenda));

a->identProf=idProf;

strcpy(a->nomeProfer,name);

a->ano=ano;

a->idAgend=idenAgend;

a->prox=NULL;

idenAgend++;

return a;

}

Agenda * novoAgenda(Agenda *a,Compromisso *comp){

Agenda *novo=(Agenda*)malloc(sizeof(Agenda));

novo->c=comp;

novo->prox=a;

return novo;

}

Agenda * insereCompromisso(Agenda *a,char *tip,char *name,Data *dat, int hor, int durac){

//o erro está no comando abaixo.

int x=inicializaCompromisso(a->c,tip,name,dat,hor,durac);Agenda *b=novoAgenda(a,a->c);

return b;

}

void imprimeAgenda(Agenda *a){

Agenda *z;

printf("Id Agenda: %d\n",a->idAgend);

printf("ID Professor: %d\n",a->identProf);

printf("Nome do Professor: %d\n",a->nomeProfer);

printf("Ano: %d\n",a->ano);

for(z=a;z->prox!=NULL;z=z->prox){

imprimeCompromisso(z->c);

printf("\n");

}

}

Compromisso.c

#include "agenda.h"

int i=0;

int inicializaCompromisso(Compromisso*c,char *tip,char *name,Data *dat, int hor, int durac){

c->identificador=++i;

c->hora=hor;

c->duracao=durac;

if(strcmp("Aula",tip)==0)

c->prioridade=2;

else if(strcmp("Orientacao",tip)==0)

c->prioridade=1;

else if(strcmp("Reuniao",tip)==0)

c->prioridade=4;

else if(strcmp("Evento",tip)==0)

c->prioridade=3;

else if(strcmp("Compromisso Particular",tip)==0)

c->prioridade=2;

strcpy(c->tipo,tip);

strcpy(c->nome,name);

c->status=A_SER_CUMPRIDO;

c->adiavel=false;

c->data.dia=dat->dia;

return c->identificador;

}

void alteraPrioridade(Compromisso *c,int priorid){

c->prioridade=priorid;

}

int retornaPrioridade(Compromisso *c){

return c->prioridade;

}

bool eAdiavel(Compromisso *c){

if(c->tipo=="Aula" || c->tipo == "Evento")

return false;

else

return true;

}

bool temConflito(Compromisso *c1, Compromisso *c2){//Já testada.

if((c1->data.dia==c2->data.dia)&&(c1->data.mes==c2->data.mes)&&(c1->data.ano==c2->data.ano) && (c1->hora==c2->hora))

return true;

else

return false;

}

void atribuiStatus(Compromisso *c,stats status1){ c->status=status1; }

stats retornaStatus(Compromisso *c){ return c->status; }

void imprimeCompromisso(Compromisso *c){

printf("Identificador: %d\n",c->identificador);

printf("Tipo: %s\n",c->tipo);

printf("Data: %d/%d/%d\n",c->data.dia,c->data.mes,c->data.ano);

printf("Hora: %d:00\n",c->hora);

if(strcmp(c->tipo,"Evento")==0)

printf("Duracao: %d\n",c->duracao);

else{

printf("Duracao: %d\n",c->duracao); }

if(strcmp("Aula",c->tipo)==0)

printf("Nome da Disciplina: %s\n",c->nome);

else if(strcmp("Orientacao",c->tipo)==0)

printf("Nome do Aluno: %s\n",c->nome);

else if(strcmp("Reuniao",c->tipo)==0)

printf("Nome da Reuniao: %s\n",c->nome);

else if(strcmp("Evento",c->tipo)==0)

printf("Nome do Evento: %s\n",c->nome);

else if(strcmp("Compromisso Particular",c->nome)==0)

printf("Motivo: %s\n",c->nome);

if(c->status==A_SER_CUMPRIDO)

printf("A Ser Cumprido\n");

else if(c->status==ADIADO)

printf("Adiado\n");

else if(c->status==CANCELADO)

printf("Cancelado\n");

if(c->adiavel==true)

printf("Pode ser adiado\n");

if(c->adiavel==false)

printf("não pode ser adiado\n");

}

main.c

#include "agenda.h"

int main(){

bool g;

int a,b,cd;

char name[]="Natan Avila";

char nameEvent[]="Cervejada";

Data *dat;

dat->dia=29;

dat->mes=01;

dat->ano=2010;

/* dat2->dia=25;

dat2->mes=02;

dat2->ano=2005;*/

char tip[]="Evento";

Agenda *k=criaAgenda(k, 2626, name, 2011);

k=insereCompromisso(k,tip,nameEvent,dat,00,50);

imprimeAgenda(k);

getch();

free(k);

return 0;

}

O erro está no 1 quote, devidamente demarcado.

Link para o comentário
Compartilhar em outros sites

  • 0
int x=inicializaCompromisso(&(a->c),tip,name,dat,hor,durac);

O inicializaCompromisso não está dentro da "Compromisso.h"? Você teria que incluir esse header na agenda.c.

Abraços.

o agenda.h já inclui o Compromisso.h, e como inclui o agenda.h, já inclui o Compromisso também.

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