2º teste trabalho

6
2º teste/trabalho Conteúdo 1. Introdução...................................................................................................... 1 2. Descrição ....................................................................................................... 1 3. Critérios de avaliação .................................................................................... 1 4. Funcionalidades ............................................................................................ 2 A. Ordenados dos trabalhadores ................................................................. 3 B. Verificação das presenças dos empregados .......................................... 3 C. Largura de vigas de suporte .................................................................... 3 D. Transporte de tijolos ................................................................................ 4 5. Classe ............................................................................................................ 4 6. Interface com o utilizador .............................................................................. 6 1. Introdução Faça o código para resolver o problema indicado de acordo com os requisitos pedidos. Este enunciado está organizado da seguinte forma: Uma descrição geral do problema a resolver Uma descrição dos critérios de avaliação Uma descrição das funcionalidades individuais a resolver Alguma informação sobre a classe principal do problema Alguma informação sobre a interface de interacção com o utilizador 2. Descrição Pretende-se um programa que ajude no processo de gestão de uma empresa de construção. Neste protótipo do projecto a ideia será permitir dar as informações de um projecto de construção e permitir depois fazer vários cálculos auxiliares aos processos do projecto. 3. Critérios de avaliação Na secção seguinte (secção 4) serão descritas diversas funcionalidades, que cobrem os principais conteúdos leccionados e organizadas pelo que se considerou ser uma ordem crescente de dificuldade. A cotação de referência para a finalização

Upload: marco-silva

Post on 08-Nov-2015

217 views

Category:

Documents


2 download

DESCRIPTION

teste programaçao java

TRANSCRIPT

  • 2 teste/trabalho

    Contedo 1. Introduo ...................................................................................................... 1

    2. Descrio ....................................................................................................... 1

    3. Critrios de avaliao .................................................................................... 1

    4. Funcionalidades ............................................................................................ 2

    A. Ordenados dos trabalhadores ................................................................. 3

    B. Verificao das presenas dos empregados .......................................... 3

    C. Largura de vigas de suporte .................................................................... 3

    D. Transporte de tijolos ................................................................................ 4

    5. Classe ............................................................................................................ 4

    6. Interface com o utilizador .............................................................................. 6

    1. Introduo Faa o cdigo para resolver o problema indicado de acordo com os requisitos

    pedidos. Este enunciado est organizado da seguinte forma:

    Uma descrio geral do problema a resolver

    Uma descrio dos critrios de avaliao

    Uma descrio das funcionalidades individuais a resolver

    Alguma informao sobre a classe principal do problema

    Alguma informao sobre a interface de interaco com o utilizador

    2. Descrio Pretende-se um programa que ajude no processo de gesto de uma empresa de

    construo. Neste prottipo do projecto a ideia ser permitir dar as informaes de

    um projecto de construo e permitir depois fazer vrios clculos auxiliares aos

    processos do projecto.

    3. Critrios de avaliao Na seco seguinte (seco 4) sero descritas diversas funcionalidades, que

    cobrem os principais contedos leccionados e organizadas pelo que se considerou

    ser uma ordem crescente de dificuldade. A cotao de referncia para a finalizao

  • destas funcionalidades so os 16 valores, cotaes superiores sero atribudas a

    quem efectuar os dois requisitos seguintes: organizao do cdigo numa classe

    (seco 5) e criao da interface com o utilizador (seco 6).

    Os 14 valores esto distribudos da seguinte forma

    8 valores Conseguir terminar pelo menos uma funcionalidade na sua

    totalidade e algo feito nas restantes

    At 10 valores Ter mais que uma funcionalidade terminada e algo feito

    nas restantes, ou ter uma terminada e mais do que uma parcialmente feita.

    At 12 valores Ter mais de metade das funcionalidades feitas e pelo

    menos uma parcialmente feita (ou seja, no mximo ter uma no feita).

    At 14 valores Ter a maioria das funcionalidades feitas, ou metade das

    funcionalidades feitas e as restantes parcialmente feitas e em estado de

    desenvolvimento avanado.

    Na seco 5 sero descritos com mais detalhe os critrios para avaliao at aos

    18 valores. O objectivo dos critrios a criao de uma classe com as

    funcionalidades indicadas e os dados necessrios mesma.

    Finalmente a seco 6 indica os critrios para cotao mxima (20 valores). O

    objectivo destes critrios a criao de uma interface simples que permita ao

    utilizador introduzir dados, seleccionar as funcionalidades, e visualizar o resultado.

    A interface deve usar a classe definida anteriormente. Caso o estudante consiga

    fazer a interface mas no a classe a cotao de referncia os 17 valores.

    4. Funcionalidades Para o valor de referncia de 16 valores s necessrio escrever o cdigo para

    as funcionalidades. Ou seja:

    A no ser quando explicitamente indicado, no necessita de pedir valores

    ao utilizador (pode colocar valores default nas variveis para testar o

    cdigo).

    No necessita de organizar o cdigo em mtodos (a organizao em

    mtodos dentro de uma classe, e sua correcta utilizao, tem como valor

    de referncia os 18 valores e descrita na seco seguinte).

    Pode imprimir os valores calculados para o ecr.

    Pode fazer cada funcionalidade em separado.

    De seguida descreveremos as funcionalidades que dever implementar:

  • A. Ordenados dos trabalhadores Pea o nmero de empregados.

    Num ciclo pea o valor a ser pago a cada empregado (ter de pedir valores ao

    utilizador neste caso).

    No final deve imprimir o valor total a pagar aos empregados e o valor mdio pago

    a cada empregado.

    B. Verificao das presenas dos empregados Ter de pedir valores ao utilizador (no h forma de simular a funcionalidade

    com valores default).

    Dado um nmero de empregados (no necessita de pedir).

    Deve fazer um ciclo em que pede o nome do empregado, um valor true/false

    indicando se est presente, e no caso de estar presente um valor double que a

    hora de chegada.

    Deve criar duas strings (um empregado por linha, ou seja, coloque \n no final de

    cada linha).

    Uma string s com os empregados que estiveram presentes, tendo o nome

    e a hora a que chegou de cada empregado

    Uma string s com o nome dos empregados que no estiveram presentes.

    C. Largura de vigas de suporte A largura das vigas de suporte depende do material utilizado e do peso que iro

    suportar. Existem 4 materiais numerados de 1 a 4, cada um cuja resistncia o

    dobro da anterior.

    Pretende-se que imprima no ecr uma tabela de referncia que indica para cada

    peso e material a largura mnima das vigas de suporte. A frmula para saber a

    largura mnima dada por: largura = 5.7 * peso / (resistncia 2)

    Sendo 5.7 a constante de suporte.

    Antes de criar a tabela necessita de saber:

    A resistncia do primeiro material (os restantes podem ser calculados a partir

    do primeiro).

    O peso inicial, o final e o incremento (ex: 100 a 500, inclusive, com

    incrementos de 100).

    Sugerimos que crie a tabela de forma a cada linha corresponder a uma

    resistncia com os valores para cada peso nas colunas. Na primeira linha deve

    indicar os valores dos pesos, e na primeira coluna o nmero do material.

  • D. Transporte de tijolos Os tijolos so embrulhados em blocos, que depois so colocados em camies.

    Estas funcionalidades, devem permitir calcular quantos tijolos possvel levar e

    quantos vo sobrar. Esta a informao que as funcionalidades necessitam:

    O nmero de tijolos disponveis.

    O tamanho dos blocos em nmero de tijolos (altura, largura e

    comprimento)

    O nmero de blocos que cabe num camio (igual para todos os camies)

    O nmero de camies disponveis

    Com esta informao deve ser calculada a seguinte informao (no

    obrigatrio imprimir o valor calculado no ecr, mas pode ser til para efeitos de

    debug):

    Saber o nmero de blocos que possvel criar

    Saber quantos tijolos que no podem ficar nos blocos

    Saber quantos camies necessrio usar (no mximo s podem ser

    usados os disponveis).

    Saber quantos tijolos sobra depois de encher os camies

    Saber quantas viagens necessrio para transportar todos os tijolos

    (considerando que cada viagem utilizar todos os camies disponveis).

    5. Classe Defina a classe ProjectoConstrucao com as funcionalidades anteriores e os

    dados necessrios mesma. No necessita de usar a classe, s defini-la (mas

    pode usar a classe no mtodo main se quiser testar o cdigo que fez). Na seco

    seguinte poder definir a interface de utilizao.

    Defina os getters e os setters que achar que podem ser uteis para as

    funcionalidades correntes ou futuras (devem ser em nmero reduzido visto que a

    maioria da funcionalidade j est definida em outros mtodos).

    Defina os construtor(es) para que possam criar instncias inicializadas de forma

    lgica para as funcionalidades requeridas.

    Deve colocar comentrios em qualquer cdigo cuja justificao no se consiga

    perceber pelo cdigo em si. Um cdigo bem escrito explica-se a si mesmo, mas por

    vezes h decises de implementao que podero no ser claras.

    Relembrando por funcionalidade:

  • A. Ordenados dos trabalhadores

    a. Deve ter um atributo que seja o nmero de trabalhadores

    b. Ter um mtodo para pedir os valores pagos a cada empregado

    i. Nesse mtodo deve guardar o valor total (atributo)

    c. Deve ter dois mtodos:

    i. Um para devolver o valor total pago

    ii. Um para devolver o valor mdio por empregado

    B. Verificao das presenas dos empregados

    a. Se no definiu para a funcionalidade anterior, ter de definir um

    atributo para o nmero de empregados

    b. Deve ter um mtodo que pede a informao para cada empregado e

    guarda a respectiva informao nas strings correspondentes aos

    empregados presentes e no presentes (ambas as string so

    atributos)

    c. Deve ter dois mtodos que devolvem as string:

    i. Um para devolver a string dos presentes

    ii. Um para devolver a string dos no presentes

    C. Largura de vigas de suporte

    a. Deve ter um atributo para a resistncia do primeiro material, todos as

    outras podem ser calculadas a partir desse

    b. Deve ter uma constante para o nmero de materiais (4)

    i. No se esquea tambm da constante com o valor 5.7

    c. Deve ter um mtodo que recebe o peso inicial, o peso final e o

    incremento, e imprime para o ecr a tabela requerida

    D. Transporte de tijolos

    a. Deve ter atributos para:

    i. A dimenso dos blocos (largura, altura, comprimento)

    ii. O nmero de blocos por camio

    iii. O nmero de camies

    b. Deve ter mtodos para (dado o nmero de tijolos):

    i. Devolver o nmero de blocos que se pode criar

    ii. Devolver quantos tijolos sobra depois de criar os blocos

    iii. Devolver quantos camies necessrio usar

    iv. Devolver quantos tijolos sobra depois de uma viagem

    v. Devolver quantas viagens so necessrias para todos os tijolos

    NOTA: Se preferir, pode guardar o nmero de tijolos como um atributo,

    mas deve ter um setter para o mesmo.

  • 6. Interface com o utilizador Crie um menu com, pelo menos, as seguintes opes:

    1. Inserir dados do projecto de construo

    2. Calcular valor dos pagamentos

    3. Imprimir listas de presena

    4. Imprimir tabela de referncia para a largura das colunas de suporte

    5. Imprimir informao para transporte de tijolos

    6. Sair

    O menu deve repetir at ser escolhida a opo sair.

    Na primeira opo deve pedir todos os dados do projecto que sero usados nas

    seguintes funcionalidades e criar uma instncia do projecto (se j existir uma pode

    substituir a instncia anterior pela nova) com esses dados.

    Os valores a pedir so:

    Nmero de trabalhadores (requisito para as primeiras duas

    funcionalidades)

    Resistncia do primeiro material (requisito para a terceira funcionalidade)

    A dimenso dos blocos (largura, altura, comprimento)

    O nmero de blocos por camio

    O nmero de camies

    Na segunda opo deve chamar os mtodos da primeira funcionalidade. Deve

    utilizar o mtodo que pede a informao e depois imprimir o valor total a pagar e o

    valor mdio usando os restantes dois mtodos.

    Na terceira opo deve chamar os mtodos da segunda funcionalidade. Deve

    utilizar o mtodo que pede a informao sobre presenas e depois imprimir as duas

    listas de presenas usando os restantes dois mtodos.

    Na quarta opo deve chamar os mtodos da terceira funcionalidade. Deve

    pedir o peso inicial, o final e o incremento e imprimir a tabela de referncia usando

    o mtodo que definiu para essa funcionalidade.

    Na quinta opo deve chamar os mtodos da quarta funcionalidade. Deve pedir

    o nmero de tijolos e imprimir um relatrio usando os mtodos definidos. O relatrio

    dever ter a informao devolvida por cada mtodo (precedida por uma frase que

    indique o que que o nmero significa).