Estou com dificuldade de modelar as classes pro seguinte projeto:
Uma empresa de transporte está em fase de expansão e necessita de sua ajuda para controlar a venda das passagens e conseqüentemente ter um relatório de valor arrecadado em cada viagem. Atualmente ela possui duas linhas e quatro ônibus. Uma das linhas faz o trajeto entre Campinas e São Paulo com três ônibus e a outra linha faz o trajeto entre Campinas e Ribeirão Preto com apenas um ônibus. Assuma que para o trecho entre Campinas e São Paulo um ônibus leva uma hora de viagem e para o trecho entre Campinas e Ribeirão Preto um ônibus leva quatro horas. As saídas de Campinas ocorrem às 4h30min para São Paulo, às 6h30min para Ribeirão Preto, às 7h00min para São Paulo e às 9h30min para São Paulo novamente. As saídas de Ribeirão Preto ocorrem todos os dias às 12h e as saídas de São Paulo ocorrem às 5h00min, às 6h00mim e às 11h. Elabore um programa que auxilie na inclusão de novas linhas, novos ônibus (nas novas linhas e nas linhas já existentes) e também, faça as funcionalidades listadas abaixo visando a venda de passagens aos passageiros no próprio balcão na rodoviária. As funcionalidades são: Venda de um bilhete; o Nome; o CPF; o Poltrona. Consulta de poltronas disponíveis em determinado ônibus de uma linha; o Listar apenas as poltronas disponíveis; Cancelamento de um bilhete. Deixe também disponível um relatório de ganhos em determinado ônibus de uma linha. Este programa deve rodar sem interface gráfica, apenas no prompt.
Como tudo gira em função do tempo(horários de saída dos ônibus, compra das passagens, inclusão de novas linhas), eu teria que,obrigatoriamente, utilizar Java Date / Time, alg outra(e.g: SimpleDateFormat) ?
Se sim, posso manipular a passagem do tempo para testar o programa?Ex: caso eu queira saber se um determinado ônibus já chegou no seu destino e esvaziou suas poltronas.
Pensei em criar uma classe Onibus com atributos: array de int representando os acentos(ex:0:acento vazio 1:preenchido); uma classe Direcao com atributo array com todas as linhas e outro com um array representando o tempo de saida correspondente ao array das linhas. Frisando que Direção estaria dentro da classe Onibus como atributo(uso de composição)
E uma classe Passagem para venda, que dependeria do horário de compra das passagens e do horário de saída das linhas.
Enfim, estou muito confuso, mesmo tendo achado a apostila da Caelum ótima, na hora que vou juntar todos os conceitos vistos num projeto só, acabo ficando meio perdido. Estou estudando por conta própria e achei uma lista de projetos de uma universidade que estou usando para praticar o que aprendi. Se alguém tiver ideias de como praticar com pequenos projetinhos, ficaria muito grato também.
