Boa Tarde Pessoal.
Inscrevi-me a meio do curso de Informática , Redes e Multimédia , e tenho um projeto de Introdução à programação que precisava mesmo resolver .
Se puderes ajudar-me agradecia-lhes imenso.
Aqui fica o enunciado :
Simulação de um Parque de Estacionamento
Objetivo
Desenvolver uma aplicação na linguagem Java para registar e manipular a
informação relativa à simulação do funcionamento de um parque de
estacionamento.
Estrutura do parque
O parque foi edificado em dois pisos (rés-do-chão e primeiro piso), e tem capacidade para duzentos veículos (cento e sessenta ligeiros, vinte pesados e vinte motociclos), dispostos da seguinte forma:
- Os ligeiros ocupam o primeiro piso (Piso 1), repartidos por dez filas de dez lugares cada e, ainda, o rés-do-chão (Piso 0) repartidos por seis filas de dez lugares cada;
- Os pesados ocupam o Piso 0 repartidos por duas filas de dez lugares cada;
- Os motociclos, tal como os pesados, ocupam o Piso 0 e encontram-se dispostos por duas filas de dez lugares cada.
Regulamento do parque
De forma a otimizar o funcionamento do parque a sua direção implementou o seguinte sistema:
- Um veículo só pode entrar no parque se existir um lugar vago para a sua categoria;
- Ao entrar são guardados os seguintes os dados: matrícula e hora de entrada;
- O veículo estaciona sempre no primeiro lugar disponível para a sua categoria;
- Ao sair do parque é atualizada a sua hora de saída, calculado o montante a pagar pelo estacionamento e liberto o respetivo espaço de estacionamento que ocupava.
Configuração da simulação
Inicialmente, e antes de se iniciar a simulação, o utilizador necessita de configurar a mesma introduzindo, para tal, os seguintes dados:
- tempo total de simulação: um valor inteiro representativo do tempo em horas;
- hora de início da simulação: um valor no formato hh:mm indicativo da hora a que se inicia a simulação;
- probabilidade de entrada no parque de cada tipo de veículo: um valor pertencente ao intervalo [0,1[, sendo que a soma das três probabilidades deverá ser 1;
- tempo entre chegadas: valor inteiro, em segundos, indicativo do intervalo médio entre chegadas. Cada chegada será calculada segundo uma distribuição exponencial;
- tempo de permanência: valor inteiro, em segundos, indicativo do intervalo médio de estacionamento. Cada estacionamento será calculado segundo uma distribuição uniforme;
- valor a pagar: valor a ser pago pelo estacionamento por cada fração de 15 minutos.
Execução da simulação
Para executar esta simulação irá recorrer-se a uma fila de eventos futuros (fef), cuja função será ordenar por ordem temporal o próximo evento a ocorrer (chegada ou saída).
Se a fila estiver vazia será necessário gerar o tempo da próxima chegada de veículo, caso contrário, dever-se-á tratar o evento que está na frente da fila.
Evento de chegada
O tratamento de um evento de chegada implica criar o veículo que está a chegar e verificar se existe lugar disponível de acordo com o seu tipo. Se existir um lugar disponível então deverá afetar-se o lugar de estacionamento ao veículo e criar um evento de saída para o veículo em questão. Se não existir um lugar disponível deverá contabilizar-se como perdido.
Por fim, é necessário criar um novo evento de chegada.
Evento de saída
O tratamento de um evento de saída implica atualizar a hora de saída do veículo, calcular o montante a pagar por este e libertar o lugar que ocupava, passando o veículo para a lista de estacionamentos (lstEstacionamentos),devendo ser inserido de acordo com o seu tempo de chegada ao parque.
Resultados da simulação
Após a conclusão da simulação os dados da simulação deverão ser apresentados para o ecrã as seguintes informação:
- Dados da configuração;
- Número de veículos de cada categoria que entraram e saíram do parque;
- Número de veículos de cada categoria que foram dados como perdidos por falta de lugares disponíveis no parque;
- Tempo médio de estacionamento;
- A receita obtida.
Estas informações deverão ser guardadas num ficheiro de texto (simulXXX.txt). Já os dados contidos na lista de estacionamentos deverão ser guardados num ficheiro
binário (simulXXX.dat).
Por fim, é gerado um ficheiro html, com o mesmo nome dos anteriores, contendo os dados incluídos nos ficheiros anteriores.
Desenvolvimento
- Identificar os tipos de informação necessários à representação da informação.
- Implementar as funcionalidades descritas no enunciado.
- Implementar o interface entre o utilizador e a aplicação.
Muito Obrigado.
Cumprimentos