Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
JOANA SANTOS

Ajuda com projecto

Recommended Posts

JOANA SANTOS

Sei Linguagem C ( e pouco mais),...este ano tenho Prog Centrada em Objectos e nao percebo absolutamente nada de Java

Tenho este projecto para fazer :

Juntamente com este enunciado é fornecido:

• um diagrama de classes em UML que servirá de modelo para a implementação do

problema.

• um esquema de pacotes a incluir no vosso projeto Eclipse. Contém uma classe

arranque no pacote main, e a implementação completa do pacote persistence com as

classes que gerem os dados em ficheiros (e que não devem ser modificadas). O vosso

trabalho é a implementação das classes que compõem o pacote domain. No domain a

classe EmpresaTransporte está parcialmente implementada.

• Um conjunto de ficheiros de texto para validarem os vossos resultados após a

execução da classe Main (ler os comentários desta classe para mais informações).

Serviços a Implementar

Todas as classes do modelo de domínio (Cliente, Viatura, Funcionário, etc.) devem possuir um

conjunto de gets/sets adequados.

A empresa deve poder adicionar novos clientes, adicionar moradas aos mesmos, bem como

encontrar o cliente dado o seu número de identificação (id). Deve poder adicionar novos

gerentes, motoristas e secretariado e poder encontrar cada tipo de funcionário dado o seu id.

Deve‐se poder detectar se existem motoristas disponíveis, ocupar e libertar motoristas

(relativamente a uma dada ordem). O sistema deve poder associar gerentes a motoristas e/ou

secretariado.

Sobre as ordens, deve‐se poder adicionar novas ordens à lista de ordens, verificar se a lista de

ordens está ou não vazia, ir buscar a próxima ordem a executar bem como ir buscar uma

ordem pelo seu id. Deve igualmente iniciar uma ordem e deve terminar uma ordem. A ordem

a ser terminada é identificada pela viatura que lhe está associada, devendo, após o término do

serviço, ficar a viatura e o motorista novamente disponíveis e a ordem em questão ser incluída

nas ordens a arquivar.

Sobre a frota, deve‐se poder adicionar novas viaturas, devolver a viatura dado o seu id, atribuir

um motorista a uma viatura dado o seu id, verificar se existem viaturas disponíveis, bem como

ocupar ou libertar uma viatura dado o seu id. A frota deve poder disponibilizar a lista de

viaturas livres e a lista de viaturas ocupadas.

Existe já algumas indicações sobre os nomes a escolher para vários destes serviços,

nomeadamente aqueles referidos no pacote persistence, bem como na classe

EmpresaTransporte.Questões sobre a implementação

A disponibilização do pacote persistence tem benefícios mas tem igualmente custos. É

necessário estudar este código porque estas classes acedem a alguns métodos das classes do

pacote domain, ou seja, têm de ser implementados por vocês. Igualmente, a classe Main dá‐

vos algumas pistas sobre que métodos usar nas classes catálogo.

Devem usar classes genéricas para armazenar os dados da empresa em tempo de execução.

Consultem os métodos load() e save() nas classes do pacote persistence para saber o que

escolher para representar cada um dos catálogos da empresa.

Os conteúdos dos métodos da classe EmpresaTransporte podem ser alterados (considerem

o código dado como uma sugestão) mas não os seus cabeçalhos.

Existem diversos números de identificação a serem criados automaticamente (funcionários,

clientes, viaturas, etc.). Para facilitar a leitura dos ficheiros, iremos adoptar a seguinte fórmula

de atribuição de números:

• As viaturas começam a ser numeradas a partir de 501

• Os funcionários começam a ser numerados a partir de 1001

• Os clientes começam a ser numerados a partir de 2001

• As moradas começam a ser numeradas a partir de 5001

• As ordens começam a ser numeradas a partir de 10001

Estes valores numéricos foram já usados na produção dos ficheiros de texto que a vossa

implementação deve produzir.

Usem strings para representar telefones.

O que entregar

Todas as classes do pacote domain com a resolução do projeto. Estas classes devem estar

devidamente documentadas com comentários javadoc. Não devem incluir os pacotes main e

persistence.

Devem incluir na documentação todas as pré‐condições que considerarem necessárias.

Exemplo de escrita de uma pré‐condição:

  /**

    * Occupy some free driver

    * pre: isMotoristaDisponivel()

    * @return the selected driver's id

    */

  public int ocuparMotorista() { … }

Se alguem me conseguir explicar o que é pedido...ou a materia em q isto incide para que possa aprofundar e conseguir resolver isto agradecia muitooo

Share this post


Link to post
Share on other sites
KTachyon

Não sei o que queres que te digam. O que é pedido está explicado.

UML: http://en.wikipedia.org/wiki/Unified_Modeling_Language

Esquema de pacotes: http://en.wikipedia.org/wiki/Package_(UML), http://en.wikipedia.org/wiki/Java_package

Depois o enunciado indica uma data de objectos/entidades que precisas de programar (Cliente, Viatura, Funcionário, etc). Para cada uma vais implementar as classes e subclasses necessárias ao teu projecto, com os atributos e métodos que achares necessários para cada uma delas. Por exemplo, o que define um Cliente? Nome, morada, telefone... E que acções é que um cliente pode tomar?

public class Cliente {
    private String nome, morada, telefone;

    public String getNome() { return nome; }
    public String getMorada() { return morada; }
    public String getTelefone() { return telefone; }

    public void setNome(String nome) { this.nome = nome; }
    public void setMorada(String morada { this.morada = morada; }
    public void setTelefone(String telefone) { this.telefone = telefone; }
    
    public void fazAlgumaCoisa() {
        //... 
    }
}


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

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
Sign in to follow this  

×

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.