Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso fazer uma agenda de compromisso em que ao digitar 1 = cadastro um compromisso. 2 = consultar compromisso por data. 3 = listar todos os compromissos por data. 4 = listar todos os compromissos do ano. 5 = remover compromisso. 6 = sair da agenda. ao digitar qualquer outro numero deve aparecer opção invalida.
Use define (ou enum) p/ não ficar aparecendo uns números mágioos no switch-case.
Só lembre de não usar fflush na entrada padrão.
As opções 2 e 3 fazem a mesma coisa.
struct compromisso{
char descricao[100];
int dia,mes,ano;
}compromissos[100];
int main(){
int opcao=1,totaldecompromissos=0,i,diatemporario,mestemporario,anotemporario,numero;
while(opcao!=6){
printf("Digite a opcao:");
printf("\n1.Cadastrar compromisso");
printf("\n2.Consultar compromissos por data");
printf("\n3.Listar todos os compromissos de uma data");
printf("\n4.Listar todos os compromissos de um ano");
printf("\n5.Remover compromisso");
printf("\n6.Sair");
scanf("%d",&opcao);
if(opcao==1){
printf("Digite a data do compromisso:");
printf("\nDia:");
scanf("%d",&compromissos[totaldecompromissos].dia);
printf("\nMes:");
scanf("%d",&compromissos[totaldecompromissos].mes);
printf("\nAno:");
scanf("%d",&compromissos[totaldecompromissos].ano);
printf("\nDigite a descricao do compromisso:");
scanf("%*c%[^\n]%*c",compromissos[totaldecompromissos].descricao);
totaldecompromissos++;
}
else if((opcao==2)||(opcao==3)){
printf("Digite a data do compromisso:");
printf("\nDia:");
scanf("%d",&diatemporario);
printf("\nMes:");
scanf("%d",&mestemporario);
printf("\nAno:");
scanf("%d",&anotemporario);
for(i=0;i<totaldecompromissos;i++)
if((diatemporario==compromissos[i].dia)&&(mestemporario==compromissos[i].mes)&&(anotemporario==compromissos[i].ano))
printf("\n%s\n",compromissos[i].descricao);
}
else if(opcao==4){
printf("\nDigite o ano:");
scanf("%d",&anotemporario);
for(i=0;i<totaldecompromissos;i++)
if(anotemporario==compromissos[i].ano){
printf("\nDia: %d\n",compromissos[i].dia);
printf("Mes: %d\n",compromissos[i].mes);
printf("Descricao: %s\n",compromissos[i].descricao);
}
}
else if(opcao==5){
for(i=0;i<totaldecompromissos;i++){
printf("\nNumero: %d\n",i+1);
printf("Dia: %d\n",compromissos[i].dia);
printf("Mes: %d\n",compromissos[i].mes);
printf("Descricao: %s\n",compromissos[i].descricao);
}
printf("\nDigite o numero do compromisso que deseja remover:");
scanf("%d",&numero);
for(i=(numero-1);i<totaldecompromissos;i++){
compromissos[i].dia=compromissos[i+1].dia;
compromissos[i].mes=compromissos[i+1].mes;
compromissos[i].ano=compromissos[i+1].ano;
strcpy(compromissos[i].descricao,compromissos[i+1].descricao);
}
totaldecompromissos--;
}
else if(opcao==6){
}
else{
printf("Opcao invalida.\n");
}
}
system("pause");
}
Faz um switch-case.