Você está na página 1de 6

2 teste/trabalho

Contedo
1.
2.
3.
4.

Introduo ...................................................................................................... 1
Descrio ....................................................................................................... 1
Critrios de avaliao .................................................................................... 1
Funcionalidades ............................................................................................ 2
A.
B.
C.
D.

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


Verificao das presenas dos empregados .......................................... 3
Largura de vigas de suporte .................................................................... 3
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.
2.
3.
4.
5.
6.

Inserir dados do projecto de construo


Calcular valor dos pagamentos
Imprimir listas de presena
Imprimir tabela de referncia para a largura das colunas de suporte
Imprimir informao para transporte de tijolos
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).

Você também pode gostar