Programação com Objectos/Projecto de Programação com Objectos/Enunciado do Projecto de 2017-2018 (época especial)

From Wiki**3

< Programação com Objectos‎ | Projecto de Programação com Objectos
AVISOS - Avaliação em Época Especial

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Programação com Objectos):

  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação:

  • Datas: 2018/07/18 10:00 (entrega do projecto); 2018/07/18 11:00 (teste prático).
  • A não realização da entrega do projecto até à hora limite implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina no ano lectivo actual.
  • O teste prático é presencial e obrigatório. A sua não realização implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina no ano lectivo actual.
  • Não são admitidas justificações para atrasos em entregas de projectos.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação.

ÉPOCA ESPECIAL

Avaliação do Projecto de Época Especial

A avaliação do projecto compreende a avaliação da qualidade e funcionalidade do código produzido.

Haverá um teste prático sobre o projecto entregue.

A data de entrega é 2018/07/18 10:00. O teste prático realiza-se às 11:00 desse dia. Não entregar o projecto até às 10:00 ou faltar ao teste prático (seja qual for a razão), são motivos para reprovação em época especial.

Editor de Texto (projecto de época especial)

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).

Notas de Implementação

Por forma a sistematizar e simplificar o desenvolvimento, pode utilizar a biblioteca po-uilib e estrutura da aplicação bancária.