Download the Guru IA app

Android and iOS

Foto de perfil

Gabriel

SENT BY THE APP
Estudos Gerais03/26/2025

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

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

#define maxaluno 1 #define maxatividade 1

typedef struct { char categoria; char descricao[1000]; int horas; } atividade;

typedef struct { int numeropessoal; char nome[1000]; int ingressou; // Ano que o aluno ingressou no curso. atividade atividades[maxatividade]; // Vetor de atividades, que armazena até o número máximo de atividades que o aluno realizou. } aluno;

typedef struct { char ncurso[1000]; // Nome do curso int tminimo; // Tempo mínimo do curso int tmaximo; // Tempo máximo do curso aluno alunos[maxaluno]; // Quantidade de alunos que estão realizando o curso. } curso;

//Typedef Struct: E utilizado para definir uma estrutura sem nome imediato, mas cria um chamado para uma estrutura que já foi definida. //Em vez de declarar variáveis usando struct toda vez, você pode simplesmente usar ATIVIDADE. Isso simplifica a sintaxe e melhora a legibilidade do código

// Função para coletar as informações do curso void informecurso(curso *c) { //A função é definida para receber um ponteiro. Isso permite que a função modifique diretamente os valores dentro da estrutura passada. printf("Digite o nome do curso: "); fgets(c->ncurso, 1000, stdin); //Rntrada padrão que armazena no campo ncurso da estrutura curso. //A função fgets é usada para ler até 999 caracteres.

printf("Qual tempo máximo do curso: ");
scanf("%d", &c->tmaximo);

printf("Qual o tempo mínimo do curso: ");
scanf("%d", &c->tminimo);

}

// Função para coletar os dados de um aluno void informacaodoaluno(aluno *a) { printf("Nome do aluno: "); fgets(a->nome, 1000, stdin);

printf("Número pessoa do aluno: ");
scanf("%d", &a->numeropessoal);

//fgets é usado para ler uma linha de texto, e armazená-la no campo nome da estrutura aluno. printf("Ano que iniciou os estudos: "); scanf("%d", &a->ingressou);

}

// Função para adicionar uma atividade a um aluno void nomedaatividade(atividade *a) { // Lê a categoria da atividade printf("Qual atividade o aluno realizou:(P - Pessoal, C - Científica, V - Voluntária, S - Social, T - Técnica): "); scanf(" %c", &a->categoria); getchar(); // Limpa o uma área de memória utilizada para armazenar temporariamente dados enquanto eles estão sendo transferidos de um lugar para outro do teclado após ler a categoria.

// Lê a descrição da atividade
printf("Descrição da atividade: ");
fgets(a->descricao, 1000, stdin);

// Lê o tempo de duração da atividade
printf("Informe o tempo de duração da atividade (em horas): ");
scanf("%d", &a->horas);
getchar();

}

// Função para exibir os dados do curso void evidenciardcurso(const curso *c) { printf("\nNome do Curso: %s", c->ncurso); printf("Tempo mínimo do Curso: %d horas\n", c->tminimo); printf("Tempo máximo do Curso: %d horas\n", c->tmaximo);

for (int i = 0; i < maxaluno; i++) {
        // Um loop para definir o numero maximo de alunos.
    const aluno *a = &c->alunos[i];
        //Um ponteiro constante para o i-ésimo aluno na lista de alunos do curso.
        printf("\nAluno %d - Matrícula: %d\n", i + 1, a->numeropessoal);
                //Exibe o número do aluno (baseado no índice do loop) e seu número de matrícula.
                       printf("Nome do aluno: %s", a->nome);
                       //Exibe o nome do aluno.
                              printf("Ano que iniciou os estudos: %d\n", a->ingressou);
                              //Exibe o ano em que o aluno começou seus estudos.

        int somahoras = 0;
       //Inicializa uma variável para somar as horas das atividades do aluno.
        for (int j = 0; j < maxatividade; j++) {
            const atividade *act = &a->atividades[j];
            if (act->horas > 0) {
            //Verifica se a atividade tem uma duração maior que zero
                printf("Atividade %d - Tipo: %c\n", j + 1, act->categoria);
                printf("Descrição: %s", act->descricao);//Exibe a descrição da atividade.
                printf("Duração: %d horas\n", act->horas);//Exibe a duração da atividade em horas.
                somahoras += act->horas;
            }
        }

        if (somahoras >= c->tminimo) {
            printf("O aluno atingiu a carga horária mínima necessária.\n");
        } else {
            printf("O aluno não atingiu a carga horária mínima necessária.\n");
        }
    }
}

int main() { setlocale(LC_ALL, "Portuguese");

curso c;
informecurso(&c);

int escolha;
int continuar = 1;

while (continuar) {
    printf("\nEscolha uma opção:\n");
    printf("1. Adicionar aluno\n");
    printf("2. Adicionar atividade para um aluno\n");
    printf("3. Mostrar dados do curso\n");
    printf("4. Sair\n");
    printf("Escolha: ");
    scanf("%d", &escolha);
    getchar();
    //Exibe um menu de opções para o usuário.

    switch (escolha) {
        case 1:
            informacaodoaluno(&c.alunos[0]);
            printf("Aluno adicionado com sucesso!\n");
            break;

        case 2:
            if (c.alunos[0].numeropessoal != 0) {
                nomedaatividade(&c.alunos[0].atividades[0]);
                printf("Atividade adicionada com sucesso!\n");
            } else {
                printf("Nenhum aluno registrado para adicionar atividades.\n");
            }
            break;
            //Adiciona uma atividade ao primeiro aluno, se houver algum registrado.

        case 3:
            evidenciardcurso(&c);
            break;
            //Mostra os dados do curso chamando

        case 4:
            printf("Encerrando...\n");
            continuar = 0;
            break;
            //Encerra o programa definindo

    }
}

return 0;

} Ajuste o codigo para 50 alunos e100 atividades

Send your questions through the App
Google Play
App Store
Equipe Meu Guru

Do you prefer an expert tutor to solve your activity?

  • Receive your completed work by the deadline
  • Chat with the tutor.
  • 7-day error guarantee