Você está na página 1de 8

Dados e identificação

Orientado por:
José Dias Queta

Instituição:
Instituto Médio de Administração e Gestão /Garsu

Endereço completo da instituição:


Bairro Cabonda-Papelão, AV. Do Aeroporto defronte ao condomínio Ana Paula.

Integrantes do grupo:

• Ângelo Pedro António


• Avelino dos Santos
• Ferraz de Alegria A. Fernando
• José Miguel Nzola
• Kakimbiko Garcia K. João
• Laurindo M. Monteiro
• Miguel Diogo
• Nelson Alberto Raúl
• Nlando Teca

Assinatura dos estudantes:

• __________________________________________
• __________________________________________
• __________________________________________
• __________________________________________
• __________________________________________
• __________________________________________
• __________________________________________
• __________________________________________
• __________________________________________

1
Introdução
O programa "Gestão de horários" é um programa desenvolvido pela equipe Clã
Software juntamente com o auxilio de seu orientador “José Dias Queta” para auxiliar na
gestão de horários de professores.

2
Fundamentação Teórica
1. cadastrarProfessor():
Responsável por cadastrar informações sobre professores, turmas, disciplinas e
horários associados.
Solicita o número de professores a serem cadastrados, e o valor informado é
armazenado na variável (np).
Utiliza um loop para iterar sobre o número especificado de professores.
Para cada professor, coleta o nome, número de turmas e, para cada turma, nome e
disciplinas com seus respectivos horários.
Armazena as informações no array global professores.
Adiciona a estrutura novoProfessor ao array professores se o limite de professores
(MAX_PROFESSORES) não for atingido.
2. exibirHorarios():
Exibe os horários dos professores, turmas, disciplinas e seus respectivos horários.
Utiliza loops aninhados para percorrer as estruturas de dados (professores, turmas,
disciplinas e horários).
Exibe os nomes dos professores, turmas, disciplinas e os dias e horas associados.
3. main():
Função principal que inicia o programa. Realiza a autenticação do usuário com um
nome e senha definidos inicialmente.
Exibe um menu principal em um loop do-while permitindo ao usuário escolher entre
cadastrar professores, exibir horários ou sair do programa, permitindo que o programa
continue até que o usuário escolha a opção de sair. Chama as funções correspondentes com
base na escolha do usuário.
Utiliza strcmp, uma função da biblioteca “string.h” que faz a comparação de valores
do tipo string, para verificar a autenticação do usuário.

3
Apresentação:

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

//DEFINIÇÃO DAS CONSTANTES DO PROGRAMA

#define MAX_PROFESSORES 50
#define MAX_DISCIPLINAS 20
#define MAX_TURMAS 10
#define MAX_HORARIOS 5

struct Horario {
char dia[10];
char hora[10];
};

struct Disciplina {
char nome[50];
struct Horario horarios[MAX_HORARIOS];
int numHorarios;
};

struct Turma {
char nome[20];
struct Disciplina disciplinas[MAX_DISCIPLINAS];
int numDisciplinas;
};

struct Professor {
char nome[50];
struct Turma turmas[MAX_TURMAS];
int numTurmas;
};

struct Professor professores[MAX_PROFESSORES];


int numProfessores = 0;
int np=0;
struct Professor novoProfessor;

void cadastrarProfessor() {

printf("Quantos professores deseja cadastrar?: ");


4
scanf("%d", &np);

for(int z = 0; z < np; z++){

if (numProfessores < MAX_PROFESSORES) {

printf("Nome do professor %d: ",z + 1);


fflush(stdin);
gets(novoProfessor.nome);
printf("Quantidade de turmas que o professor %d leciona: ",z + 1);
scanf("%d", &novoProfessor.numTurmas);

for (int i = 0; i < novoProfessor.numTurmas; i++) {

printf("Nome da turma %d: ", i + 1);


scanf("%s", &novoProfessor.turmas[i].nome);

printf("Quantidade de disciplinas na turma: ");


scanf("%d", &novoProfessor.turmas[i].numDisciplinas);

for (int j = 0; j < novoProfessor.turmas[i].numDisciplinas; j++) {

printf("Nome da disciplina %d: ", j + 1);


scanf("%s", &novoProfessor.turmas[i].disciplinas[j].nome);

printf("Quantidade de Tempos para a disciplina: ");


scanf("%d", &novoProfessor.turmas[i].disciplinas[j].numHorarios);

for (int k = 0; k < novoProfessor.turmas[i].disciplinas[j].numHorarios; k++) {

printf("Dia e hora dos tempos %d (ex: Segunda 13:00): ", k + 1);


scanf("%s %s", novoProfessor.turmas[i].disciplinas[j].horarios[k].dia,
novoProfessor.turmas[i].disciplinas[j].horarios[k].hora);
}
}
}
professores[numProfessores++] = novoProfessor;
}else {
printf("Limite de professores atingido.\n");
}
}
printf("Professores cadastrados com sucesso!\n");
}

5
void exibirHorarios() {

printf("\nHorarios dos professores:\n");

//EXIBIR O NOME DO PROFESSOR


for (int i = 0; i < numProfessores; i++) {
printf("%s:\n", professores[i].nome);

//EXIBIR O NOME DA TURMA EM QUE O PROFESSOR LECIONA


for (int j = 0; j < professores[i].numTurmas; j++) {
printf("Turma: %s\n", professores[i].turmas[j].nome);

//EXIBIR O NOME DA DISCIPLINA


for (int k = 0; k < professores[i].turmas[j].numDisciplinas; k++) {
printf(" - Disciplina: %s\n", professores[i].turmas[j].disciplinas[k].nome);

//EXIBIR O DIA E A HORA


for (int l = 0; l < professores[i].turmas[j].disciplinas[k].numHorarios; l++) {
printf("- % s as %s\n", professores[i].turmas[j].disciplinas[k].horarios[l].dia,
professores[i].turmas[j].disciplinas[k].horarios[l].hora);
}
}
}
}
}

int main() {
char nome_usuario[]="clan software";
char senha_usuario[]="9876";
char nome[20];
char senha[20];
int opcao;

printf("Informe o nome de usuario: ");


fflush(stdin);
gets(nome);
printf("Informe a senha: ");
fflush(stdin);
gets(senha);

if(strcmp(nome, nome_usuario) ==0 && strcmp(senha, senha_usuario)==0){


printf("BEM VINDO AO SISTEMA DE GESTAO DE HORARIOS!");

6
do {
printf("\nMenu:\n");
printf("1. Cadastrar Professor\n");
printf("2. Exibir Horarios\n");
printf("0. Sair\n");
printf("Escolha uma opcao: ");
scanf("%d", &opcao);

switch (opcao) {
case 1:
cadastrarProfessor();
break;
case 2:
exibirHorarios();
break;
case 0:
printf("Saindo do programa.\n");
break;
default:
printf("Opcao invalida.\n");
}
} while (opcao != 0);
}else{
printf("Nome de usuario e (ou) senha incorretos!");
}
return 0;
}

7
Conclusão
No geral, o programa "Gestão de horários" oferece uma solução simples e fácil para o
gerenciamento dos horarios de trabalho dos professores. Em resumo, as funções
desempenham papéis específicos na gestão de horários, desde o cadastro de informações até a
exibição hierárquica dos horários associados aos professores, turmas e disciplinas.

Você também pode gostar