Você está na página 1de 18

Linguagem de programao I

Anllse e desenvolvlmenLo de slsLemas


8anco de uados
Linguagem de programao I


Laboratrio 6 e 7

WORKSHOP verso 1.1



Prof. MSc Giulian Dalton Luz
`
Slide 3
Ajustes da verso 1.1
uul8oLulo geLMensagem e uma funo e no um procedlmenLo pols devolve valor
Classe CerenclarCllenLe
varlvel
An1LS: prlvaLe sLauc nal MAx_CLlLn1LS = 100,
ACC8A: prlvaLe sLauc nal lnL MAx_CLlLn1LS = 1000,
Classe CerenclarroduLo
varlvel
An1LS: prlvaLe sLauc nal MAx_8Cuu1CS = 100,
ACC8A: prlvaLe sLauc nal lnL MAx_8Cuu1CS = 100,
8egra
Cdlgo deve ser de 0 a 99
Classe Cerenclaredldo
varlvels
An1LS:
prlvaLe sLauc nal MAx_LuluCS = 10000,
prlvaLe sLauc nal MAx_l1LnS = 10,
ACC8A:
prlvaLe sLauc nal lnL MAx_LuluCS = 10000,
prlvaLe sLauc nal lnL MAx_l1LnS = 10,

Slide 4
Contedo deste material
8eallzar em sala
Apllcar os concelLos do 1 8lmesLre
raucar e xar os concelLos do 2 8lmesLre
rocedlmenLos
lunes
Arrays
Crlao de pro[eLo real
lelLo em sala e como Lrabalho para casa
ara enLregar (uaLa LlmlLe=23/03)
ALeno slmpllcaes ou a[usLes podero ser felLos nesse maLerlal
(essa e a verso 1.0)
ode ser reallzado em pares
ALeno os nomes dos dols auLores Lem que consLar no cabelho
de cada classe.
um pacoLe para LesLe bslco ser enLregue ao na prxlma aula
Slide 5
Critrio de avaliao
CrlLerlos de avallao
ComenLrlos e formaLao de cdlgo (noLa de qualldade)
Compllao e execuo
ALeno para os nomes (lncluslve malusculo e mlnusculo)
uSL C Au8C !AvA
Consldere que esL enLregando o pro[eLo para um cllenLe. Se no
compllar ou no execuLar ser conslderado errado
Ser reallzada uma baLerla de LesLes para cada parLe do cdlgo. A
noLa ser proporclonal aos elemenLos correLos
noLa = 9 * (acerLos/LoLal) + 1 * (noLa de qualldade)
Slide 6
Projeto Sistema Pizzaria
nome do pro[eLo: llLlzza
nome do pacoLe: L.plzzarla
Classe prlnclpal (meLodo maln): llLlzzaApp
Slide 7
Classe UtilTela
Lssa classe deve ser uullzada SLM8L que preclsar ler/
escrever algo
ueve possulr os segulnLes procedlmenLos /funes
rocedlmenLos
escrevevalor ( 3 verses )
8ecebe um rLulo SLrlng e um valor SLrlng
8ecebe um rLulo SLrlng e um valor double
8ecebe um rLulo SLrlng e um valor lnL
ode ser lmplemenLado com SysLem.ouL ou !Cpuonane
ueve lmprlmlr uul8oLulo.geLMensagem(roLulo)+ : + valor
lunes
leSLrlng
uevolve SLrlng
lelnL
uevolve lnL
leuouble
uevolve double
Slide 8
UtilRotulo
1odas as mensagens devero ser padronlzadas
Lx: Classe.roLulo -> Mensagem cusLomlzada....
ara obLer a mensagem deve-se uullzar:
uul8oLulo.geLMensagem(Classe.roLulo")
Crlar a funo
geLMensagem
8ecebe SLrlng roLulo
uevolve SLrlng com a mensagem correspondenLe
ulca, use dols arrays (um para roLulo e ouLro para mensagem)
ode uullzar um sequencla de lls caso ache mals fcll
u1lLlZL ALnAS 8C1uLCS uLllnluCS nLSSL uCCuMLn1C
odemos crlar novos em sala em comum acordo
Slide 9
Menu do sistema
Classe llLlzzaMenu (uullzar uul1ela)
ueve ser dlvlda nos procedlmenLos a segulr
monLaMenu conLendo as segulnLes opes em Lela:
1 - CadasLra cllenLe
2 - CadasLra produLo
3 - LfeLua pedldo
4 - lmprlmlr pedldo
3 - 8esumo de vendas
escolheMenu
Cuando o usurlo dlglLar um numero o slsLema dever escolher um dos procedlmenLos:
cadasLrarCllenLe (le da Lela e aclona classe CerenclarCllenLe procedlmenLo cadasLrar)
cadasLrarroduLo (le da Lela e aclona CerenclarroduLo procedlmenLo cadasLrar)
efeLuaredldo (le da Lela aclona Cerenclaredldo proceds. crlaredldo / addroduLo)
lmprlmlredldo (le da Lela aclona classe Cerenclaredldo procedlmenLo lmprlmlredldo)
resumovendas (le da Lela aclona classe Cerenclaredldo procedlmenLo lmprlmlr8esumo)
8Lulos: llLlzzaMenu.cadcll, llLlzzaMenu.cadpro, llLlzzaMenu.efped,
llLlzzaMenu.lmpped, llLlzzaMenu.resumo, llLlzzaMenu.opcaolnvallda,
llLlzzaMenu.errocrlaped, llLlzzaMenu.erroaddpro
Slide 10
Classe GerenciarCliente
ALrlbuLo
prlvaLe sLauc nal lnL MAx_CLlLn1LS = 1000,
prlvaLe sLauc SLrlng [] cllenLes = new SLrlng[MAx_CLlLn1LS]
Crlar os procedlmenLos
cadasLrar
8ecebe codlgo lnL e nome SLrlng
Cdlgo deve ser de 0 a 999
nome com no mxlmo 30 caracLeres
Cuarda o nome na poslo [codlgo] do array
Crlar as funes
consulLar
8ecebe codlgo lnL e devolve o nome do cllenLe
uevolve null se no enconLrado
8Lulo: CerenclarCllenLe.errocad
Slide 11
Classe GerenciarProduto
ALrlbuLo
prlvaLe sLauc nal lnL MAx_8Cuu1CS = 100,
prlvaLe sLauc SLrlng [] produLos = new SLrlng[MAx_8Cuu1CS]
prlvaLe sLauc double [] precos = new SLrlng[MAx_8Cuu1CS]
Crlar os procedlmenLos
cadasLrar
8ecebe codlgo lnL, nome SLrlng e preco double
Cdlgo deve ser de 0 a 99
nome com no mxlmo 30 caracLeres
reo no pode ser negauvo
Cuarda o nome na poslo [codlgo] do array produLos
Cuarda o preo na poslo [codlgo] do array precos
Crlar as funes
consulLar
8ecebe codlgo lnL e devolve o nome do produLo e devolve null se no enconLrado
obLerreco
8ecebe codlgo lnL e devolve o preo do produLo e devolve -1.0 se no enconLrado
8Lulo: CerenclarroduLo.errocad
Slide 12
Classe GerenciarPedido
ALrlbuLo
prlvaLe sLauc nal lnL MAx_LuluCS = 10000,
prlvaLe sLauc nal lnL MAx_l1LnS = 10,
prlvaLe sLauc lnL[] pedldosCllenLe = new lnL[MAx_LuluCS]
prlvaLe sLauc lnL[][] lLensroduLo = new lnL[MAx_LuluCS][MAx_l1LnS ]
prlvaLe sLauc double[][] lLensreco = new double[MAx_LuluCS ]
[MAx_l1LnS ]
Crlar a funo
crlaredldo
uevolve um valor boolean
8ecebe numeroedldo lnL e codlgoCllenLe lnL
numero do pedldo deve ser de 0 a 99999
Cdlgo do cllenLe deve ser de 0 a 999
uevolve false se o cllenLe no exlsur (se CerenclarCllenLe.consulLar reLornar null)
uevolve Lrue se Ludo esuver ok
Cuarda o codlgoCllenLe na poslo [numeroedldo ] do array pedldosCllenLe
(Conunua...)
Slide 13
Classe GerenciarPedido
(conunuao) Crlar a funo
adlclonarroduLo
uevolve um valor boolean
8ecebe numeroedldo lnL, lLem lnL e codlgoroduLo lnL
numero do pedldo deve ser de 0 a 99999
lLem deve ser de 0 a 9
Cdlgo do produLo deve ser de 0 a 99
uevolve false se o produLo no exlsur (se CerenclarroduLo.consulLar reLornar
null)
uevolve false se o preco no exlsur (se CerenclarroduLo. obLerreco reLornar
-1.0)
Cuarda o codlgoroduLo na poslo [numeroedldo ][lLem] do array
lLensroduLo
Cuarda o preo na poslo [numeroedldo ][lLem] do array lLensreco
(Conunua...)

Slide 14
Classe GerenciarPedido
(conunuao) Crlar o procedlmenLo
lmprlmlredldo
8ecebe numeroedldo lnL
numero do pedldo deve ser de 0 a 99999
Salda:
Llnha 1: lmprlme o ld do pedldo e o nome do cllenLe
Llnha 2 a n: lmprlme o ld do produLo, o nome do produLo e o preo
Llnha n + 1: lmprlme o valor LoLal do pedldo, deve uullzar o meLodo calcula1oLal
da mesma classe
lmprlme edldo no enconLrado" caso o pedldo no exlsLa (codlgoCllenLe == null)
8Lulos: no ulumo sllde
Crlar a luno
calcula1oLal
8ecebe numeroedldo lnL
numero do pedldo deve ser de 0 a 99999
uevolve o LoLal do pedldo lnformado (double)
(Conunua...)

Slide 15
Classe GerenciarPedido
(conunuao) Crlar o procedlmenLo
resumovendas (8Lulos no ulumo sllde)
8ecebe numeroedldo lnL
numero do pedldo deve ser de 0 a 99999
Salda:
Llnha 1: lmprlme o LoLal de pedldos crlados (quando codlgoCllenLe ==
Llnha 2: lmprlme o valor LoLal dos pedldos (soma dos preos)
Llnha 3: lmprlme o valor medlo dos pedldos (soma dos preos / LoLal)
Llnha 4: lmprlme o numero do pedldo e o valor do pedldo mals caro
Llnha 3: lmprlme o numero do pedldo e o valor do pedldo mals baraLo
Crlar as lunes
calculaCuanudade
uevolve o LoLal de pedldos vlldos (lnL)
calculaMedla
uevolve o valor medlo (double)
obLemMalsCaro
uevolve o numero do pedldo mals caro
obLemMals8araLo
uevolve o numero do pedldo mals baraLo

Slide 16
Classe GerenciarPedido
8Lulos
Cerenclaredldo.ldped
Cerenclaredldo.nomcll
Cerenclaredldo.ldpro
Cerenclaredldo.nompro
Cerenclaredldo.precopro
Cerenclaredldo.LoLalped
Cerenclaredldo.pednaoenconL
Cerenclaredldo.LoLalped
Cerenclaredldo.valLoLal
Cerenclaredldo.valmedlo
Cerenclaredldo.nromalscaro
Cerenclaredldo.valmalscaro
Cerenclaredldo.nromalsbaraLo
Cerenclaredldo.valmalsbaraLo
Llnha 1: lmprlme o LoLal de pedldos crlados (quando codlgoCllenLe ==
Llnha 2: lmprlme o valor LoLal dos pedldos (soma dos preos)
Llnha 3: lmprlme o valor medlo dos pedldos (soma dos preos / LoLal)
Llnha 4: lmprlme o numero do pedldo e o valor do pedldo mals caro
Llnha 3: lmprlme o numero do pedldo e o valor do pedldo mals baraLo
Crlar as lun
Slide 17
Desafio, valendo nota extra
Cuebrar o menu em dlferenLes classes:
1elaCllenLe
1elaroduLo
1elaedldo
Mas sem alLerar o funclonamenLo geral do
programa.

Você também pode gostar