Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* 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.
- 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.
- o trabalho esta incompleto e muito provavelmente nao sera completado. segue abaixo oque deveria ser feito:
- Alunos e Professores
- Alunos e professores possuem as seguintes características
- ● Nome;
- ● Sobrenome;
- ● Brasileiro? (0 - Brasileiro, 1 - Estrangeiro)
- ○ Caso seja Brasileiro:
- ■ Número do CPF;
- ■ Número do RG;
- ○ Caso seja estrangeiro:
- ■ Número do Passaporte;
- ■ Nome do País de Origem;
- ● Dia, mês e ano de nascimento;
- ● Portador de Necessidades Especiais (PNE)? (0 - Não, 1 - Sim)
- ○ Caso seja PNE, deve possuir um código de 10 caracteres
- do Laudo médico
- ● CEP;
- ● Endereço;
- ● Aluno? (0 - Aluno, 1 - Professor)
- ○ Caso seja aluno:
- ■ Número da Matrícula escolar
- ○ Caso seja professor:
- ■ Número do Programa de Integração Social (PIS)
- Disciplinas
- Uma Disciplina é formada pelas seguintes características:
- ● Código da Disciplina
- ● Nome da Disciplina;
- ● Carga horária (h);
- ● Um professor;
- ● 10 alunos no máximo;
- Escola
- Uma escola é formada por:
- ● 50 alunos no máximo;
- ● 10 professores no máximo;
- ● 10 disciplinas no máximo;
- Descrição das Funcionalidades de Sistema
- O sistema deve a todo momento disponibilizar as seguintes opções:
- 1 - Sistema de Pessoas
- 2 - Sistema de Disciplinas
- 3 - Sair do Sistema
- A seguir são descritos cada uma dessas opções:
- Sistema de Pessoas
- Deve exibir as seguintes opções:
- 1 - Cadastrar Pessoa;
- 2 - Exibir Dados de uma Pessoa;
- 3 - Alterar dados de Pessoa;
- 4 - Remover Pessoa;
- 5 - Voltar ao Menu Anterior;
- Sistema de Disciplinas
- Deve-se exibir as seguintes opções:
- 1 - Cadastrar disciplina
- 2 - Alterar professor de uma disciplina
- 3 - Adicionar um aluno a uma disciplina
- 4 - Remover aluno de uma disciplina
- 5 - Exibir dados de uma disciplina
- 6 - Voltar ao menu principal
- Na opção 1, deve-se receber o seguinte padrão de entrada:
- código;nome;carga;PIS
- */
- #include <stdio.h>
- #include <string.h>
- typedef struct Cadastrar
- {
- char nome[50];
- char sobrenome[50];
- int nacionalidade;
- int dia;
- int mes;
- int ano;
- int cep;
- int cpf;
- int rg;
- int prog_inte_social;
- int matricula;
- double passaporte;
- char paisOrigem[50];
- char endereco[500];
- int ocupacao;
- char laudo[50];
- } Pessoa[5];
- typedef struct disciplina
- {
- int codigo;
- char nome[50];
- int carga;
- int prog_inte_social;
- int matricula;
- } Disciplina[5];
- typedef struct escola
- {
- int qtdaluno;
- int qtdepssoas;
- int qtdprof;
- };
- struct escola Escola;
- void menuDeOpcoes(struct Cadastrar Pessoa[], int *qtdPessoas, int *qtdDisciplinas){
- int opcao, opcao2;
- printf("\n1 - Sistema de Pessoas");
- printf("\n2 - Sistema de Disciplinas");
- printf("\n3 - Sair do Sistema\n");
- scanf("%d",&opcao);
- if(opcao == 1)
- {
- printf("\n1 - Cadastrar Pessoa");
- printf("\n2 - Exibir Dados de uma Pessoa");
- printf("\n3 - Alterar Dados de uma Pessoa");
- printf("\n4 - Remover Pessoa");
- printf("\n5 - Voltar ao Menu Anterior\n");
- scanf("%d",&opcao2);
- switch(opcao2)
- {
- case 1:
- cadastroPessoa(Pessoa, &qtdPessoas);
- break;
- case 2:
- exibirDadosPessoa(Pessoa, &qtdPessoas);
- break;
- case 5:
- VoltaMenu(Pessoa, &qtdPessoas);
- }
- }
- else if(opcao == 2){
- //da erra nessa chamada de funçao, nao sei como resolver
- //menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- else if(opcao == 3){
- printf("\nVoce saiu\n");
- }
- }
- void cadastroPessoa(struct Cadastrar Pessoa[], int *qtdPessoas)
- {
- int opcao=0, opcao2=0, opcao3=0;
- printf("\ndigite o nome: ");
- scanf(" %[^;]s",&Pessoa[*qtdPessoas].nome);
- getchar();
- printf("\ndigite o sobrenome: ");
- scanf(" %[^;]s",&Pessoa[*qtdPessoas].sobrenome);
- getchar();
- printf("informe o pais de origem:\n0 - brasileiro\n1 - estrangeiro\n ");
- scanf(" %d",&opcao);
- //fazer um laço para observar se o usuario digitou 1 ou 0
- if(opcao == 0)
- {
- printf("\ndigite o cpf: ");
- scanf("%d;",&Pessoa[*qtdPessoas].cpf);
- getchar();
- printf("\ndigite o rg: ");
- scanf("%d;",&Pessoa[*qtdPessoas].rg);
- getchar();
- }
- else if(opcao == 1)
- {
- printf("\ninforme o numero do passaporte: ");
- scanf(" % lf;",&Pessoa[*qtdPessoas].passaporte);
- getchar();
- printf("\ninforme o pais de origem ");
- scanf("%[^;]s",&Pessoa[*qtdPessoas].paisOrigem);
- getchar();
- }
- /*
- printf("\ndigite o dia de nascimento: ");
- scanf("%d ;",&Pessoa[*qtdPessoas].dia);
- printf("\ndigite o mes de nascimento: ");
- scanf("%d ;",&Pessoa[*qtdPessoas].mes);
- printf("\ndigite o ano de nascimento: ");
- scanf("%d ;",&Pessoa[*qtdPessoas].ano);
- */
- scanf("%d/%d/%d;",&Pessoa[*qtdPessoas].dia,&Pessoa[*qtdPessoas].mes,&Pessoa[*qtdPessoas].ano);
- printf("portador de alguma necessidade?\n0 - nao\n1- sim\n");
- scanf(" %d",&opcao2);
- if(opcao2==1)
- {
- printf("\ninforme o laudo:\n ");
- scanf("%[^;]s",&Pessoa[*qtdPessoas].laudo);
- getchar();
- }
- printf("\ndigite o cep: ");
- scanf("% d;",&Pessoa[*qtdPessoas].cep);
- printf("\ndigite o endereco ");
- scanf("%[^;]s",Pessoa[*qtdPessoas].endereco);
- getchar();
- printf("favor informar:\n0 - aluno\n1 - professor\n");
- scanf("%d",&opcao3);
- if(opcao3 == 0)
- {
- Pessoa[*qtdPessoas].matricula=19000+(*qtdPessoas+1);
- }
- else if(opcao3 == 1)
- {
- printf("\ninforme o numero pis: ");
- scanf("%d;",&Pessoa[*qtdPessoas].prog_inte_social);
- }
- }
- void exibirDadosPessoa(struct Cadastrar Pessoa[],int *qtdPessoas)
- {
- int opcao=0, var_aux=0, var_aux1=0;
- printf("\nfavor informar a pessoa que procura:\n");
- printf("\n0 - Aluno");
- printf("\n1 - Professor\n");
- scanf("%d",&opcao);
- if(opcao == 0)
- {
- printf("\nInforme a matricula do Aluno:");
- scanf("%d",&var_aux);
- for(int i=0; i<qtdPessoas; i++)
- {
- if(var_aux == Pessoa[i].matricula)
- {
- printf("\nNome: %s",Pessoa[i].nome);
- printf("\nSobrenome: %s",Pessoa[i].sobrenome);
- if(Pessoa[i].cpf != NULL || Pessoa[i].rg != NULL)
- {
- printf("\nCPF: %d",Pessoa[i].cpf);
- printf("\nRG: %d",Pessoa[i].rg);
- //brasileiro, estrangeiro, deficiente
- }
- else if(Pessoa[i].paisOrigem != NULL || Pessoa[i].passaporte != 0)
- {
- printf("\nPassaporte: %lf",Pessoa[i].passaporte);
- printf("\nPais de origem: %s",Pessoa[i].paisOrigem);
- }
- printf("\nData de nascimento: %d/%d/%d",Pessoa[i].dia,Pessoa[i].mes,Pessoa[i].ano);
- //nao sei porque isso aqui nao roda
- /*
- else if(Pessoa.laudo != NULL){
- printf("\nLaudo: %s",Pessoa[i].Laudo);
- }
- */
- printf("\nCEP: %d",Pessoa[i].cep);
- printf("\nEndereco: %s",Pessoa[i].endereco);
- printf("\nMatricula %d",Pessoa[i].matricula);
- }
- }
- }
- else if(opcao == 1)
- {
- printf("\nInforme o numero PIS do professor:\n");
- scanf("%d",&var_aux1);
- for(int i=0; i<qtdPessoas; i++)
- {
- if(var_aux1 == Pessoa[i].prog_inte_social)
- {
- printf("\nNome: %s",Pessoa[i].nome);
- printf("\nSobrenome: %s",Pessoa[i].sobrenome);
- if(Pessoa[i].cpf != NULL || Pessoa[i].rg != NULL)
- {
- printf("\nCPF: %d",Pessoa[i].cpf);
- printf("\nRG: %d",Pessoa[i].rg);
- //brasileiro, estrangeiro, deficiente
- }
- else if(Pessoa[i].paisOrigem != NULL || Pessoa[i].passaporte != 0)
- {
- printf("\nPassaporte: %lf",Pessoa[i].passaporte);
- printf("\nPais de origem: %s",Pessoa[i].paisOrigem);
- }
- printf("\nData de nascimento: %d/%d/%d",Pessoa[i].dia,Pessoa[i].mes,Pessoa[i].ano);
- //nao sei porque isso aqui nao roda
- /*
- else if(Pessoa.laudo != NULL){
- printf("\nLaudo: %s",Pessoa[i].Laudo);
- }
- */
- printf("\nCEP: %d",Pessoa[i].cep);
- printf("\nEndereco: %s",Pessoa[i].endereco);
- printf("\nNumero PIS: %d",Pessoa[i].prog_inte_social);
- }
- }
- }
- else
- printf("\nopcao invalida\n");
- }
- void VoltaMenu(struct Cadastrar Pessoa[], int *qtdPessoa){
- //tem que declarar o ponteiro qtdDisciplinas
- //menuDeOpcoes(Pessoa, &qtdPessoa, &qtdDisciplinas);
- }
- void menuOpcoesDisciplina( struct disciplina Disciplina[], int *qtdDisciplinas){
- int opcao=0;
- printf("\nInforme a opcao desejada:\n");
- printf("\n1 - Cadastrar Disciplina");
- printf("\n2 - Alterar professor de uma disciplina");
- printf("\n3 - Adicionar aluno a uma disciplina");
- printf("\n4 - Remover aluno de uma disciplina");
- printf("\n5 - Exibir dados de uma disciplina");
- printf("\n6 - Voltar ao menu principal\n");
- scanf("%d",&opcao);
- if(opcao == 1)
- {
- cadastrarDisciplina(Disciplina, &qtdDisciplinas);
- }
- else if(opcao == 2)
- {
- alteraProf(Disciplina, &qtdDisciplinas);
- }
- else if(opcao == 3)
- {
- adcAluno(Disciplina, &qtdDisciplinas);
- }
- else if(opcao == 4)
- {
- removAluno(Disciplina, &qtdDisciplinas);
- }
- else if(opcao == 5)
- {
- exibDisciplinas(Disciplina, &qtdDisciplinas);
- }
- else if(opcao == 6)
- {
- menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- }
- void cadastrarDisciplina(struct disciplina Disciplina[], int *qtdDisciplinas){
- printf("\nCodigo da disciplina: ");
- scanf("% d;",&Disciplina[*qtdDisciplinas].codigo);
- printf("\nNome da disciplina: ");
- scanf("%[^;]s",&Disciplina[*qtdDisciplinas].nome);
- getchar();
- printf("\nCarga horaria: ");
- scanf("%d;",&Disciplina[*qtdDisciplinas]);
- printf("\nPIS do professor: ");
- scanf("%d",&Disciplina[*qtdDisciplinas].prog_inte_social);
- printf("\nDisciplina cadastrada com sucesso\n");
- printf("\nVoltando ao menu anterior\n");
- menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- void alteraProf( struct disciplina Disciplina[], int *qtdDisciplinas){
- printf("\nDigite o codigo da disciplina: ");
- scanf("%d;",&Disciplina[*qtdDisciplinas].codigo);
- printf("\nInforme o codigo PIS do professor: ");
- scanf("%d",&Disciplina[*qtdDisciplinas].prog_inte_social);
- printf("\nDisciplina cadastrada com sucesso\n");
- printf("\nVoltando ao menu anterior\n");
- menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- void adcAluno(struct disciplina Disciplina[], int *qtdDisciplinas){
- int var_aux;
- printf("\nDigite o codigo da disciplina: ");
- scanf("%d;",&Disciplina[*qtdDisciplinas].codigo);
- printf("\nDigite a matricula do aluno: ");
- //scanf("%d",&Disciplina[*qtdDisciplinas].matricula);
- scanf("%d",&var_aux);
- for(int i=0;i<(*qtdDisciplinas);i++){
- if(var_aux == Disciplina[i].matricula){
- Disciplina[i].matricula=var_aux;
- }
- }
- //dar um jeito de exibir que o aluno nao existe
- printf("\nAluno cadastrado com sucesso\n");
- printf("\nVoltando ao menu anterior\n");
- menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- void removAluno(struct disciplina Disciplina[], int *qtdDisciplinas){
- int var_aux;
- printf("\nDigite o codigo da disciplina: ");
- scanf("%d;",&Disciplina[*qtdDisciplinas].codigo);
- printf("\nDigite a matricula do aluno: ");
- scanf("%d",&var_aux);
- for(int i=0;i<(*qtdDisciplinas);i++){
- if(var_aux == Disciplina[i].matricula){
- Disciplina[i].matricula = NULL;
- printf("\nAluno removido com sucesso\n");
- printf("\nVoltando ao menu anterior\n");
- }
- }
- printf("\nAluno nao encontrado\n");
- printf("\nVoltando ao menu anterior\n");
- menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- void exibDisciplinas (struct disciplina Disciplina[], struct Cadastrar Pessoa[], int *qtdDisciplinas, int *qtdProf, int *qtdAlun){
- int var_aux;
- printf("\nInforme o codigo da disciplina: ");
- scanf("%d",&var_aux);
- for(int i=0;i<(*qtdDisciplinas);i++){
- if(var_aux == Disciplina[i].codigo){
- printf("\nCodigo da disciplina: %d",Disciplina[i].codigo);
- printf("\nNome da disciplina: %s",Disciplina[i].nome);
- printf("\nNome do professor: %s",Pessoa[i].nome);
- printf("\nMatricula do aluno: %d",Disciplina[i].matricula);
- printf("\nNome do aluno: %s\n",Pessoa[i].nome);
- }
- }
- menuOpcoesDisciplina(Disciplina, &qtdDisciplinas);
- }
- int main()
- {
- int *qtdPessoas=0;
- int *qtdDisciplinas=0;
- struct Cadastrar s1[20];
- printf("valor do contador: %d",qtdPessoas);
- menuDeOpcoes(s1, &qtdPessoas, &qtdDisciplinas);
- //cadastroPessoa(s1,&qtdPessoas);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement