Advertisement
Jkljk

trabalho imcompleto de pc1, cadastro escolar

Oct 30th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 13.81 KB | None | 0 0
  1. /* o trabalho esta cheio de erros, pode ate compilar mas em determinadas chamadas de funçoes, o programa fecha sozinho, pode ser erro em como os parametros das funçoes sao passados mas eu não sei como resolver.
  2. em determinados if's era necessario a aplicaçao do comando while para averiguar se o usuario esta digitando opçoes entre 0 ou 1, alem como se o cpf, rg, numero pis e passaporte sao validos.
  3.  
  4. o trabalho esta incompleto e muito provavelmente nao sera completado. segue abaixo oque deveria ser feito:
  5.  
  6. Alunos e Professores
  7. Alunos e professores possuem as seguintes características
  8. ● Nome;
  9. ● Sobrenome;
  10. ● Brasileiro? (0 - Brasileiro, 1 - Estrangeiro)
  11. ○ Caso seja Brasileiro:
  12. ■ Número do CPF;
  13. ■ Número do RG;
  14. ○ Caso seja estrangeiro:
  15. ■ Número do Passaporte;
  16. ■ Nome do País de Origem;
  17. ● Dia, mês e ano de nascimento;
  18. ● Portador de Necessidades Especiais (PNE)? (0 - Não, 1 - Sim)
  19. ○ Caso seja PNE, deve possuir um código de 10 caracteres
  20. do Laudo médico
  21. ● CEP;
  22. ● Endereço;
  23. ● Aluno? (0 - Aluno, 1 - Professor)
  24. ○ Caso seja aluno:
  25. ■ Número da Matrícula escolar
  26. ○ Caso seja professor:
  27. ■ Número do Programa de Integração Social (PIS)
  28.  
  29. Disciplinas
  30. Uma Disciplina é formada pelas seguintes características:
  31. ● Código da Disciplina
  32. ● Nome da Disciplina;
  33. ● Carga horária (h);
  34. ● Um professor;
  35. ● 10 alunos no máximo;
  36. Escola
  37. Uma escola é formada por:
  38. ● 50 alunos no máximo;
  39. ● 10 professores no máximo;
  40. ● 10 disciplinas no máximo;
  41. Descrição das Funcionalidades de Sistema
  42. O sistema deve a todo momento disponibilizar as seguintes opções:
  43. 1 - Sistema de Pessoas
  44. 2 - Sistema de Disciplinas
  45. 3 - Sair do Sistema
  46. A seguir são descritos cada uma dessas opções:
  47. Sistema de Pessoas
  48. Deve exibir as seguintes opções:
  49. 1 - Cadastrar Pessoa;
  50. 2 - Exibir Dados de uma Pessoa;
  51. 3 - Alterar dados de Pessoa;
  52. 4 - Remover Pessoa;
  53. 5 - Voltar ao Menu Anterior;
  54.  
  55. Sistema de Disciplinas
  56. Deve-se exibir as seguintes opções:
  57. 1 - Cadastrar disciplina
  58. 2 - Alterar professor de uma disciplina
  59. 3 - Adicionar um aluno a uma disciplina
  60. 4 - Remover aluno de uma disciplina
  61. 5 - Exibir dados de uma disciplina
  62. 6 - Voltar ao menu principal
  63. Na opção 1, deve-se receber o seguinte padrão de entrada:
  64. código;nome;carga;PIS
  65.  
  66. */
  67.  
  68. #include <stdio.h>
  69. #include <string.h>
  70.  
  71.  
  72.  
  73. typedef struct Cadastrar
  74. {
  75.     char nome[50];
  76.     char sobrenome[50];
  77.     int nacionalidade;
  78.     int dia;
  79.     int mes;
  80.     int ano;
  81.     int cep;
  82.     int cpf;
  83.     int rg;
  84.     int prog_inte_social;
  85.     int matricula;
  86.     double passaporte;
  87.     char paisOrigem[50];
  88.     char endereco[500];
  89.     int ocupacao;
  90.     char laudo[50];
  91. } Pessoa[5];
  92.  
  93.  
  94. typedef struct disciplina
  95. {
  96.     int codigo;
  97.     char nome[50];
  98.     int carga;
  99.     int prog_inte_social;
  100.     int matricula;
  101. } Disciplina[5];
  102.  
  103. typedef struct escola
  104. {
  105.     int qtdaluno;
  106.     int qtdepssoas;
  107.     int qtdprof;
  108. };
  109. struct escola Escola;
  110.  
  111. void menuDeOpcoes(struct Cadastrar Pessoa[], int *qtdPessoas, int *qtdDisciplinas){
  112.     int opcao, opcao2;
  113.     printf("\n1 - Sistema de Pessoas");
  114.     printf("\n2 - Sistema de Disciplinas");
  115.     printf("\n3 - Sair do Sistema\n");
  116.     scanf("%d",&opcao);
  117.     if(opcao == 1)
  118.     {
  119.         printf("\n1 - Cadastrar Pessoa");
  120.         printf("\n2 - Exibir Dados de uma Pessoa");
  121.         printf("\n3 - Alterar Dados de uma Pessoa");
  122.         printf("\n4 - Remover Pessoa");
  123.         printf("\n5 - Voltar ao Menu Anterior\n");
  124.         scanf("%d",&opcao2);
  125.         switch(opcao2)
  126.         {
  127.         case 1:
  128.             cadastroPessoa(Pessoa, &qtdPessoas);
  129.             break;
  130.         case 2:
  131.             exibirDadosPessoa(Pessoa, &qtdPessoas);
  132.             break;
  133.         case 5:
  134.             VoltaMenu(Pessoa, &qtdPessoas);
  135.         }
  136.     }
  137.     else if(opcao == 2){
  138.             //da erra nessa chamada de funçao, nao sei como resolver
  139.         //menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  140.     }
  141.     else if(opcao == 3){
  142.         printf("\nVoce saiu\n");
  143.     }
  144.  
  145. }
  146.  
  147. void cadastroPessoa(struct Cadastrar Pessoa[], int *qtdPessoas)
  148. {
  149.     int opcao=0, opcao2=0, opcao3=0;
  150.  
  151.     printf("\ndigite o nome: ");
  152.     scanf(" %[^;]s",&Pessoa[*qtdPessoas].nome);
  153.     getchar();
  154.     printf("\ndigite o sobrenome: ");
  155.     scanf(" %[^;]s",&Pessoa[*qtdPessoas].sobrenome);
  156.     getchar();
  157.     printf("informe o pais de origem:\n0 - brasileiro\n1 - estrangeiro\n ");
  158.     scanf(" %d",&opcao);
  159.  
  160.     //fazer um laço para observar se o usuario digitou 1 ou 0
  161.  
  162.     if(opcao == 0)
  163.     {
  164.         printf("\ndigite o cpf: ");
  165.         scanf("%d;",&Pessoa[*qtdPessoas].cpf);
  166.         getchar();
  167.         printf("\ndigite o rg: ");
  168.         scanf("%d;",&Pessoa[*qtdPessoas].rg);
  169.         getchar();
  170.  
  171.     }
  172.     else if(opcao == 1)
  173.     {
  174.         printf("\ninforme o numero do passaporte: ");
  175.         scanf(" % lf;",&Pessoa[*qtdPessoas].passaporte);
  176.         getchar();
  177.         printf("\ninforme o pais de origem ");
  178.         scanf("%[^;]s",&Pessoa[*qtdPessoas].paisOrigem);
  179.         getchar();
  180.  
  181.     }
  182.  
  183. /*
  184.     printf("\ndigite o dia de nascimento: ");
  185.     scanf("%d ;",&Pessoa[*qtdPessoas].dia);
  186.     printf("\ndigite o mes de nascimento: ");
  187.     scanf("%d ;",&Pessoa[*qtdPessoas].mes);
  188.     printf("\ndigite o ano de nascimento: ");
  189.     scanf("%d ;",&Pessoa[*qtdPessoas].ano);
  190. */
  191.     scanf("%d/%d/%d;",&Pessoa[*qtdPessoas].dia,&Pessoa[*qtdPessoas].mes,&Pessoa[*qtdPessoas].ano);
  192.  
  193.  
  194.  
  195.  
  196.     printf("portador de alguma necessidade?\n0 - nao\n1- sim\n");
  197.     scanf(" %d",&opcao2);
  198.  
  199.  
  200.  
  201.     if(opcao2==1)
  202.     {
  203.         printf("\ninforme o laudo:\n ");
  204.         scanf("%[^;]s",&Pessoa[*qtdPessoas].laudo);
  205.         getchar();
  206.  
  207.     }
  208.  
  209.     printf("\ndigite o cep: ");
  210.     scanf("% d;",&Pessoa[*qtdPessoas].cep);
  211.     printf("\ndigite o endereco ");
  212.     scanf("%[^;]s",Pessoa[*qtdPessoas].endereco);
  213.     getchar();
  214.  
  215.  
  216.     printf("favor informar:\n0 - aluno\n1 - professor\n");
  217.     scanf("%d",&opcao3);
  218.  
  219.  
  220.  
  221.     if(opcao3 == 0)
  222.     {
  223.         Pessoa[*qtdPessoas].matricula=19000+(*qtdPessoas+1);
  224.     }
  225.     else if(opcao3 == 1)
  226.     {
  227.         printf("\ninforme o numero pis: ");
  228.         scanf("%d;",&Pessoa[*qtdPessoas].prog_inte_social);
  229.     }
  230.  
  231.  
  232. }
  233.  
  234. void exibirDadosPessoa(struct Cadastrar Pessoa[],int *qtdPessoas)
  235. {
  236.     int opcao=0, var_aux=0, var_aux1=0;
  237.     printf("\nfavor informar a pessoa que procura:\n");
  238.     printf("\n0 - Aluno");
  239.     printf("\n1 - Professor\n");
  240.     scanf("%d",&opcao);
  241.  
  242.     if(opcao == 0)
  243.     {
  244.         printf("\nInforme a matricula do Aluno:");
  245.         scanf("%d",&var_aux);
  246.         for(int i=0; i<qtdPessoas; i++)
  247.         {
  248.             if(var_aux == Pessoa[i].matricula)
  249.             {
  250.                 printf("\nNome: %s",Pessoa[i].nome);
  251.                 printf("\nSobrenome: %s",Pessoa[i].sobrenome);
  252.                 if(Pessoa[i].cpf != NULL || Pessoa[i].rg != NULL)
  253.                 {
  254.                     printf("\nCPF: %d",Pessoa[i].cpf);
  255.                     printf("\nRG: %d",Pessoa[i].rg);
  256.                     //brasileiro, estrangeiro, deficiente
  257.                 }
  258.                 else if(Pessoa[i].paisOrigem != NULL || Pessoa[i].passaporte != 0)
  259.                 {
  260.                     printf("\nPassaporte: %lf",Pessoa[i].passaporte);
  261.                     printf("\nPais de origem: %s",Pessoa[i].paisOrigem);
  262.                 }
  263.                 printf("\nData de nascimento: %d/%d/%d",Pessoa[i].dia,Pessoa[i].mes,Pessoa[i].ano);
  264.                 //nao sei porque isso aqui nao roda
  265.                 /*
  266.                 else if(Pessoa.laudo != NULL){
  267.                     printf("\nLaudo: %s",Pessoa[i].Laudo);
  268.                 }
  269.                 */
  270.                 printf("\nCEP: %d",Pessoa[i].cep);
  271.                 printf("\nEndereco: %s",Pessoa[i].endereco);
  272.                 printf("\nMatricula %d",Pessoa[i].matricula);
  273.  
  274.             }
  275.         }
  276.  
  277.     }
  278.     else if(opcao == 1)
  279.     {
  280.         printf("\nInforme o numero PIS do professor:\n");
  281.         scanf("%d",&var_aux1);
  282.         for(int i=0; i<qtdPessoas; i++)
  283.         {
  284.             if(var_aux1 == Pessoa[i].prog_inte_social)
  285.             {
  286.                 printf("\nNome: %s",Pessoa[i].nome);
  287.                 printf("\nSobrenome: %s",Pessoa[i].sobrenome);
  288.                 if(Pessoa[i].cpf != NULL || Pessoa[i].rg != NULL)
  289.                 {
  290.                     printf("\nCPF: %d",Pessoa[i].cpf);
  291.                     printf("\nRG: %d",Pessoa[i].rg);
  292.                     //brasileiro, estrangeiro, deficiente
  293.                 }
  294.                 else if(Pessoa[i].paisOrigem != NULL || Pessoa[i].passaporte != 0)
  295.                 {
  296.                     printf("\nPassaporte: %lf",Pessoa[i].passaporte);
  297.                     printf("\nPais de origem: %s",Pessoa[i].paisOrigem);
  298.                 }
  299.                 printf("\nData de nascimento: %d/%d/%d",Pessoa[i].dia,Pessoa[i].mes,Pessoa[i].ano);
  300.                 //nao sei porque isso aqui nao roda
  301.                 /*
  302.                 else if(Pessoa.laudo != NULL){
  303.                     printf("\nLaudo: %s",Pessoa[i].Laudo);
  304.                 }
  305.                 */
  306.                 printf("\nCEP: %d",Pessoa[i].cep);
  307.                 printf("\nEndereco: %s",Pessoa[i].endereco);
  308.                 printf("\nNumero PIS: %d",Pessoa[i].prog_inte_social);
  309.             }
  310.         }
  311.  
  312.  
  313.     }
  314.     else
  315.         printf("\nopcao invalida\n");
  316.  
  317. }
  318. void VoltaMenu(struct Cadastrar Pessoa[], int *qtdPessoa){
  319.     //tem que declarar o ponteiro qtdDisciplinas
  320.     //menuDeOpcoes(Pessoa, &qtdPessoa, &qtdDisciplinas);
  321. }
  322. void menuOpcoesDisciplina( struct disciplina Disciplina[], int *qtdDisciplinas){
  323.     int opcao=0;
  324.     printf("\nInforme a opcao desejada:\n");
  325.     printf("\n1 - Cadastrar Disciplina");
  326.     printf("\n2 - Alterar professor de uma disciplina");
  327.     printf("\n3 - Adicionar aluno a uma disciplina");
  328.     printf("\n4 - Remover aluno de uma disciplina");
  329.     printf("\n5 - Exibir dados de uma disciplina");
  330.     printf("\n6 - Voltar ao menu principal\n");
  331.     scanf("%d",&opcao);
  332.     if(opcao == 1)
  333.     {
  334.         cadastrarDisciplina(Disciplina, &qtdDisciplinas);
  335.     }
  336.     else if(opcao == 2)
  337.     {
  338.         alteraProf(Disciplina, &qtdDisciplinas);
  339.     }
  340.     else if(opcao == 3)
  341.     {
  342.         adcAluno(Disciplina, &qtdDisciplinas);
  343.     }
  344.     else if(opcao == 4)
  345.     {
  346.         removAluno(Disciplina, &qtdDisciplinas);
  347.     }
  348.     else if(opcao == 5)
  349.     {
  350.         exibDisciplinas(Disciplina, &qtdDisciplinas);
  351.     }
  352.     else if(opcao == 6)
  353.     {
  354.         menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  355.     }
  356. }
  357.  
  358.  
  359. void cadastrarDisciplina(struct disciplina Disciplina[], int *qtdDisciplinas){
  360.     printf("\nCodigo da disciplina: ");
  361.     scanf("% d;",&Disciplina[*qtdDisciplinas].codigo);
  362.     printf("\nNome da disciplina: ");
  363.     scanf("%[^;]s",&Disciplina[*qtdDisciplinas].nome);
  364.     getchar();
  365.     printf("\nCarga horaria: ");
  366.     scanf("%d;",&Disciplina[*qtdDisciplinas]);
  367.     printf("\nPIS do professor: ");
  368.     scanf("%d",&Disciplina[*qtdDisciplinas].prog_inte_social);
  369.     printf("\nDisciplina cadastrada com sucesso\n");
  370.     printf("\nVoltando ao menu anterior\n");
  371.     menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  372.  
  373. }
  374.  
  375. void alteraProf( struct disciplina Disciplina[], int *qtdDisciplinas){
  376.     printf("\nDigite o codigo da disciplina: ");
  377.     scanf("%d;",&Disciplina[*qtdDisciplinas].codigo);
  378.     printf("\nInforme o codigo PIS do professor: ");
  379.     scanf("%d",&Disciplina[*qtdDisciplinas].prog_inte_social);
  380.     printf("\nDisciplina cadastrada com sucesso\n");
  381.     printf("\nVoltando ao menu anterior\n");
  382.     menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  383. }
  384.  
  385. void adcAluno(struct disciplina Disciplina[], int *qtdDisciplinas){
  386.     int var_aux;
  387.     printf("\nDigite o codigo da disciplina: ");
  388.     scanf("%d;",&Disciplina[*qtdDisciplinas].codigo);
  389.     printf("\nDigite a matricula do aluno: ");
  390.     //scanf("%d",&Disciplina[*qtdDisciplinas].matricula);
  391.     scanf("%d",&var_aux);
  392.     for(int i=0;i<(*qtdDisciplinas);i++){
  393.         if(var_aux == Disciplina[i].matricula){
  394.             Disciplina[i].matricula=var_aux;
  395.         }
  396.     }
  397.     //dar um jeito de exibir que o aluno nao existe
  398.     printf("\nAluno cadastrado com sucesso\n");
  399.     printf("\nVoltando ao menu anterior\n");
  400.     menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  401. }
  402.  
  403.  
  404. void removAluno(struct disciplina Disciplina[], int *qtdDisciplinas){
  405.     int var_aux;
  406.     printf("\nDigite o codigo da disciplina: ");
  407.     scanf("%d;",&Disciplina[*qtdDisciplinas].codigo);
  408.     printf("\nDigite a matricula do aluno: ");
  409.     scanf("%d",&var_aux);
  410.     for(int i=0;i<(*qtdDisciplinas);i++){
  411.         if(var_aux == Disciplina[i].matricula){
  412.             Disciplina[i].matricula = NULL;
  413.             printf("\nAluno removido com sucesso\n");
  414.             printf("\nVoltando ao menu anterior\n");
  415.         }
  416.     }
  417.     printf("\nAluno nao encontrado\n");
  418.     printf("\nVoltando ao menu anterior\n");
  419.     menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  420. }
  421.  
  422. void exibDisciplinas (struct disciplina Disciplina[], struct Cadastrar Pessoa[], int *qtdDisciplinas, int *qtdProf, int *qtdAlun){
  423.     int var_aux;
  424.     printf("\nInforme o codigo da disciplina: ");
  425.     scanf("%d",&var_aux);
  426.     for(int i=0;i<(*qtdDisciplinas);i++){
  427.         if(var_aux == Disciplina[i].codigo){
  428.             printf("\nCodigo da disciplina: %d",Disciplina[i].codigo);
  429.             printf("\nNome da disciplina: %s",Disciplina[i].nome);
  430.             printf("\nNome do professor: %s",Pessoa[i].nome);
  431.             printf("\nMatricula do aluno: %d",Disciplina[i].matricula);
  432.             printf("\nNome do aluno: %s\n",Pessoa[i].nome);
  433.  
  434.         }
  435.     }
  436.     menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
  437. }
  438.  
  439.  
  440. int main()
  441. {
  442.     int *qtdPessoas=0;
  443.     int *qtdDisciplinas=0;
  444.     struct Cadastrar s1[20];
  445.     printf("valor do contador: %d",qtdPessoas);
  446.     menuDeOpcoes(s1, &qtdPessoas, &qtdDisciplinas);
  447.     //cadastroPessoa(s1,&qtdPessoas);
  448. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement