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

Corrigir erros no programa em C e finalizar a programação


Vinicius Gustavo

Pergunta

Olá amigos do fórum!!

Eu sou iniciante do curso de programação e ate consegui tocar o  barco na programação ate aqui mas me atrapalhei na codificação e não consigo corrigir um "erro", esta entre aspas porque não é bem um erro, o programa compila certinho e executa, mas não faz o que eu gostaria que fizesse, e também preciso finalizar o programa mas estou sem ideia...

 

vou copiar o codigo aqui, espero que possam me ajudar...

so para contextualizar, o programa se trata de um cronograma de estudos, com bloco de tempo separados, solicitei todos os dados que me importam, como nome, instituição de ensino, curso, e quantos dias da semana a pessoa tem disponivel de estudo, bem como a carga horaria disponivel respectiva de cada dia, posteriormente eu classifiquei as materias com grau de dificuldade, justamente para dar mais prioridade para as materias com mais dificuldade, ainda mais se o tempo for curto de estudo.

os  estudos são divididos com bloco de estudos, o certo são 4 blocos de estudos e um de pausa entre eles:

ex: Materia: Fisica - grau de dificuldade 1 (o mais dificultoso)

estudar 4 blocos de 20 minutos com 3 blocos de 5 min de intervalo entre eles e sendo o ultimo bloco, o 4° com um tempo maior de 10 min

 

ex para materias com grau de dificulade 2 

estudar 4 blocos  de 15 min com os mesmos intervalos

 

ex materias com grau de dificuldade 3 

estudar 4 blocos de 10 min com os mesmos intervalos

 

quanto mais facil o grau da materia, menos tempo de estudo, como o famoso metodo pomodoro, conhecido metodo utilizado por estudantes que querem passar no enem

 

eu ate consegui fazer uma boa parte do codigo, mas agora preciso mostrar o resultado para o usuario como uma especia de tabela, mostrando os dias da semana que ele precisa estudar conforme ele mesmo me disse no "cadastro, e quais seram as materias que devem ser estudas, por conta do tempo que ele tambem me disse, so preciso saber qualbloco de estudos encaixar em dias  que maais tem horas  disponiveis, como os blocos de tempo maiores, e em dias com menos tempo de estudo, bloco de tempo menores

vai ter vezes que a carga horaria disponivel para estudo vai ser menor do que a que effetivamente precisa para estudar, então deve ter uma variavel que vai reportar a quantidade de tempo que ainda preccisa para que o objetivo seja atingido, ou seja, todos os blocos de tempo de todas as materias devem ser estudos, isso semanalmente

toda dica e concelho é bem vindo...

 

o codigo é um pouco extenso,  então se quiserem por favor me chamem no email, vinicius.donetti@hotmail.com ou pelo telefone 11993358779, o trabalho esta bem encaminhado já so preciso corrigir e finalizar, ofereço ate um valor em dinheiro pela ajuda, detalhe, trabalho deve ser entregue dia 04/11/2021

 

me ajudem por favor...

 

 

#include <stdio.h>
#include <locale.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>

int org_temp_estudo(int x, int tm);
int org_temp_intervalo(int y);
int menu_inicializacao ();
int dias_p_estudar(int z, int w, int v);

int main ()
{
    setlocale(LC_ALL, "Portuguese");
    
    char resp, c, d, f;
    char materias [50][100];
    char nome [50], curso[100], faculdade[150];
    int qtde_materias = 0, i, j, dificuldade, t_semana =0, t_medio, op, n = 0, e = 0, g = 0, final = 0;
    int blocos_de_tempo[2][100], dias_estudo[7][100];
    int temp_semana[7];
    
    
    op = menu_inicializacao(); 
    system ("cls");
    if (op == 1)
    {
        printf("Que bom que decidiu começar e dar o primeiro passo rumo ao desejado 10!\n\n");
        printf("Vamos iniciar a organização e personalização do seu cronograma de estudos!\n\n");
        system("pause");
        printf ("\n\nDigite seu nome: ");
        fflush(stdin);
        do
        { 
           c=getch();
           if (isalpha(c)!=0 || c==32)
           {
              nome[n] = c;
              n++;
              printf ("%c", c);
           }
           else if(c==8&&n)
           {
              nome[n]='\0';
              n--;
              printf("\b \b");
            }
        }while(c!=13);
        nome[n]='\0';
        printf ("\n\nOlá %s, Seja muito bem vindo(a)!\n\n", nome);
         printf ("Insira seu curso: ");
        fflush(stdin);
        do
        {
           f=getch();
           if (isalpha(f)!=0 || f==32)
           {
              curso[g] = f;
              g++;
              printf ("%c", f);
           }
           else if(f==8&&g)
           {
              curso[g]='\0';
              g--;
              printf("\b \b");
           }
        }while(f!=13);
        curso[g]='\0';
        printf ("\n\nInsira sua instituição de ensino: ");
        fflush(stdin);
        do
        { 
           d=getch();
           if (isalpha(d)!=0 || d==32)
           {
              faculdade[e] = d;
              e++;
              printf ("%c", d);
           }
           else if(d==8&&e)
           {
              faculdade[e]='\0';
              e--;
              printf("\b \b");
           }
        }while(d!=13);
        faculdade[e]='\0';
        system("pause");
        system("cls");
        printf("Muito bem, dados iniciais armazenados!");
        printf("\n\n\t\t\t\t\t\t\tPróximo passo!\n\n");
        system("pause");
        system("cls");
        printf("\n%s considere que sua semana começa no DOMINGO e termina no SÁBADO...\n", nome);
        printf("\nDigite abaixo o número de horas que você pretende estudar por dia, respectivamente! (digite 0 se não for estudar no dia)");
        do
        {
        for(i=0; i<7; i++)
        {
            printf("\n\nTempo de estudo no dia %dº dia da semana: ", i+1);
            fflush(stdin);
            scanf("%d", &temp_semana[i]);
               t_semana = t_semana + temp_semana[i];
        }
        system ("pause");
        t_medio = t_semana / 7;
        if(t_semana < 0)
            printf("\nSeu tempo de estudo não é o suficiente ou é inválido, por favor tente novamente ou feche o programa");
        system("cls");
        }
        
        while(t_semana < 0);
        
        printf("\n\n\t\t\t\t\t\t\tPróxima etapa!\n\n");
        printf("A seguir, digite as matérias que você deseja estudar...");
        do 
        {
            printf ("\n\nDigite a matéria: ");
            gets (materias[qtde_materias]);
            fflush(stdin);
            do
            {
                printf("\nInsira a dificuldade da matéria para VOCÊ (ALTA = 1/MÉDIA = 2/BAIXA = 3): ");
                scanf("%i", &dificuldade);
                if (dificuldade == 1 || dificuldade == 2 || dificuldade == 3)
                {
                    blocos_de_tempo[1][qtde_materias]= org_temp_estudo(dificuldade, t_medio);
                    blocos_de_tempo[2][qtde_materias]= org_temp_intervalo(dificuldade);
                }
                else
                    printf("\nDificuldade não identificada, por favor, digite novamente...\n");
                fflush(stdin);
            } while(dificuldade != 1 && dificuldade != 2 && dificuldade != 3);
            do
            {
                    printf ("\nDeseja digitar outra? (S/N)\0\0");
                scanf("%c", &resp);
                if(toupper(resp) != 'S' && toupper(resp) != 'N')
                printf("Opção inválida, por favor, insira apenas as letras S ou N...");
                fflush(stdin);
            }while(toupper(resp) != 'S' && toupper(resp) != 'N');
            qtde_materias++;
            system("cls");
        }while(toupper(resp) == 'S');
        system("cls");
        printf ("\n\n\nAbaixo, visualize as matérias digitadas e seus respectivos tempos de estudo:\n\n\n ");
        for (i=0;i<qtde_materias;i++)
        {
            printf ("%s - Quatro blocos de %i minutos de estudo, intercalando-se com 4 blocos de %i minutos de intervalo\n\n", materias[i], blocos_de_tempo[1][i]/4, blocos_de_tempo[2][i]/4);
             for(j = 0; j < 7; j++)
             {
                 dias_estudo[j][i] = dias_p_estudar(temp_semana[j], blocos_de_tempo[1][i], blocos_de_tempo[2][i]);
                 if(dias_estudo[j][i] == 1)
                     temp_semana[j] = temp_semana[j] - (blocos_de_tempo[1][i] + blocos_de_tempo[2][i]);
            }
        }
        getch();
        system("cls");
        
        printf("\n\nJá foram coletados todos dados necessários para entregar seu planjemento de estudos, neste momento estamos compilando e formatando suas informações...\n\n");
        system("pause");
        system("cls");
           printf("\n\n\n\n");
           printf("\t\t\t\tMuito bem %s! Seu cronograma de estudos está pronto!\n\n ", nome);
           system("pause");
           final = 1;  
    }
    else if (op == 2 || final == 1)
        printf("Muito obrigado por utilizar nosso sistema, até mais!!!");
    
    return(0);
}

int menu_inicializacao ()  
{
    int op;
    do
    {    
        printf("\nOlá estudante! Seja muito  bem-vindo(a) a sua nova ferramenta de gestão de aprendizado!!!\n");
        printf("\nGostaria de começar o seu cronograma de estudos?\n");
        printf("1 - Começar\n");
        printf("2 - Sair\n");
        fflush(stdin);
        scanf("%d", &op);
        if (op == 1 || op == 2)
              return op;
          else
              printf("Opção incorreta, digite novamente...\n\n");
    }while(op != 1 && op != 2);
}

int org_temp_estudo(int x, int tm)
{
    int t;
        
    switch(x)
    {
        case 1:
            t = tm* 0.20;
            break;    
        case 2:
            t = tm* 0.15;
            break;
        case 3:    
            t = tm* 0.10;
    }
    return (t);
}

int org_temp_intervalo(int y)
{
    int intervalo;
    
    switch (y)
    {
        case 1:
            intervalo = 20; 
            break;
        case 2:
            intervalo = 15;
            break;
        case 3:
            intervalo = 10;
    }    
    return (intervalo);
}

int dias_p_estudar(int z, int w, int v)
{
    int op, t;
    t = w+v;
    if (z != 0)
    {
        if(z - t > 0)
        z = 1;
        else
        z = 0;    
    }
    else
        z = 0;
    return (z);
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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