Trabalho Prático III
TPs: Gestor Bibliográfico; Agência Matrimonial.
Objectivos e Organização
Este trabalho prático tem como principais objectivos:
- familiarização com tipos de dados dinâmicos;
- armazenamento de informação em memória secundária;
- incrementar os cuidados na validação dos dados introduzidos pelo utilizador;
- introduzir o aluno ao desenvolvimento de sistemas de informação.
Dos vários enunciados apresentados deverá escolher apenas um que deverá resolver e defender. Se tiver tempo, invista na qualidade melhorando e acrescentando funcionalidades extra à sua aplicação (use a imaginação).
O relatório a elaborar, deve ser claro e sucinto e, além do respectivo enunciado e da descrição do problema, deverá conter exemplos de utilização e o código do programa.
Como foi dito, o relatório terá de ser escrito em LaTeX? sugerindo-se que adoptem o esqueleto proposto que pode ser descarregado a partir da página principal dos trabalhos práticos.
Enunciados
Gestor Bibliográfico
Neste projecto, pretende-se que o aluno desenvolva uma plataforma de suporte a uma base de dados bibliográfica tipo BibTeX? , ou seja, o sistema de informação será composto por uma lista de registos. Um registo destes pode ser de um de vários tipos. Os vários tipos e a respectiva estrutura descrevem-se a seguir.
- article
- artigo publicado em revista; tem os seguintes campos obrigatórios: lista de autores, título, nome da revista e ano; e tem os seguintes campos opcionais: volume, número, páginas, mês e nota descritiva.
- book
- campos obrigatótios: lista de autores ou de editores, título, editora, ano; campos opcionais: volume ou número, série, edição, mês e nota descritiva.
- inbook
- capítulo de um livro; campos obrigatórios: lista de autores ou de editores, título, capítulo ou páginas, editora, ano; campos opcionais: volume ou número, série, edição, mês e nota descritiva.
- inproceedings
- artigo publicado nas actas de uma conferência; campos obrigatórios: lista de autores, título, título das actas, ano; campos opcionais: editor, volume ou número, série, páginas, edição, mês e nota descritiva.
- masterthesis
- tese de mestrado; campos obrigatórios: autor, título, instituição, ano; campos opcionais: mês e nota descritiva.
- misc
- Este tipo deverá ser usado para todas as entradas que não sejam classificáveis num dos outros tipos, por exemplo referências da Internet; campos obrigatórios: nenhum; campos opcionais: lista de autores, título, meio de publicação, mês, ano e nota descritiva.
- phdthesis
- tese de doutoramento; campos obrigatórios: autor, título, instituição, ano; campos opcionais: mês e nota descritiva.
- proceedings
- Actas de Conferência; campos obrigatórios: título e ano; campos opcionais: lista de editores, volume ou número, série, editora, nota descritiva, mês e organização.
- techreport
- Relatório Técnico; campos obrigatórios: lista de autores, título, instituição e ano; campos opcionais: número, mês e nota descritiva.
A aplicação a desenvolver deverá ter os seguintes requisitos:
- No incício de uma sessão, o programa deverá carregar os registos bibliográficos de um ficheiro chamado "BIB.DAT".
- No fim da sessão, os registos deverão ser gravados no mesmo ficheiro para que o estado da plicação seja preservado entre sessões.
- A aplicação deverá disponibilizar as seguintes operações ao utilizador:
- Inserção de um registo.
- Consulta de um registo (por chave de citação)
- Remoção de um registo (por chave de citação), a aplicação deverá mostrar o registo e pedir uma confirmação ao utilizador antes do registo ser removido.
- Listagem (por ordem alfabética de título).
- Listagem (por ordem alfabética de autor), para cada autor apresenta a sua lista de publicações ordenadas alfabeticamente por título (esta operação é um extra).
- Listagem (por ordem alfabética de título em que estes estão agrupados por tipo).
- Gravar, em qualquer momento o utilizador poderá solicitar a gravação dos dados em memória para um determinado ficheiro (diferente do "BIB.DAT").
- Carregar, permite recuperar um estado anterior da aplicação (de um ficheiro qualquer fornecido pelo utilizador mas que obedeça à estrutura estabelecida para o repositório).
- Outras operações que a sua imaginação puder fornecer...
Sugere-se que comece por desenvolver a aplicação nestas etapas:
- Decidir quais as estruturas de dados que irão suportar a informação em memória central (listas ligadas, esquemas de ordenação ...).
- Definição dos tipos de dados
- Implementação das funções para manipulação das estruturas de dados
- Implementação das funções de IO (apresentação e interacção com o utilizador)
Divirta-se ...
Agência Matrimonial
Neste projecto, pretende-se que o aluno desenvolva uma aplicação para gerir uma agência matrimonial/encontros. A aplicação irá tentar usar uma função de semelhança parametrizada pelo utilizador para encontrar uma pessoa ou lista de pessoas compatíveis com um determinado perfil. Para isso, é necessário criar uma base de dados de indívíduos onde ficará registado o perfil de cada indivíduo. O sistema terá dois modos de funcionamento: um para o administrador e outro para o utilizador normal. Mais à frente será descrito em mais pormenor o comportamento de cada um.
Um indivíduo é registado na base de dados com os seguintes campos de informação:
- Código
- o sistema deverá atribuir automaticamente um código a cada indivíduo que se regista; este código serve para identificar univocamente o indivíduo noutras operações.
- Nome
- o indivíduo é registado com o seu nome verdadeiro, opcionalmente poderá adoptar um pseudónimo que será visualizado pelo utilizador em vez do seu nome.
- Sexo
- Masculino ou Feminino. Data de Nascimento: data em formato ANSI: aaaa-mm-dd (a validação é um extra). Lista de Contactos: morada, email, telefone, telemóvel, ... São todos opcionais tendo, no entanto, que ser preenchido pelo menos um (a lista não pode ser vazia).
- Profissão
- lista de actividades que desenvolve profissionalmente.
- Habilitações
- lista de cursos e graus que detem. Lista de Preferências/Hábitos: actividades desportivas, hábitos tabágicos, hábitos culturais (música, leitura, teatro, cinema, ...), hábitos noturnos (pub, disco, ...), hábitos televisivos (informação, filmes, telenovelas, concursos, ...).
- Objectivos
- Procura um Amigo, Encontro, Compromisso com vista a casamento, ...
No acto do registo, o utente deverá ter a possibilidade de indicar, para cada item de informação, se este é visível para todos os utilizadores ou apenas para o administrador.
A aplicação a desenvolver deverá disponibilizar duas interfaces: a do administrador e a do utente.
Na interface do administrador deverão estar disponíveis as seguintes operações:
- Inserção de um indivíduo - o administrador poderá inserir indivíduos, por exemplo, durante as consultas.
- Remoção de um indivíduo (por código) - só o administrador poderá fazer remoções; esta operação deverá mostrar o registo que irá ser apagado e solicitar a confirmação, só então procederá à remoção efectiva.
- Consulta dos dados relativos a um indivíduo (por código) - esta operação deverá mostrar a informação completa de um registo.
- Listagem por ordem alfabética de nome - esta operação deverá apresentar o código, o nome e respectivo pseudónimo (se existir) de todos os indivíduos.
- Listagem por ordem cronológica de nascimento - esta operação deverá apresentar o código, o nome e a idade respectiva de cada indivíduo.
- Procurar perfil compatível - esta operação recebe como argumento o código de um indivíduo e, baseada numa outra função que entra em linha de conta com pesos e desvios dos vários parâmetros, dá uma lista de indivíduos ordenada do mais compatível para o menos compatível.
- Procurar perfil - esta operação é semelhante à anterior só a função que determina a semelhança é definida pelo utilizador; é apresentada uma interface que permite definir domínios de valores e pesos para cada parâmetro.
- Gravar - esta operação grava em ficheiro, "AGENCIA.DAT", o estado actual da Base de Dados.
- Carregar - esta operação permite num determinado momento carregar uma Base de Dados previamente gravado em ficheiro; antes de carregar a nova informação o utilizador deverá ser interrogado sobre se quer limpar a informação que existe em memória ou se quer fazer o "merge" da informação (esta funcionalidade é um extra).
Na interface do utilizador normal estão disponíveis as mesmas operações, à excepção da remoção, só que apenas serão mostrados os dados marcados como não confidenciais.
Se o utilizador da aplicação, administrador ou utente, nada indicar, a aplicação deverá sempre carregar a informação de "AGENCIA.DAT" no início e gravar a informação em "AGENCIA.DAT" antes de terminar.
Não tente fazer nenhum destes enunciados de uma só vez, faça-o incrementalmente e comece por definir as estruturas de dados e a operação de inserção.
Divirta-se
|
|
 Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding TWiki? Send feedback
|
|