Jump to content
Margas

Horário de Profissional

Recommended Posts

Margas

Boas tardes.

Gostaria de obter uma sugestão para o seguinte problema.

No projecto que estou a realizar, tenho a necessidade de gerir as disponibilidades de um profissional das 09:30 às 18:30.

Considerando slots de 30 minutos, onde vou associar agendamentos de clientes, e os assuntos associados, como poderei criar uma estrutura para responder a esta necessidade?

A minha primeira opção seria um array de objectos com os elementos de cada meia hora, para depois associar ao objecto do profissional.

Agradeço na medida do possível alguma sugestão.

Obrigado.

Share this post


Link to post
Share on other sites
Diutsu

para começar antes de te atirares ao código como um tubarão se atira aos peixes, estabelece toda a interface que vais precisar para aceder à estrutura que vais criar.

por exemplo:

novoHorário

insereActividade

removeActividade

leActividade

etc.

não te esqueças de estabelecer o que recebe e o que devolve cada método

Depois de isto feito, podes pensar em como vais guardar as coisas. Aqui posso falhar, mas ou podes usar um Array, em que colocas os slots todos seguidos, ou vários Arrays ligados, um para cada dia, ou um Mapa dia-hora  -> actividadade


XX SINFO - Semana Informática

Share this post


Link to post
Share on other sites
Margas

Boas.

Obrigado pela resposta!

A minha dificuldade no momento não será a inclusão dos métodos modificadores e selectores, mas antes a contrução da estrutura de dados que possibilite a inclusão dos espaços de tempo de meia em meia hora.

Já tenho as classes de Pessoas e Actividades construídas, contudo imagino que a minha classe Pessoa deverá ter um objecto da classe Periodos.

A classe em questão irá instanciar um objecto, que irei utilizar(através de um array), na classe Pessoa.

O objectivo será ao criar um objecto da classe Pessoa, seja possivel inserir dados no array em questão, como se de uma agenda se tratasse.

Share this post


Link to post
Share on other sites
Diutsu

Segundo que percebi até agora, vais dar a cada Pessoa um array, para servir da agenda. É uma solução, mas eu criava mais uma classe "Agenda", e cada pessoa tinha um objecto dessa classe.

A classe Agenda é que é definida como uma estrutura [1] de Actividades, assim encapsulas o modo como guardas a informação (tornas este aspecto irrelevante quando usas Agenda), criando uma interface propria para a Agenda.

[1] pode ser o tal array que estás a falar, ou qualquer estrutura já referida.

Podes usar ArrayList, Vector ou TreeMap (sendo a key a data)


XX SINFO - Semana Informática

Share this post


Link to post
Share on other sites
Margas

Sim o conceito é mesmo o de uma agenda associada a uma pessoa.

Já identifiquei quais as estruturas utilizáveis, que possivelmente poderão ser as que sugeres.

Sendo que eventualmente estou a pensar correctamente, agora a minha dificuldade é preencher a estrutura de uma forma dinamica fornecendo a hora inicial e a hora final.

Eventualmente um ciclo "for", mas não estou a ver como faço os incrementos de 30 em 30 minutos.

Share this post


Link to post
Share on other sites
Diutsu

queres preencher de forma sequencial, como?

Uma agenda não se preenche de forma sequencial, geralmente colocas apenas uma actividade de cada vez (embora uma actividade possa demorar mais que apenas 30 min).

Por exemplo se a activadade A (duraçaõ 2 horas):

Sabes a hora a que começa, e determinas a hora a que acaba

Num ArrayList: enquanto a hora actual (inicialmente é a hora inicial) for inferior à hora final (incrementos de 30 a 30 min), tens de converter a hora para um indice, e depois guardar nesse indice, a activade A,.

Num Vector, idem

Num TreeMap:  enquanto a hora actual (inicialmente é a hora inicial) for inferior à hora final (incrementos de 30 a 30 min), guardas a actividade A no mapa com a chave data-hora.


XX SINFO - Semana Informática

Share this post


Link to post
Share on other sites
Margas

Obrigado pela paciência!

No meu caso a agenda é formatada de 30 em 30 minutos, e cada espaço terá um registo associado.

Tendo em conta esta especificação, estava a pensar no tal preenchimento automático relativo aos periodos de tempo, e depois só tinha de associar conteúdo no outro campo do TreeMap, que inicialmente ficaria a NULL.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.