Logo Hardware.com.br
AnaCarolina942
AnaCarolina9... Novo Membro Registrado
1 Mensagem 0 Curtidas

Alguém poderia dar uma olhada nesse programa e tentar arrumá-lo o mais rápido possivel?

#1 Por AnaCarolina9... 03/12/2014 - 10:46
[code=C]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]
[HASHTAG]#include[/HASHTAG]

typedef struct s_compromisso//struct para informaçoes do compromisso
{ char titulo [100];
char descricao [100];
int data_inicio;
int horario_inicio;
int data_termino;
int horario_termino;
}compromisso;

typedef struct s_tarefa//struct para informaçoes da tarefa
{ int data_conclusao;
char descricao[250];
char prioridade[250];
char indicador[100];
}tarefa;

typedef struct s_feriado//struct para informaçoes dos feriados
{ char nome[100];
char indicador[100];
int data_feriado;
}feriados;

typedef struct s_aniversario//struct para informaçoes do aniversario
{ char nome_aniversariante[100];
int data_aniversario;
int horario_festa;
int data_festa;
}aniversario;

void preenche_agenda ()
{
compromisso com[1];aniversario niver[1];tarefa t[1];feriados f[1];
FILE *p_compromisso,*p_tarefa,*p_aniversario,*p_feriado;
int a;//escolher a opcao desejada para preencher os compromissos
printf("Digite 1 para criar compromisso.\n");
printf("Digite 2 para arquivar um novo aniversariante.\n");
printf("Digite 3 para arquivar uma nova tarefa.\n");
printf("Digite 4 para arquivar um novo feriado.\n");
printf("Digite a opcao desejada:");
scanf("%d",&a);

switch(a)
{
case 1 :
printf("Digite a data de incio do compromisso : ");
scanf("%d",&com[0].data_inicio);
printf("Digite o horario de inicio do compromisso:");
scanf("%d",&com[0].horario_inicio);
printf("Digite a data de termino do compromisso: ");
scanf("%d",&com[0].data_termino);
printf("Digite o horario de termino do compromisso: ");
scanf("%d",&com[0].horario_termino);
printf("Digite o titulo do mesmo: ");
gets(com[0].titulo);
printf("Digite a descricao: ");
gets(com[0].descricao);
p_compromisso= fopen("arquivo.dat","a");
fwrite(com,sizeof(struct s_compromisso),1,p_compromisso);
fclose(p_compromisso);
break;

case 2:
printf("Digite a data do aniversario:");
scanf("%d",&niver[0].data_aniversario);
printf("Digite o horario da festa: ");
scanf("%d",&niver[0].horario_festa);
printf("Digite a data da festa: ");
scanf("%d",&niver[0].data_festa);
printf("Digite o nome:");
gets(niver[0].nome_aniversariante);
p_aniversario= fopen("arquivo.txt","a");
fwrite(niver,sizeof(struct s_aniversario),1,p_aniversario);
fclose(p_aniversario);
break;

case 3:
printf("Digite a data de conclusao da tarefa: ");
scanf("%d",&t[0].data_conclusao);
printf("Digite a descricao: ");
gets(t[0].descricao);
printf("Digite a prioridade: ");
gets(t[0].prioridade);
printf("Indique se a tarefa ja foi concluida : ");
gets(t[0].indicador);
p_tarefa= fopen("arquivo.txt","a");
fwrite(t,sizeof(struct s_tarefa),1,p_tarefa);
fclose(p_tarefa);
break;

case 4 :
printf("Digite a data do feriado: ");
scanf("%d",&f[0].data_feriado);
printf("Digite o nome do feriado: ");
gets(f[0].nome);
printf("Indique se o feriado e nacional ou internacional: ");
gets(f[0].indicador);
p_feriado=fopen("arquivo.txt","a");
fwrite(f,sizeof(struct s_feriado),1,p_feriado);
fclose(p_feriado);
break;
default:
printf("Codigo invalido");
}
}
void editar ()
{
int alt,opcao;//para alterar e selecionar uma opcao
aniversario niver[1];compromisso com[1];feriados f[1];tarefa t[1];
FILE *p_compromisso,*p_tarefa,*p_aniversario,*p_feriado;

printf("Digite 1 para alterar seu compromisso\n");
printf("Digite 2 para alterar sua tarefa:\n");
printf("Digite 3 para alterar o aniversario:\n");
printf("Digite 4 para alterar o feriado:\n\n");
printf("Digite a opcao desejada:");
scanf("%d",&alt);

switch(alt)
{
case 1:
printf("Digite a data do compromisso que deseja editadar :");
scanf("%d",&opcao);
p_compromisso=fopen("arquivo.txt","r+");
while (fread(com,sizeof(struct s_compromisso),1,p_compromisso))
{
if (com[0].data_inicio==opcao)
{
fseek(p_compromisso,-sizeof(struct s_compromisso),SEEK_CUR);
printf("Digite a data de incio do compromisso : ");
scanf("%d",&com[0].data_inicio);
printf("Digite o horario de incio do compromisso:");
scanf("%d",&com[0].horario_inicio);
printf("Digite a data de termino do compromisso: ");
scanf("%d",&com[0].data_termino);
printf("Digite o horario de termino do compromisso: ");
scanf("%d",&com[0].horario_termino);
printf("Digite o nome do mesmo: ");
gets(com[0].titulo);
printf("Digite a descricao: ");
gets(com[0].descricao);
p_compromisso= fopen("arquivo.txt","a");
fwrite(com,sizeof(struct s_compromisso),1,p_compromisso);
fclose(p_compromisso);
return;
}
}
fclose(p_compromisso);
printf("Não existe");
return;
break;

case 2:
printf("Digite a data de conclusao da tarefa a ser alterada:");
scanf("%d",&opcao);
p_tarefa=fopen("arquivo.txt","r+");

while (fread(t,sizeof(struct s_tarefa),1,p_tarefa))
{
if (t[0].data_conclusao==opcao)
{
fseek(p_tarefa,-sizeof(struct s_tarefa),SEEK_CUR);
printf("Digite a data de conclusao: ");
scanf("%d",&t[0].data_conclusao);
printf("Digite a descricao: ");
gets(t[0].descricao);
printf("Digite a prioridade: ");
gets(t[0].prioridade);
printf("Indique se a tarefa ja foi realizada : ");
gets(t[0].indicador);
p_tarefa=fopen("arquivo.txt","a");
fwrite(t,sizeof(struct s_tarefa),1,p_tarefa);
fclose(p_tarefa);
return;
}
}
fclose(p_tarefa);
printf("Não existe");
return;
break;

case 3:
printf("Digite o nome do(a) aniversariante para editar :");
scanf("%d",&opcao);
p_aniversario=fopen("arquivo.txt","r+");
while (fread(niver,sizeof(struct s_aniversario),1,p_aniversario))
{
if (niver[0].data_aniversario==opcao)
{
fseek(p_aniversario,-sizeof(struct s_aniversario),SEEK_CUR);
printf("Digite a data do aniversario:");
scanf("%d",&niver[0].data_aniversario);
printf("Digite o horario da festa: ");
scanf("%d",&niver[0].horario_festa);
printf("Digite a data da festa: ");
scanf("%d",&niver[0].data_festa);
printf("Digite o nome:");
gets(niver[0].nome_aniversariante);
p_aniversario= fopen("arquivo.txt","a");
fwrite(niver,sizeof(struct s_aniversario),1,p_aniversario);
fclose(p_aniversario);
}
}
fclose(p_aniversario);
printf("Não existe");
return;
break;

case 4:
printf("Digite o dia do feriado a ser alterado:");
scanf("%d",&opcao);
p_feriado=fopen("arquivo.txt","r+");

while (fread(f,sizeof(struct s_feriado),1,p_feriado))
{
if (f[0].data_feriado==opcao)
{
fseek(p_feriado,-sizeof(struct s_feriado),SEEK_CUR);
printf("Digite a data do feriado: ");
scanf("%d",&f[0].data_feriado);
printf("Digite o nome: ");
gets(f[0].nome);
printf("Indique se o feriado e nacional ou internacional: ");
gets(f[0].indicador);
p_feriado=fopen("arquivo.txt","a");
fwrite(f,sizeof(struct s_feriado),1,p_feriado);
fclose(p_feriado);
}
}
fclose(p_feriado);
printf("Não existe");
return;
break;
default:
printf("Digite um numero de 1 a 4");
}

}

void remover()
{
compromisso com[1];aniversario niver[1];tarefa t[1];feriados f[1];
FILE *p_compromisso,*p_tarefa,*p_aniversario,*p_feriado;
int cont,i=0,g=0,escolha,re;//contador,a variavel escolha para escolher as opcoes,re para remover

printf("Escolha a opcao que deseja remover:\n");
printf("1- Compromissos\n");
printf("2- Tarefas\n");
printf("3- Aniversarios\n");
printf("4- Feriados\n");
printf("Digite sua opcao:");
scanf("%d",&escolha);

switch (escolha)
{
case 1:
{
printf("Digite a data do compromisso que voce deseja remover:");
scanf("%d",&re);
p_compromisso = fopen("arquivo.txt","r+");
while(fread(com,sizeof(struct s_compromisso),1,p_compromisso))
{
cont++;
}
fclose(p_compromisso);
p_compromisso = fopen("arquivo.txt","r+");
struct s_compromisso comp[cont];

while(fread(com,sizeof(struct s_compromisso),1,p_compromisso))
{
if(com[0].data_inicio!=re)
{
com[I]=com[1];
i++;
}
}
fclose(p_compromisso);
p_compromisso= fopen("arquivo.txt","w+");
for(g=0;g {
com[0]=comp[g];
fwrite(com,sizeof(struct s_compromisso),1,p_compromisso);
}
fclose(p_compromisso);
}
break;

case 2:
{
printf("Digite o dia da tarefa a ser removida:");
scanf("%d",&re);

p_tarefa=fopen("arquivo.txt","r+");
while(fread(t,sizeof(struct s_tarefa),1,p_tarefa))
{
cont++;
}
fclose(p_tarefa);
p_tarefa= fopen("arquivo.txt","r+");
struct s_tarefa tar[cont];

while(fread(t,sizeof(struct s_tarefa),1,p_tarefa))
{
if(t[0].data_conclusao!=re)
{
tar[I]=t[1];
i++;
}
}
fclose(p_tarefa);
p_tarefa= fopen("arquivo.txt","w+");
for(g=0;g {
t[0]=tar[g];
fwrite(t,sizeof(struct s_tarefa),1,p_tarefa);
}
fclose(p_tarefa);

}
break;

case 3:
{
printf("Digite a data do aniversario a ser removido:");
scanf("%d",&re);

p_aniversario= fopen("arquivo.txt","r+");
while(fread(niver,sizeof(struct s_aniversario),1,p_aniversario))
{
cont++;
}
fclose(p_aniversario);
p_aniversario= fopen("arquivo.txt","r+");
struct s_aniversario an[cont];

while(fread(niver,sizeof(struct s_aniversario),1,p_aniversario))
{
if(niver[0].data_aniversario!=re)
{
an[I]=niver[1];
i++;
}
}
fclose(p_aniversario);
p_aniversario= fopen("arquivo.txt","w+");
for(g=0;g {
niver[0]=an[g];
fwrite(niver,sizeof(struct s_aniversario),1,p_aniversario);
}
fclose(p_aniversario);
}
break;

case 4:
{
printf("Digite a data do feriado a ser removido:");
scanf("%d",&re);

p_feriado = fopen("arquivo.txt","r+");
while(fread(f,sizeof(struct s_feriado),1,p_feriado))
{
cont++;
}
fclose(p_feriado);
p_feriado = fopen("arquivo.txt","r+");
struct s_feriado fer[cont];

while(fread(f,sizeof(struct s_feriado),1,p_feriado))
{
if(f[0].data_feriado!=re)
{
fer[I]=f[1];
i++;
}
}
fclose(p_feriado);
p_feriado= fopen("arquivo.txt","w+");
for(g=0;g {
f[0]=fer[g];
fwrite(f,sizeof(struct s_feriado),1,p_feriado);
}
fclose(p_feriado);
}
break;
}
}
void agendacompleta_agendadia()
{
FILE *arquivo;
aniversario niver[1];
compromisso com[1];
feriados f[1];
tarefa t[1];

arquivo = fopen("agenda.dat","r");
int numero,l,d;

printf("Digite 1 para ver sua agenda completa\n");
printf("Digite 2 para ve sua agenda do dia\n");
printf("Digite sua opcao escolhida:");
scanf("%d",&numero);
if (numero==1)
{
switch (numero)
{
case 1:
{
printf("1- Para ver seus compromissos");
printf("2- Para ver suas tarefas");
printf("3- Para ver os aniversarios");
printf("4- Para ver os feriados");
printf("Digite o que deseja ver: ");
scanf("%d",&l);

switch(l)
{
case 1:
while(fread(com,sizeof(compromisso ),1,arquivo)){
printf("Compromisso:%s\n",com[0].titulo);
printf("Descriçao:%s\n",com[0].descricao);
printf("Data de inicio:%s\n",com[0].data_inicio);
printf("Horario de inicio:%s\n",com[0].horario_inicio);
printf("Data de termino:%s\n",com[0].data_termino);
printf("Horario de termino:%s\n",com[0].horario_termino);
}
break;
case 2:
while(fread(t,sizeof(tarefa ),1,arquivo)){
printf("Data de conclusão:%s\n",t[0].data_conclusao);
printf("Descrição:%s\n",t[0].descricao);
printf("Prioridade:%s\n",t[0].prioridade);
printf("Indicador:%s\n",t[0].indicador);
break;
}
case 3:
while(fread(f,sizeof(feriados ),1,arquivo)){
printf("Nome:%s\n",f[0].nome);
printf("Indicador:%s\n",f[0].indicador);
printf("Data do feriado:%s\n",f[0].data_feriado);
}
break;
case 4:
while(fread(niver,sizeof(aniversario ),1,arquivo)){
printf("Nome do aniversariante:%s\n",niver[0].nome_aniversariante);
printf("Data do aniversario:%s\n",niver[0].data_aniversario);
printf("Horario da festa:%s\n",niver[0].horario_festa);
printf("Data da festa:%s\n",niver[0].data_festa);
}
break;
fclose(arquivo);
}
break;
}
if (numero==2)
{
case 2:
printf("Digite o dia de hoje:");
scanf("%d",&d);
break;

}
}
}


int menu ()
{
system("color ");
int op;
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("AAAAAAA GGGGGGGG EEEEEEEE NNNN NN DDDDDDDD AAAAAAA ~~\n");
printf("AA AA GG EE NN NN NN DD DD AA AA ~~\n");
printf("AA AA GG EE NN NN NN DD DD AA AA ~~\n");
printf("AAAAAAA GG GGGG EEEEE NN NN NN DD DD AAAAAAA ~~\n");
printf("AA AA GG GG EE NN NN NN DD DD AA AA ~~\n");
printf("AA AA GG GG EE NN NN NN DD DD AA AA ~~\n");
printf("AA AA GGGGGGGGG EEEEEEEE NN NNNN DDDDDDDD AA AA ~~\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("~~ ~~\n");
printf("~~ 1 - Criar compromissos,tarefas e aniversarios ~~\n");
printf("~~ 2 - Editar compromissos,tarefas e aniversarios ~~\n");
printf("~~ 3 - Remover compromissos,tarefas e aniversarios ~~\n");
printf("~~ 4 - Lista de feriados ~~\n");
printf("~~ 5 - Agenda completa ~~\n");
printf("~~ 6 - Agenda do dia ~~\n");
printf("~~ 7 - Sair ~~\n");
printf("~~ ~~\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
printf("Digite sua opcao : ");
scanf("%d",&op);

system("cls");


}

int main()
{
aniversario niver[1],*niver1;
compromisso com[1],*com1;
feriados f[1],*f1;
tarefa t[1],*t1;

niver1=&niver;
com1=&com;
f1=&f;
t1=&t;

system("cls");

int opc ; //utilizada para chamar o menu
opc=menu();

switch(opc)
{
case 1:
{
preenche_agenda();
}
break;
case 2:
{
editar();
}
break;
case 3:
{
remover();
}
break;
case 4:
{
preenche_agenda ();
}
break;
case 5:
agendacompleta_agendadia();
break;
case 6:
return 0;
break;
default:
printf("Codigo digitado invalido");
break;
}

return 0;
}
}
[/code]

Anexos

© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal