Época Especial

6 Julho 2015, 17:09 João Carlos Serrenho Dias Pereira

Alunos que tenham direito a época especial podem encontrar mais informação sobre as modalidades e datas de avaliação na secção [Método de Avaliação].

De acordo com a opção 1 indicada no método de avaliação, alunos que já realizaram o projecto em época normal não o podem realizar em época especial.

Recorda-se que a avaliação em época especial requer inscrições adicionais na secretaria de graduação.

PROJECTO DE ÉPOCA ESPECIAL: "EDITOR DE TEXTO" 

Os alunos que tenham que realizar o projecto de época especial devem considerar o seguinte enunciado:

Um processador de texto cria e edita documentos de texto.

Cada documento tem informação sobre o utilizador que o criou (nome), data da criação, e data e autor da última alteração. O documento guarda ainda os elementos que o compõem e que definem a sua estrutura interna (ver a seguir).

Um documento de texto é constituído por elementos de texto que podem ser de vários tipos. Cada elemento de texto tem um identificador único (um inteiro) e, dependendo do seu tipo, pode ter vários atributos e estruturas adicionais.

O elemento de texto mais simples é a frase. Cada frase contém palavras, sendo possível apresentar o texto na saída e contabilizar o seu comprimento, tanto em termos de caracteres, como em termos de palavras.

As frases podem ser agrupadas em parágrafos, que mantêm a funcionalidade básica da frase. Os parágrafos podem ser agrupados em secções. As secções podem ser agrupadas em capítulos. Secções e capítulos, além de manterem a interface de consulta ao comprimento do texto que contêm, possuem ainda como atributo um título. Os títulos também contribuem para a contabilização dos elementos que o contêm.

Os capítulos podem conter secções ou, simplesmente, parágrafos. As secções podem conter, além de parágrafos, outras secções (subsecções).

Além dos atributos e interfaces descritos, as seguintes operações estão definidas:

  • Para o editor de texto: “novo” (criar um documento), “abrir” (abrir um documento), “guardar” (guardar um documento).
  • Para um documento: “mostrar” (apresentação do conteúdo), “adicionar capítulo”, “obter capítulo”, “apagar elemento de texto”;
  • Para um capítulo: “mostrar”, “adicionar secção” e “obter secção”;
  • Para uma secção: “mostrar secção”, “adicionar subsecção”, “obter elemento de texto”, “adicionar parágrafo”, “apagar elemento de texto”;
  • Para um parágrafo: “mostrar”, “adicionar frase”, “obter frase” e “remover frase”;

Considerando a descrição acima, desenhe o diagrama de classes correspondente, assim como a interface necessária para permitir a realização das operações descritas.

Implemente em Java o modelo acima e construa uma aplicação que ilustre a definição e uso do editor de texto (classe App com método main que deve exemplificar um caso de utilização do editor de texto, devendo por isso incluir a criação de um documento com vários elementos de texto e a utilização das várias funcionalidades).

A avaliação do projecto compreende a avaliação da qualidade do código produzido. Haverá uma discussão presencial em lugar do teste prático.

A data de entrega é 2015/07/14 12:00 (“meio-dia”). A discussão, em substituição do teste prático, realiza-se a partir das 14:00 desse dia. Não entregar o projecto até às 12:00 ou faltar à discussão (seja qual for a razão), são motivos para reprovação.


Os alunos que necessitem de realizar o projeto de época especial  devem contactar o professor responsável pela disciplina.