Sie sind auf Seite 1von 20

UniversidadeFederaldaBahia DepartamentodeCinciasdaComputao

SGPSistemade GerenciamentodePizzaria
Projetodosistema:diagramasdecolaborao, modelagemconceitual,geraodecdigo ecamadadeinterface
BachareladoemCinciasdaComputao MAT163AnlisedeSistemasII Professor:SrgioGorender Semestre:2006.1 Equipe:AmadeuBarbosaJnior AndrLageFreitas AndrManoAmazonas LeonardodeJ.Almeida OrivaldoVieira

Salvador Julho2006

Sumrio

1.DiagramasdeColaborao..........................................................pag3 2.ModeloConceitual........................................................................pag8 3.GeraodeCdigo.........................................................................pag9 4.CamadadeInterface......................................................................pag17

1.DiagramasdeColaborao

2.ModelagemConceitual

3.GeraodeCdigo
importjava.util.*; classConta{ //atributosdoDCP privateFloatvalorTotal; privateBooleanpago; privateStringdata; privateStringhora; privateStringestado; privateFloattroco; privateClientecliente; privateMesamesa; privateSetitensConta=newHashSet(); //Construtorsobrecarregado[clinete|mesa] publicConta(Clientecliente){ this.associaCliente(cliente); Stringestado="ContaAberta"; this.setEstado(estado); this.associaCliente(cliente); } publicConta(Mesamesa){ Stringestado="ContaAberta"; this.setEstado(estado); this.associaMesa(mesa); } //mtodosdeatribuioaosatributos publicvoidsetValorTotal(FloatvalorTotal){this.valorTotal=valorTotal;} publicvoidsetPago(Floatpago){this.pago=pago;} publicvoidsetData(Floatdata){this.data=data;} publicvoidsetHora(Floathora){this.hora=hora;} publicvoidsetEstado(Floatestado){this.estado=estado;} publicvoidsetTroco(Floattroco){this.troco=troco;} //mtodosdeconsultadosatributos publicFloatgetValorTotal(){returnvalorTotal;} publicBooleangetValorTotal(){returnpago;} publicStringgetValorTotal(){returndata;}

publicStringgetValorTotal(){returnhora;} publicStringgetValorTotal(){returnestado;} publicFloatgetValorTotal(){returntroco;} publicClientegetValorTotal(){returncliente;} publicvoidassociaCliente(Clientecliente){ if(this.cliente!=null){ this.cliente.removeContaAux(this); }; this.associaClienteAux(cliente); cliente.adicionaContaAux(this); } publicvoidassociaMesaAux(Mesamesa){ this.mesa=mesa; } publicvoidassociaMesa(Mesamesa){ if(this.mesa!=null){ this.mesa.removeContaAux(this); }; this.associaMesaAux(mesa); mesa.adicionaContaAux(this); } publicvoidassociaEstado(Stringestado){ this.setEstado(estado); } publicMesagetMesa(){returnthis.mesa;} publicvoidregistraPedido(intitemCod,intqtde){ if(this.getEstado()=="ContaAberta"){ ItemContaitCo=newItemConta(itemCod); this.associaItemConta(itCo); itCo.registraQuantidade(itCo,qtde); } } publicvoidassociaItemConta(ItemContaitCo){ this.itensConta.add(itCo);

10

} publicvoidremoveItemConta(ItemContaitCo){ this.itensConta.remove(itCo); } publicSetgetItensConta(){ returnCollections.unmodifiableSet(itensConta); } publicvoidfechaConta(){ this.calculaValorTotal(); Stringestado="contaFechada"; this.associaEstado(estado); } publicvoidcalculaValorTotal(){ if(this.getEstado()=="ContaAberta"){ FloatvalorIt=getSomaitensCodigo(); this.setValorTotal(valorIt); } } publicfloatgetSomaitensCodigo(){ CollectionItens=getItensConta(); whileItens.HasItem{ soma+=Itens.getItem().getValor(itemCod); Itens.Next(); } returnsoma; } publicvoidregistraQuantia(FloatvalorPago){ if(this.getEstado()=="ContaFechada"){ this.calculaTroco(valorPago); Stringestado="ContaPaga"; this.associaEstado(estado); } }

11

publicvoidcalculaTroco(FloatvalorPago){ if(valorPago>=this.valorTotal){ this.setTroco(ValorPagothis.ValorTotal); this.setPago(true); } } publicvoidencerraConta(Mesamesa){ if(this.getEstado()=="ContaPaga"){ Stringestado="ContaEncerrada"; this.associaEstado(estado); emiteNota(); } } privatevoidemiteNota(){ ItemContaContabilcontabil=newItemContaContabil(this.getValorTotal()); contabil.setDescricao(this.getItensConta()); this.geraNota(contabil); } privatevoidgeraNota(ItemContaContabilcontabil){ //Imprimeanotafiscal } } classMoeda{ privatefloatvalor; Moeda(){ setValor(0.0); } Moeda(floatv){ setValor(v); } publicvoidsetValor(floatnovo){ valor=novo; } publicfloatgetValor(){ returnvalor; } }

12

classContraCheque{ privateFuncionariofunc; privateDate privateMoeda emissao; valor;

ContraCheque(Funcionariof){ func=f; emissao=newDate(); valor=f.consultaValorSalario(); } } classFuncionarios{ //atributossimples privateString privateString privateint privateboolean privateDate nome; endereco; telefone; afastamento; periodoAfastamento;

//esteatributospodeseratribudo //pelomtododedemissao()oureadimissao()!! privateString privateDate situacao; dispensa;

//atributosrelacionadosaomodelo privateCargo privateSalario privateVector //construtor publicFuncionarios(){this.associaFuncionario(nome,end,tel,cargo);} //mtodosdeatribuioaosatributos publicvoidsetNome(stringnome){this.nome=nome;} publicvoidsetEndereco(stringend){this.endereco=end;} publicvoidsetTelefone(inttel){this.telefone=tel;} publicvoidsetAfastamento(booleannovo){this.afastamento=novo;} publicvoidsetPeriodoAfastamento(Datedata){this.periodoAfastamento=data;} cargo; salario; contraCheques;

13

publicvoidsetSituacao(StringnovaSit){this.situacao=novaSit;} privatevoidsetDispensa(Datedata){this.dispensa=data;} //mtodosdeconsultadosatributos publicstringgetNome(){returnnome;} publicstringgetEndereco(){returnendereco;} publicintgetTelefone(){returntelefone;} publicbooleangetAfastamento(){returnafastamento;} publicDategetPeriodoAfastamento(){returnperiodoAfastamento;} publicStringgetSituacao(){returnsituacao;} publicDategetDispensa(){returndispensa;} publicvoidassociaFuncionario(nome,end,tel,cargo){ //obs:consertaressaatribuiodeStringsdeacordocomaJava, //temqueserviamtodoenaooperador= this.nome=nome; this.endereco=end; this.telefone=tel; this.afastamento=null; this.periodoAfastamento=null; this.situacao="admitido"; this.cargo=cargo; this.salario=null; this.contraCheques=null; } //mtodosdateisaplicao publicVectorgetDadosCadastrais(){ Vectordados=newVector(); dados.push_back(getNome()); dados.push_back(getEndereco()); dados.push_back(getTelefone()); dados.push_back(getAfastamento()); dados.push_back(getPeriodoAfastamento()); returndados; } publicvoidsetDados(Vectordados){ setNome(dados[0]); setEndereco(dados[1]); setTelefone(dados[2]); setAfastamento(dados[3]);

14

setPeriodoAfastamento(dados[4]); } publicbooleanpagaFuncionario(Moedavalor){ if(salario.getValorTotal()==valor){ salario.setPagamento(true,newDate()); contraCheques.push_back(newContraCheque(this)); //retornasemerros returntrue; }else{ //erro1=valordiferedoquedeveserpago returnfalse; } } publicbooleandemiteFuncionario(){ setSituacao("demitido"); salario.calculaImpostosDemissao(); //senofoifeitopagamentodoms //entopagaseedepoiscontinua.. if(!salario.getPagamento(newDate()){ this.pagaFuncionario(salario.getValorTotal()); } setDispensa(newDate()); returntrue; } //"FuncionariopossuiCargo" publicbooleanassociaCargo(CargonovoCargo){ cargo=novoCargo; salario.calculaNovo(cargo); returntrue; } //"FuncionariocontmSalrio" publicMoedaconsultaValorSalario(){ returnsalario.getValorTotal(); } publicContraChequegetContraCheque(){ returngetContraCheque(contraCheques.size()); } publicContraChequegetContraCheque(inti){

15

returncontraCheques.at(i); } publicContraChequeconsultaContraCheque(){ returnthis.getContraCheque(); } }

16

4.CamadadeInterface
DiagramadeEstadosdeNavegao

17

AssociaodeControles
Atendimentoportelefone Inicializao: AtivaaconsultadesistemalistaClientes(). Habilitaomenu"nomecliente"eoboto"voltar". Desabilitaosdemaiscontroles. MenuSelecioneocliente: ResultadodaconsultadesistemalistaClientes(). ItemselecionadooparmetronomedaoperaodesistemaIdentificaCliente(nome). EventodeseleoativaaoperaodesistemaidentificaCliente(nome). Habilitaomenu"FecharConta"eatabelaCod.\Nome\Status\Durao. Boto"NovoCliente" Abriumanovajanelaparacadastramentodeclientes. Boto"AbrirConta" Abriumanovajanelaparacadastramentodecontas. Campo"Cd.Antendimento" Listacdigodascontasabertasdepoisdaaberturadocaixa. Campo"NomedoCliente" Listadosnomesdosclientes,osquaistiveramalgumacontaabertadepoisdaaberturadocaixa. Campo"EstatusdoPedido" Listaoestatusdascontasabertasdepoisdaaberturadocaixa. campo"DuraodoAt." Listaaduraodecorridaentreaaberturadecontaeofechamento,originadodaconsulta consultaTempoEntrega(). BotoFecharConta AtivadordaoperaodesistemafecharConta()sobreacontaselecionadanatabela Cod.\Nome\Status\Durao. COMMIT. Botovoltar NavegaoparaPrincipal.

18

AberturadeConta Inicializao AtivaaconsultadesistemalistaProdutos(). Habilitaomenu"Produtos". Desabilitaosdemaiscontroles. Menu"Produtos" ResultadodaconsultadesistemalistaProdutos(). ItemselecionadoparmetrocdigodaoperaodesistemaregistraPedido(itemCod,quantidade). Eventodeseleocausa:

AtivaodaconsultadesistemaconsultaItem().

CampoQtde. ValorescolhidoparmetroquantidadedaoperaodesistemaregistraPedido(itemCod,quantidade). Boto"Adicionar" AtivadordaoperaoregistraPedido(itemCod,quantidade). Habilitaoboto"FinalizarPedidos". Adicionaumalinhanatabela"Cod./Desc.Produto/Qtde./ValorUnit./Subtotal" Lista"Cod./Desc.Produto/Qtde./ValorUnit./Subtotal" ResultadodaconsultaconsultaItem(),dovalordocampoQuantidade,valordocampoValorUnitrioeo produtoentreosdoiscamposanteriores. BotoRemover AtivadordaoperaoexcluePedido(itemCod,quantidade). BotoFinalizarPedidos AtivadordaoperaofimPedidos(). AtivadordasconsultaconsultaValor()econsultaTempoEntrega(). Desabilitaosbotes"adicionar"e"remover"eocampo"quantidade". CampoValorTotal ResultadodaconsultadesistemaconsultaValor(). CampoTempodeEntrega 19

ResultadodaconsultadesistemaconsultaTempoEntrega(). BotoLimpar ROLLBACK. Habilitaomenu"nomecliente"eoboto"voltar". Desabilitaosdemaiscontroles. Botovoltar NavegaoparaAtendimentoporTelefone.

20

Das könnte Ihnen auch gefallen