Ir para conteúdo
Fórum Script Brasil
  • 0

struct como printar uma matriz de string


Igor Vargas

Pergunta

Eai galera estou com uma duvida na seguinte questão.Preciso salvar os dados de uma disciplina dentro de certas posiçoes da matriz no caso é a funcao void consulta,  mas na hora de printar a matriz não esta funcionando. Abaixo tem uma imagem de como deve ficar. Coloquei só as função.

 

int cont;

void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct grade g_Materias[4][5]) {
  int dis, x, y, guarda[5], cont = 0, num;
  char resp;
  int volta = 1;
  printf("\n\n");
  printf("--------------------------------------\n");
  printf("---Voce selecionou adicionar aluno.---\n");
  printf("--------------------------------------\n");
  printf("    Lista de Disciplinas\n");
  printf("    Codigo    Nome\n\n");
  for (x = 0; x < 5; x++) {
    printf("    %d     %s \n", add_Dis[x].codigo, add_Dis[x].nome);
  }
  printf("\n");
  printf("    Horas    Horario\n\n");
  for (x = 0; x < 5; x++) {
    printf("    %d     %s\n", add_Dis[x].c_Horaria, add_Dis[x].h_Semanal);
  }
  printf("\n");
  do {
    x = 0;
    printf("Digite seu nome:");
    fflush(stdin); //Funcão de Cadastro do aluno
    gets(al[cont].nome);
    printf("Digite seu Sobrenome:");
    gets(al[cont].sobrenome);
    strcat(al[cont].nome, al[cont].sobrenome);
    printf("Digite sua Matricula:");
    scanf("%d", & al[cont].matricula);
    printf("Digite seu e-mail:");
    fflush(stdin);
    gets(al[cont].email);
    printf("Digite em quantas materias deseja se matricular:");
    scanf("%d", & num);
    cont++;
    do {

      printf("Digite o codigo das diciplinas que voce deseja se matricular\n");
      for (y = 0; y < num; y++) {
        scanf("%d", & al[y].l_Disciplinas);

      }
      for (x = 0; x < num; x++) {
        if (al[x].l_Disciplinas == 122)
        //Adiciona as disciplinas para as posiçoes
        //da matriz
        {
          strcpy(g_Materias[0][0].grade_C, "Algo");
          strcpy(g_Materias[1][1].grade_C, "Algo");
        } else if (al[x].l_Disciplinas == 127) {
          strcpy(g_Materias[2][1].grade_C, "Estr");
          strcpy(g_Materias[4][2].grade_C, "Estr");
        } else if (al[x].l_Disciplinas == 132) {
          strcpy(g_Materias[2][1].grade_C, "Sist");
          strcpy(g_Materias[1][3].grade_C, "Sist");
        } else if (al[x].l_Disciplinas == 143) {
          strcpy(g_Materias[1][4].grade_C, "Padr");
        } else if (al[x].l_Disciplinas == 143) {
          strcpy(g_Materias[1][2].grade_C, "Banc");
          strcpy(g_Materias[1][4].grade_C, "Banc");
        } else if (al[x].l_Disciplinas == 127 && al[x].l_Disciplinas == 132) {
          volta = 0;
          printf("Voce Não pode se inscrever em duas disciplas de mesmo horario\n");
        } else if (al[x].l_Disciplinas == 135 && al[x].l_Disciplinas == 143) {
          volta = 0;
          printf("Voce Não pode se inscrever em duas disciplas de mesmo horario\n");
        }

      }
    } while (volta == 0);

    printf("Deseja Cadastrar outro aluno? s/n:");
    fflush(stdin);
    scanf("%c", & resp);

  } while (x = !'n');

}

void consulta(struct registro al_C[3], struct grade grade_M[4][5]) {
  int x, escolhe, a, b;
  char nome[20];
  char salva[3];
  int cont_L = 0;
  int teste[3];
  char resp;
  int matricula_N;
  printf("\n\n");
  printf("--------------------------------------\n");
  printf("---Voce selecionou Consultar aluno.---\n");
  printf("--------------------------------------\n");
  printf("1.Pesquisa por Nome\n");
  printf("2.Pesquisa por Matricula\n");
  scanf("%d", & escolhe);
  do {
    if (escolhe == 1) {
      printf("Digite o nome do aluno:");
      fflush(stdin);
      gets(nome);
      for (x = 0; x < 4; x++) {
        if (al_C[x - 2].nome == ' ') {
          //copia as 3 primeiras letras para dentro do vetor salva
          strcpy(salva, al_C[x - 2].nome);
          strcpy(teste, salva);

        }
        if (strcmp(al_C[x].nome, nome) == 0) {
          //compara os nomes ou compara a 3 letras dos dois nome se for igual ele printa a grade
          for (a = 0; a < 4; a++) {
            for (b = 0; b < 5; b++) {
              printf("%s", grade_M[a][b].grade_C);
            }
          }

        }

      }
    } else if (escolhe == 2) {
      printf("Digite a Matricula do aluno:");
      fflush(stdin);
      scanf("%d", & matricula_N);
      for (x = 0; x < 4; x++) {
        if (al_C[x].matricula == matricula_N);
        //compara as duas matricular se são iguais se for ele printa a grade do aluno
        {
          for (a = 0; a < 4; a++) {
            for (b = 0; b < 5; b++) {
              printf("%s", grade_M[a][b].grade_C);
            }
            printf("\n");
          }

        }

      }
    }

    printf("Deseja consultar outro aluno? S/N");
    fflush(stdin);
    scanf("%c", & resp);
  } while (resp != 's');

}

 

trabalhooo.jpg

Editado por Igor Vargas
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...