INF01202 - ALGORITMOS E PROGRAMAÇÃO
TRABALHO PRÁTICO
Objetivo:
Exercitar as habilidades e conceitos de programação desenvolvidos ao longo da
disciplina através da implementação de uma aplicação em Pascal, proposta por um
grupo de 1 ou 2 alunos.
O programa deve ser estruturado de forma a receber um conjunto de entradas
(simultaneamente ou durante o uso do programa), cuja consistência deve ser verificada,
processá-las e fornecer uma ou mais saídas.
ENTRADAS
PROCESSAMENTO
SAÍDAS
Conteúdos: A aplicação desenvolvida deverá demonstrar os seguintes conteúdos:
1. (2 pontos) Habilidade em estruturar programas pela decomposição da tarefa em
subtarefas, utilizando subprogramação para implementá-las.
2. (2 pontos) Documentação de programas (indentação, utilização de nomes de
variáveis, abstração dos procedimentos para obter maior clareza, uso de
comentários no código).
3. (2 ponto) Domínio na utilização de tipos de dados simples e estruturados
(arranjos, conjuntos, registros) e passagem de parâmetros.
4. (1 ponto) Formatação e controle de entrada e saída, com orientação correta ao
usuário.
5. (1 ponto) Utilização de arquivos.
6. (2 pontos) Atendimento aos requisitos do programa.
Aplicação a ser desenvolvida
O trabalho a ser desenvolvido será uma simulação de um dicionário simplificado
modelo WIKIPEDIA rodando apenas localmente. Os usuários podem fazer buscas
sobre as informações, complementá-las, alterá-las ou incluir novos verbetes.
ATENÇÃO: para simplificar, todos os termos e textos serão utilizados sem
acentos.
1. Fazer um menu inicial de opções para o usuário, no formato de uma barra de tarefas
no topo da tela, de acordo com a figura a seguir.
Abrir Buscar Adicionar
Lago
Lagoa
Lagomio
Lagosta
Substantivo masculino
Mamífero roedor semelhante à lebre
Excluir
Cadastrar Relatórios Sair
Barra de
tarefas
Lista de
termos
Janela de
edição
2. Detalhamento das opções
Abrir
a. Solicita o username do usuário.
b. Abre o arquivo CADASTRO.TXT somente para leitura e verifica se o nome é
parte do cadastro através de uma função que retorna verdadeiro se o nome existir
e falso se não existir.
c. Abre o arquivo formatado DIC.DAD para leitura e carrega seu conteúdo para um
arranjo de registros em memória.
d. Mostra o conteúdo do DIC.DAD na janela da Lista de termos, um embaixo do
outro e em ordem alfabética.
e. Mostra as definições associadas ao primeiro termo mostrado na Janela de
Edição. O termo é enfatizado na Lista de Termos. Se o usuário estiver
cadastrado, a janela sempre ficará habilitada para modificação dos textos.
f. O usuário usará a tecla TAB para passar o cursor entre as opções do menu e de
uma janela para a outra.
g. Por default, na barra de tarefa, será enfatizada a opção Buscar, na Lista de
Termos, será enfatizado o primeiro termo. Na janela de edição, quando
habilitada, será colocado o cursor no canto superior esquerdo da janela.
Buscar
a. Abre uma janela de edição onde o usuário entra um termo.
b. Se o termo existir no dicionário, o sistema mostra o termo no topo da janela
Lista de Termos.
c. Se não existir, o sistema coloca o próximo termo (em ordem alfabética) no topo
da lista de termos.
Adicionar
a. Permite ao usuário editar um termo e incluí-lo no dicionário em ordem
alfabética. Só será permitido para usuários cadastrados.
b. O termo será incluído na lista de termos e a Janela de edição será aberta vazia
permitindo ao usuário incluir as definições.
Excluir
a. Marca o termo em destaque como excluído na estrutura de dados.
b. Retira o termo de exibição nas janelas de lista de termos e de edição.
Cadastrar
a. Abre o arquivo CADASTRO.TXT como append, inclui o username do usuário
(já entrado no inicio da interação como sistema) e salva o arquivo. Avisa o
usuário da operação.
b. O usuário somente poderá se habilitar à edição na próxima vez que entrar no
sistema.
Relatórios
Oferece ao usuário a opção de realizar as seguintes estatísticas sobre os dados:
a. Total de palavras cadastradas.
b. Número de termos que iniciam com cada uma das cinco vogais.
c. Quantos substantivos foram cadastrados.
d. O tamanho médio de todas as palavras.
Sair
a. Se o usuário for cadastrado, abre o arquivo DIC.DAD para reescrita e copia
todos os termos da estrutura de dados em memória para o arquivo, exceto
aqueles marcados como deletados.
b. Da mensagem ao usuário de encerramento.
c. Fecha todos os arquivos abertos e encerra o sistema.
Tipo dos registros
Os termos deverão ser salvos como REGISTROS contendo os campos: nome (string
[20]), classe (substantivo, adjetivo, nome próprio, verbo), deletado (campo lógico),
descrição (text).
Produto:
- Programa executável.
- Código documentado (arquivo .pas)
- Instruções de uso: texto explicando como o programa funciona, como a entrada de
dados é informada ao programa, exemplos, etc.
- Dados de teste (opcional): dados usados para testar o programa
Proposta: Dia 21 de Maio - Fazer upload no Moodle, na área associada a Tarefa
da composição do Grupo (duplas ou indivíduos).
Relatório de Andamento: 12 e 14 de Junho –
Apresentação na aula prática do código do trabalho apresentando as funcionalidades
solicitadas para o Menu do usuário ABRIR e BUSCAR, com as respectivas funções de
manipulação de arquivos, que equivale cerca de 50% do trabalho.
Entrega: Ate´ dia 1 de Julho (Domingo),
- Fazer upload no Moodle, na área disponibilizada pela tarefa dos 4 itens:
- Código documentado (arquivo .pas) que tem em seu cabeçalho o nome dos alunos.
- Instruções de uso: texto explicando como o programa funciona, como a entrada de
dados é informada ao programa, exemplos, etc.
- Dados de teste (opcional): dados usados para testar o programa
- O programa será apresentado nos dia 2 e 4 de Julho na aula prática. Somente será
apresentado o programa que foi feito upload no Moodle. Nenhuma alteração será
permitida.
****** O upload será de um único arquivo compactado contendo os 3 itens, cujo
nome será o nome do(s) aluno(s). *****
Avaliação:
- Cada um dos conteúdos do trabalho será avaliado separadamente segundo a pontuação
descrita no item conteúdos acima.
- O programa deve atender todos os requisitos listados abaixo, não deve apresentar erros
de compilação e rodar normalmente, pontos serão deduzidos caso contrário.
- A nota do trabalho prático corresponderá a 50% da nota de laboratório.
- Cópia de programas entre alunos é expressamente proibida. Eventuais cópias resultam
em nota 0 no trabalho para todos alunos envolvidos.
Download

Definição do Trabalho Final