- Introdução ao problema
A figura abaixo representa cidades de uma região do interior do estado.(São 7 cidades de A a G, sendo que sempre começa de A e termina em G, possuindo 4 rotas que são: A>B>F>G; A>D>E>G; A>B>C>D>E>G; A>D>C>B>F>G)
Senhor Apgaua é um agricultor que planta morangos e faz suas próprias entregas com sua caminhonete pelas cidades mais próximas. O mapa acima mostra as cidades e suas ligações com cidades vizinhas.
De uns tempos para cá Sr. Apgaua tem percebido que esta perdendo muito tempo com suas entregas, pois tem que praticamente se deslocar por todas as cidades para abastecê-las com seus morangos. Ela já quebrou a cabeça por dias no Google Maps tentando aperfeiçoar a sua rota, porém nada feito.
Ai que você entra! Você deve ajudar o Sr. Apgaua construindo um programa em Java que vai auxiliá-lo a tomar a melhor rota.
Mais um detalhe importante: Sr. Apgaua mora na cidade A e sempre sai cedinho de casa para fazer suas entregas. A ultima cidade a ser abastecida sempre será a cidade G. - O sistema
O sistema deve obrigatoriamente utilizar as cidades mostradas na imagem do mapa apresentado no inicio desse documento, respeitando sempre a ordem e quais os vizinhos de cada cidade.
O sistema deve ler as informações de todas as cidades: nome, número de habitantes, nome do gestor atual e quais cidades são vizinhas e qual a distância (em km) para essas cidades.
O sistema deve listar todas as cidades cadastradas e seus respectivos dados.
O sistema deve permitir a busca de uma determinada cidade no vetor de cidades e mostrar os dados obtidos como resultado da busca.
Utilize o método random para gerar as distâncias entre as cidades. O método deve receber como parâmetro no máximo o valor 30 e sempre gerar valores acima de 5. Toda vez que uma distancia entres as cidades for cadastrada ela deverá utilizar esse método aleatório.
O sistema deve mostrar o trajeto mais curto da cidade A até a cidade G, considerando que deve passar por todas as cidades. A saída dos dados deve ser mostrada de acordo com o exemplo abaixo. Supondo que o trajeto mais curto seja A, D, E, G:
A > D > E > G
Um menu de opções deve ser criado contendo todas as funcionalidades implementadas no sistema. O menu deve sempre ser exibido a cada nova iteração.
Obs: Uso dos princípios básicos da orientação a objetos;