Ir para conteúdo
Lucas Lock

Agenda de compromissos em C

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Conteúdo Similar

    • Por melin
      Olá, estou com uma dúvida nesta questão que necessita da utilização de struct. A minha dúvida é como juntar as duas estruturas e compara-las para que seja imprimido o nome e sobrenome junto com a nota. Outra dúvida é o meu ciclo for que não é inicializado.
      Escreva um programa que preencha, a partir do teclado, duas estruturas distintas do tipo vetor com os nomes e as notas (as notas têm de estar contidas no intervalo 0 ≤ nota ≤ 10) dos alunos, respectivamente, de uma turma de 100 alunos. Após, exteriorize somente os nomes dos alunos que obtiveram notas iguais ou maiores que 5 (cinco).
       
      #include <stdio.h> struct nome { char nome; char sobrenome; }; struct nota{ int nota; }; int main(void){ int i,j,h; struct nome aluno[2]; struct nota boletim[2]; for (i = 0; i < 2; ++i){ printf("Digite o nome do Aluno\n"); scanf("%s%s", &aluno[i].nome, &aluno[i].sobrenome); printf("Digite a nota do Aluno\n"); scanf("%i", &boletim[i].nota); } for (i = 0; i < 2; ++i){ if (boletim[i].nota >= 2){ printf("O Aluno %s %s tem foi aprovado com nota %i", aluno[i].nome, aluno[i].sobrenome, boletim[i].nota); } } system("pause"); return 0; }  
    • Por unset
      Olá, estou elaborando a lógica para desenvolver um sistema de agendamento em PHP, ele consiste em salvar no banco os horários disponíveis que uma empresa pode funcionar,
       
      Por exemplo, certos dias de semana pode ou não ter horários liberados, assim como certos dias, nesses períodos em cada faixa de horário pode ter diferentes quantidades de clientes que podem fazer um agendamento de acordo com a quantidade do horário.
       
      Por exemplo na empresa 1 = de Segunda a Sexta das 07:00h até as 22:00h tem horário, Sábado e Domingo Fechado
      Por exemplo na empresa 2 = Só atende Sábado e Domingo das 13:00 as 00:00h e é fechado nos outros dias
      Em cada um desses horários tenho que salvar a quantidade de pessoas que podem ser atendidas por exemplo
       
      Empresa 1 =  Segunda 7:00h = 4 vagas
      Empresa 1 = Terça 18:00h = 2 vagas
      Empresa 1 = Sexta 19:00h = 0 vagas - indisponível
       
      Empresa 2 =  Sábado 17:00h = 0 vagas - indisponível
      Empresa 2 = Sábado18:00h = 5 vagas
      Empresa 2 = Domingo 20:00h = 6 vagas
       
      Pensando em uma forma que acho pouco convencional e pouco lógica, criaria um formulário com vários e vários campos de todos os dias da semana com todos os horários disponíveis e quantidades pra ser colocada como na imagem em anexo, e salvaria no formato json no banco assim por exemplo 
       
      Coluna: agendamentoDiasSemanaHorarios
       
      {"1":{"ativo":"0","horarios":{"07:00":7,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"2":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"3":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"4":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"5":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"6":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}},"7":{"ativo":"0","horarios":{"07:00":0,"07:30":0,"08:00":0,"08:30":0,"09:00":0,"09:30":0,"10:00":0,"10:30":0,"11:00":0,"11:30":0,"12:00":0,"12:30":0,"13:00":0,"13:30":0,"14:00":0,"14:30":0,"15:00":0,"15:30":0,"16:00":0,"16:30":0,"17:00":0,"17:30":0,"18:00":0,"18:30":0,"19:00":0,"19:30":0,"20:00":0,"20:30":0,"21:00":0,"21:30":0,"22:00":0,"22:30":0}}}
       
      Então no caso se 1 ativo quer dizer que segunda pode ter horários agendados, aí vem a lista gigante de horários exemplo 07:00 e em seguida a quantidade de pessoas no caso 7
       
      Estou com dificuldade para elaborar uma logica mais simples que funcione, 
       
      Se alguém tiver uma ideia e possa ajudar, uma opinião de como faria, agradeço muito.
       
       

    • Por martemsal
      Boa tarde, 
       
      Como faço para mostrar os eventos do dia cadastrados no banco de dados para uma tabela, segue o que fiz até o momento:
      (ele já retorna todas os meus registros com o código abaixo conforme imagem anexa, mas gostaria que ele mostrasse somente o do dia)
       
      $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
        
          $pesquisar = $_POST['pesquisar'];
          $result_eventos = "SELECT * FROM salas WHERE titlecurso LIKE '%$pesquisar%' LIMIT 50";
         
          $resultado_eventos = mysqli_query($conn, $result_eventos);
         
           echo '<table align="center">';
           echo "<tr> <th colspan='5'>Data</th> </tr>";
           echo "<tr><td class='h2' colspan='5' align='center'>";
           echo date("d/m/Y");
            echo "</td></tr>";
           echo "<tr> <th>Curso</th> <th>Turma</th> <th>Professor</th><th>Sala</th><th>Hora</th></tr>";
           while($rows_eventos = mysqli_fetch_array($resultado_eventos)){   
              echo "<tr><td align='center'>"; 
          echo $rows_eventos['titlecurso'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titleturma'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titleprofessor'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titlesala'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['hora_de'];
          echo "</td></tr>";

           
      echo "</table>";
      ?>
       
      alguém pode me ajudar.
      Grato

    • Por lara1807
      Boa noite pessoal, preciso resolver um algoritmo que o código abaixo descreve. Eu possuo um vetor de porcentagens e cada porcentagem dessas é atribuida de um valor do vetor entrada_pop. Nesse programa eu quero gerar um numero aleatório e ver as porcentagens que são maiores que esse numero aleatório e armazenar o valor, não da porcentagem, mas do valor que representa a porcentagem, em um vetor novo, depois imprimir este vetor, só que não está indo. Alguém pode me ajudar?? Estou variando os valores de 0 a 100
      #include <time.h>
      #include<math.h>
      #define num_individuo 3
      #define tam_vetores 1000
      int main()
      {
          float valor_percen_aptidao[]={6,20,80},v_selecionado[100],vetor_entrada_pop[]={1,2,3};
          int cont=0,i,valor_percen;
          srand(time(NULL));
          while(cont<=num_individuo)
          {
              valor_percen=(rand()%100);
              printf("sorteado %d",valor_percen);
              for(i=0;i<num_individuo;i++)
              {
                  if(valor_percen_aptidao[1]>=(float)valor_percen)
                  {
                      v_selecionado[cont]=vetor_entrada_pop;
                      cont++;
                  }
              }
          }
           for(i=0;i<num_individuo;i++)
          {
              printf("selecionados %.2f \n",v_selecionado);
          }
      }
       
    • Por novo na programação
      O sistema consiste em ler os dados cadastrados (valores estáticos) de uma entrevista e
      fornecer as informações para as seguintes perguntas:
       
      1 - Quantidade de mulher e homens na área? (% de cada sexo)
      2 - Faixa etária? (Menor e maior idade por sexo). Criar um vetor idade para cada sexo.
      3 - Quem ganha mais? Homem ou Mulher? (Comparar médias de salários)
      4 - Quem é mais especializado? (Comparar quantidade com pós-graduação %)
       
      Ex1. Perguntas?
      Sexo (1- H, 2-M)
      Idade (?)
      Salário (?)
      Possui pós-graduação? (1-S, 2-N)

      Entrada (estática)

      Entrevistado 1
      Sexo = 1
      Idade = 19
      Salário = 4.000,00
      Possui pós-graduação = 2

      Entrevistado 2
      Sexo = 2
      Idade = 25
      Salário = 3.000,00
      Possui pós-graduação = 1

      Entrevistado 3
      Sexo = 1
      Idade = 18
      Salário = 5.000,00
      Possui pós-graduação = 2

      Entrevistado 4
      Sexo = 1
      Idade = 23
      Salário = 6.000,00
      Possui pós-graduação = 1 

      Entrevistado 5
      Sexo = 2
      Idade = 30
      Salário = 2.000,00
      Possui pós-graduação = 1

      SAÍDA
      1 - Quantidade de mulher e homens na área?
      60% homens e 40% mulheres
      2 - Faixa etária?
      homens (18-23) e mulheres (25-30)
      3 - Quem ganha mais? Homem ou Mulher?
      Homens (média 5.000,00) e Mulheres (média 2.500,00)
      4 - Quem é mais especializado?
      homens - 33% e mulheres - 100%
      Cálculo = qtdhomens com pós/qtdhomens *100
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.