Programação C/C++
Prof. Márcio Sarroglia Pinho

Exercício com Structs em C

Crie um programa capaz de ler os dados referentes a 5 alunos, armazená-los em um vetor alunos de structs do tipo Aluno.

Caso necessário, utilize o material sobre Struct em C/C++.

Ao final, o programa deverá  imprimir uma lista com o nome e o valor da média das notas dos aluno em ordem crescente de nota.

Atenção: Utilize a ideia de Tipos Abstratos de Dados para executar o acesso aos dados dos alunos. Em nenhuma hipótese, acesse diretamente os atributos. Se necessário, crie novos métodos de acesso.

typedef struct Aluno{
       // Atributos/Campos
        char nome[10];
        int P1, P2; // notas no aluno;

       // Funções de Acesso/Métodos
        void setNome(char *Nome);
        void setP1(int P1);
        void setP2(int P2);
        void imprimeAluno(); // imprime os dados de 1 aluno
        void leDadosAluno(); // le os dados de 1 aluno do teclado
        void getNome(char *Nome);
        int getP1();
        int getP2();
       
} Aluno;


Aluno alunos[5];

Para ordenar o vetor, modifique o código abaixo, que implementa o algoritmo Bubble Sort para um vetor de inteiros.


    void bubble(int x[100], int n)
  {

      int troca, i, j, aux;
    for (i = n-1; i > 0; i--)
    {
      // o maior valor entre x[0] e x[i] vai para a posição x[i]
      troca = 0;    

      for (j =0 ; j <= i-1; j++)
      {
        if (x[j] > x[j+1])
        {
          aux = x[j];
          x[j] = x[j+1];
          x[j+1] = aux;
          troca = 1;
        }
      }

      if (!troca) break;  // acabou !!
    }
  }