Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #include <string.h>
- struct endereco
- {
- char bairro[50];
- char rua[50];
- unsigned short int numero;
- };
- struct data
- {
- unsigned short int dia;
- unsigned short int mes;
- unsigned int ano;
- };
- struct funci
- {
- char nome[100];
- struct endereco end;
- struct data niver;
- struct data admissao;
- unsigned int salario;
- };
- struct disciplina
- {
- char nome[50];
- unsigned short int horario[6];
- char duracao[20];
- };
- struct prof
- {
- struct funci funci_;
- struct disciplina d1;
- struct disciplina d2;
- struct disciplina d3;
- struct disciplina d4;
- unsigned int q_d;
- };
- void cl(void)
- {
- int c;
- while( (c = fgetc( stdin )) != EOF && c != '\n' );
- }
- void sd (struct disciplina d)
- {
- unsigned int i = 0, j = 0;
- printf("\nDISCIPLINA: %s", d.nome);
- printf("\nDURACAO: %s", d.duracao);
- printf("\nHORARIOS:");
- for (; i < 6 ; i++)
- {
- printf("\n");
- switch (i)
- {
- case 0: printf("SEGUNDA:"); break;
- case 1: printf("TERÇA: "); break;
- case 2: printf("QUARTA: "); break;
- case 3: printf("QUINTA: "); break;
- case 4: printf("SEXTA: "); break;
- case 5: printf("SABADO: "); break;
- }
- }
- }
- void sf(struct funci f)
- {
- printf("\nNOME: %s", f.nome);
- printf("\nENDERECO: %s", f.endereco);
- printf("\nNASCIMENTO: %d/%d/%d", f.nascimento[0], f.nascimento[1], f.nascimento[2]);
- printf("\nADMISSAO: %d/%d/%d", f.admissao[0], f.admissao[1], f.admissao[2]);
- printf("\nSALARIO: %d", f.salario);
- }
- struct disciplina xd()
- {
- struct disciplina d;
- unsigned int i = 0;
- char temp[5];
- unsigned int horai = 0, horaf = 0;
- memset(d.nome, '\0', sizeof(d.nome));
- memset(d.horario, '\0', sizeof(d.horario));
- memset(d.duracao, '\0', sizeof(d.duracao));
- printf("\nQual nome da disciplina?");
- scanf("%50[^\n]c", d.nome); cl();
- while (1)
- {
- printf("\nA duracao é anual ou semestral? Digite 'anual' ou 'semestral': ");
- scanf("%20[^\n]c", d.duracao); cl();
- if (strcmp(d.duracao, "anual") != 0 || strcmp(d.duracao, "semestral") != 0)
- {
- break;
- }
- else
- {
- printf ("\nEntrada invalida. Tente novamente.");
- }
- }
- for (; i < 6; i++)
- {
- while (1)
- {
- printf("\nQuantas horas você dá ");
- switch (i)
- {
- case 0: printf("na Segunda"); break;
- case 1: printf("na Terça"); break;
- case 2: printf("na Quarta"); break;
- case 3: printf("na Quinta"); break;
- case 4: printf("na Sexta"); break;
- case 5: printf("no Sábado"); break;
- }
- scanf("%d", &d.horario[i]); cl();
- if (d.horario[i] < 0 || d.horario[i] > 24)
- {
- printf("\nInvalido! Tente novamente!");
- }
- else
- {
- break;
- }
- }
- }
- return d;
- }
- struct funci xf()
- {
- struct funci f;
- printf("\nQual vosso nome? ");
- scanf("%100[^\n]c", f.nome); cl();
- printf("\nQual o seu endereco? ");
- scanf("%200[^\n]c", f.endereco); cl();
- printf("\nQual seu dia de nascimento? ");
- scanf("%d", &f.nascimento[0]); cl();
- printf("\nE mês? ");
- scanf("%d", &f.nascimento[1]); cl();
- printf("\nE ano? ");
- scanf("%d", &f.nascimento[2]); cl();
- printf("\nQual sua data de admissao? ");
- scanf("%d", &f.admissao[0]); cl();
- printf("\nE mês? ");
- scanf("%d", &f.admissao[1]); cl();
- printf("\nE ano? ");
- scanf("%d", &f.admissao[2]); cl();
- printf("\nQual seu salário? ");
- scanf ("%d", &f.salario); cl();
- return f;
- }
- int main()
- {
- struct funci f;
- struct prof p;
- unsigned int i = 0, temp = 0;
- setlocale(LC_ALL, "Portuguese");
- for (; i < 2; i++)
- {
- if (i == 0)
- printf("\nDigite dados do professor!");
- else if (i == 1)
- {
- // p.funci_ = f;
- printf("\nQuantas disciplinas esse professor dá?");
- scanf("%d", &p.q_d); temp = p.q_d; cl();
- if (temp == 4) { p.d4 = xd(); temp--; }
- if (temp == 3) { p.d3 = xd(); temp--; }
- if (temp == 2) { p.d2 = xd(); temp--; }
- if (temp == 1) { p.d1 = xd(); temp--; }
- printf("\nDados do professor salvos!\nDigite dados do funcionario!");
- }
- // f = xf();
- }
- printf("\nMostrando dados do professor: ");
- // sf (p.funci_);
- temp = p.q_d;
- if (temp == 4) { sd(p.d4); temp--; }
- if (temp == 3) { sd(p.d3); temp--; }
- if (temp == 2) { sd(p.d2); temp--; }
- if (temp == 1) { sd(p.d1); temp--; }
- printf("\nMostrando dados do funcionario: ");
- // sf (f);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement