Veja os campos de alguns registros:
Professor(número de registro, nome, número do título, total hora/aula sem.) Titulo(número do título, descrição, valor hora/aula)
Elabore um programa que:
Cadastre os títulos. Sabe-se que nessa escola existem três títulos;
Cadastre os professores. Sabe-se que nessa escola trabalham 6 professores, e cada um deve estar associado a um título previamente cadastrado;
Exibir a relação de professores, conforme o layout abaixo:
Eu fiz o seguinte pessoal:
#include <stdio.h>
#include <stdlib.h>
// Definindo o registro para os titulos.
struct TTitulos
{
char NomeTitulo[51];
char NumeroTitulo[12];
float ValorHrAula;
};
// Definindo o registro para os professores.
struct TProfessores
{
char NumeroRegistro[12];
char Nome[51];
char NumeroTitulo[12];
int TotalHrAulaSem;
};
int main()
{
struct TTitulos Titulos[3];
// Entrada de dados. Cadastrando os titulos para o registro.
for (int i=0; i < 3; i++)
{
printf("Entre com os dados do %d.o titulo:", i + 1);
printf("\nNome: ");
fgets(Titulos[i].NomeTitulo, 51, stdin);
setbuf(stdin, NULL);
printf("\nCodigo: ");
fgets(Titulos[i].NumeroTitulo, 12, stdin);
setbuf(stdin, NULL);
printf("\nValor hora/aula: ");
scanf("%.2f", Titulos[i].ValorHrAula);
setbuf(stdin, NULL);
printf("\n");
// Limpa tela.
system("cls");
}
struct TProfessores Professores[6];
// Entrada de dados. Cadastrando os dados dos professores para o registro.
for (int i=0; i < 6; i ++)
{
printf("Entre com os dados do %d.o professor:", i + 1);
printf("\nNome: ");
fgets(Professores[i].Nome, 51, stdin);
setbuf(stdin, NULL);
printf("\nNumero do registro: ");
fgets(Professores[i].NumeroRegistro, 12, stdin);
setbuf(stdin, NULL);
printf("\nNumero do titulo: ");
fgets(Professores[i].NumeroTitulo, 12, stdin);
setbuf(stdin, NULL);
printf("\nTotal de horas de aula por semana: ");
scanf("%d", Professores[i].TotalHrAulaSem);
setbuf(stdin, NULL);
printf("\n");
// Limpa tela.
system("cls");
}
// Imprimindo os dados na tela.
printf("Imprimindo os dados dos professores...\n");
for (int i=0; i < 6; i ++)
{
printf("\nNome: %s", Professores[i].Nome);
printf("\nNumero do registro: %d", Professores[i].NumeroRegistro);
printf("\nNome do titulo: %s", Titulos[i].NomeTitulo);
printf("\nValor hora/aula: %.2f", Titulos[i].ValorHrAula);
printf("\nTotal de horas de aula por semana: %d", Professores[i].TotalHrAulaSem);
printf("\nTotal geral: %.2f", Titulos[i].ValorHrAula * Professores[i].TotalHrAulaSem);
}
return 0;
}
Duvidas: não entendi porque a entrada de dados de professores (cadastro) só repetiu uma vez... sendo que a ideia é que essa entrada de dados de professores repita 6 vezes, pois são 6 professores a serem cadastrados. A saída de dados também não apareceu no meu programa e, por fim, o "Q" da questão é associar na saída do programa o nome do título do professor ao número do título já registrado anteriormente em struct TTitulo.