Problema 1


Notas


Questão 1

[100% - 20 valores]

O objectivo deste problema é criar um módulo ou um conjunto de módulos que permitam gerir os alunos de uma turma (pode considerar que existem no máximo 50 alunos na turma).  Para cada aluno deve guardar informação sobre o seu nome, o seu número, os nomes das disciplinas a que obteve aprovação e as respectivas notas (pode considerar que um curso não tem mais de 30 disciplinas).  Deve ser possível inserir novos alunos numa turma, retirar alunos (dado o seu número), inserir a nota de um aluno a uma disciplina (deve ser inserido também o nome da disciplina neste ponto), alterar a nota já existente de um aluno a uma disciplina, listar a pauta de uma disciplina e escrever toda a informação para um ficheiro denominado alunos.txt.  Esta informação deve ser lida (caso exista o ficheiro), no início do programa.  Pode considerar que uma disciplina é definida por uma cadeia de caracteres sem espaços, por exemplo POO.

Recomenda-se a criação de classes separadas para as listas necessárias, para a informação sobre um aluno e para a informação sobre uma nota numa disciplina.  Cada aluno deve ter uma lista de notas.  É recomendável a criação de uma classe para representar uma turma.

O programa principal deverá ser definido num ficheiro diferente daqueles em que são definidas as várias classes utilizadas.

A interacção com o utilizador pode ser feita (opcionalmente) através de menus (exemplo 1), ou por uma linha de comando (exemplo 2).

Exemplo 1:

1 - Inserir Aluno
2 - Retirar Aluno
3 - Inserir Nota
4 - Alterar Nota
5 - Listar pauta
6 - Escrever para ficheiro
7 - Sair
opção: 1
Qual número o aluno? 3456
Qual o nome do aluno? Joaquim Ambrósio
1 - Inserir Aluno
2 - Retirar Aluno
3 - Inserir Nota
4 - Alterar Nota
5 - Sair
opção: 3
Qual o número do aluno? 3456
Qual a nota? 17
Qual a disciplina? POO
Exemplo 2:
> aluno 3456 Joaquim Ambrósio
> nota 3456 17 POO
Deve ser indicado ao utilizador (resumidamente) o modo de funcionamento do programa antes de este ser iniciado.  Devem ser feitas todas as verificações consideradas necessárias para manter a coerência dos dados (não pode haver dois alunos com o mesmo número, etc.).

A avaliação do trabalho abordará principalmente a estruturação da solução em classes coerentes, a correcta utilização das classes (nomeadamente das listas) e o funcionamento do trabalho.  É importante que sejam definidos operadores sempre que estes façam sentido.