Estudante

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1463 palavras )
  • Download(s) : 0
  • Publicado : 6 de março de 2013
Ler documento completo
Amostra do texto
Algoritmos e Estruturas de Dados II Trabalho Prático 1
Entrega: 09/09/07 Devolução: 23/09/07 Trabalho individual
A maioria dos professores do DCC se sente sobrecarregada com encargos e reuniões e acaba por não conseguir cumprir todos os seus compromissos. Tendo em vista o aumento esperado dos encargos didáticos no próximo ano, devido ao programa REUNI, o Departamento resolveu desenvolver umsistema automatizado de gerenciamento de tempo, e, para tanto, contrata você para fazê-lo. A especificação do sistema segue abaixo. Tipos Abstrato de Dados Você deve implementar três tipos abstratos de dados, definidos a seguir: 1. Compromisso A agenda de um professor pode ter vários tipos de compromissos, definidos a partir de um identificador numérico de tipo bem como informações adicionaisassociadas. O sistema a ser desenvolvido deve suportar 5 tipos de compromissos: • AULA: aulas para turmas de graduação, pós-graduação ou especialização. Este compromisso tem associado as seguintes informações: data, hora, duração (em minutos) e nome da disciplina ministrada. • ORIENTAÇÃO: orientação de alunos. Este compromisso possui uma data, hora, duração (em minutos) e nome do aluno orientado. •REUNIÃO: reuniões do departamento. Inclui data, hora, duração (em minutos) e nome da reunião (ex: COLEGIADO DA GRADUAÇÃO ou COPEQ) • EVENTO: participação em eventos técnicos como congressos e conferências. Possui data, hora, duração (em dias), nome do evento. Você pode assumir que um evento começa as 0hs do dia inicial e terminam as 24hs do último dia. • COMPROMISSO PARTICULAR: qualquer compromissoparticular, que possui data , hora, duração (em minutos) e razão (ex: médico). Você pode assumir que nome de disciplina, nome de aluno, nome de reunião, nome de evento e razão de compromisso particular são cadeias de caracteres, todas com um tamanho máximo M = 100. Cada compromisso possui também um identificador numérico único, que servirá para realização de alterações após a criação do mesmo. Cada tipo de compromisso tem um grau de prioridade que, por default, deve ser: AULA 2 EVENTO ORIENTAÇÃO 1 REUNIÃO 4 COMPROMISSO PARTICULAR 2

3

Um professor deve poder alterar (aumentar ou diminuir) o grau de prioridade de qualquer compromisso. Os graus de prioridade deverão ser utilizados para definir quais compromissos serão cumpridos e quais deverão ser cancelados. Se dois compromissos têmconflito de horário, aquele com a maior prioridade deverá ser cumprido (Vide regras de desempate abaixo). Um professor ainda poderá definir se um dado compromisso pode ser adiado ou não, definindo o campo adiável apropriadamente. Note que AULA e EVENTO não podem ser adiados. Em caso de conflito, se o compromisso com menor prioridade for adiável, ele será adiado. Caso contrário, ele terá que sercancelado (veja descrição abaixo). Neste caso, cada compromisso tem também um campo status associado informando se ele poderá ser cumprido, se ele deverá ser cancelado ou adiado. Em outras palavras, este campo pode assumir um dos código (valores numéricos) “A SER CUMPRIDO”, “ADIADO” ou “CANCELADO”. Um compromisso deve suportar, no mínimo, as seguintes operações: • inicializaCompromisso(tipo, data,hora, duração e nome): inicializa um compromisso com os valores informados. Esta função deve atribuir um identificador numérico único para o compromisso e retorná-lo como resultado. Além disto, no momento de criação, todo compromisso deve poder ser cumprido e não pode ser adiado. Logo, o status de um compromisso recém-criado será sempre “A SER CUMPRIDO”, e o campo adiável deverá ser inicializado comFALSE. • alteraPrioridade(novaPri): altera a prioridade de um compromisso com um novo valor passado como parâmetro. • retornaPrioridade(): retorna a prioridade de um compromisso. • eAdiavel(flag): define se compromisso passado como parâmetro é adiável ou não. O parâmetro flag deve ser TRUE se compromisso é adiável e FALSE caso contrário. • temConflito(compromisso1, compromisso2): esta operação...
tracking img