Ficha Nº4
Exercício Nº3
2008.03.31

Média dos Alunos


Cada aluno de uma licenciatura em Ciências da Computação pode ter notas correspondentes a 10 disciplinas feitas durante o ano lectivo (caso não tenha sido avaliado positivamente a uma disciplina não terá essa nota).

(a)Declare as estruturas de dados (o modelo) necessárias para suportar o sistema de informação: um aluno tem um número (inteiro sequencial a partir de 1), um nome (string) e uma lista de notas (reais). Pense na hipótese de encarar o número do aluno como um código alfanumérico (para permitir números em qualquer escala, ou mesmo o uso de letras) e identifique as alterações daí decorrentes.

(b)Inicialize a estrutura de dados: na declaração e/ou numa função de inicialização que é chamada no início da função main().

(c)Crie as funções normais de manipulação de uma pequena base de dados:

  1. Inserir - de modo a manter a informação por ordem alfabética de nome. Numa 1ª versão, utilize o algoritmo por trocas directas e, numa 2ª versão, use a inserção ordenada;
  2. Remover - utilize a pesquisa sequencial ordenada para encontrar o registo a remover;
  3. Consultar - utilize a pesquisa dicotómica para encontrar o registo a consultar;
  4. Listar - liste todos os alunos armazenados, por ordem alfabética.

(d)Especifique uma função em C para calcular a média de cada aluno (faça uma função que dada a estrutura de dados principal e o identificador do aluno, produz como resultado a sua média); note que disciplinas não avaliadas não contam para a média (diferente de obter a classificação 0 numa disciplina).

(e)Calcule a média geral da turma.

(f)Calcule a média da turma em cada disciplina.

(g)Calcule a percentagem de faltas (ausência de nota).