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.