You are on page 1of 22

Introduccin a la Computacin

Programa: Anlisis de Sistemas Profesores: Erys Piero Vladimir Camacaro Lapso 2012/I
1

Ejercicio
Una compaa distribuidora de gas, recibe de cada uno de sus vendedores la informacin referente a sus ventas. Los datos disponibles son: Cdigo del vendedor Precio de la bombona de gas Tipo de bombona de gas (Grande o pequea) Cantidad de bombona Cada vendedor tiene tantas entradas como ventas realizadas Se requiere de un informe que contenga: Por vendedor: Monto total facturado Promedio de lo facturado Por distribuidora: Cdigo del vendedor con mayor facturacin Total monto facturado Que tipo de bombona de gas se vendi en mayor cantidad

Anlisis del problema: Lista Clasificacin Venta ---------------------------------------- Clase Cdigo -------------------------------------- Atributo/Vendedor TipoBombona------------------------------ Atributo/Vendedor Precio---------------------------------------- Atributo/Vendedor Cantidad ------------------------------------ Atributo/Vendedor
Vendedor--------------------------------------------------- Clase Calcular monto total facturado------------------------ Mtodo/Informe Calcular promedio de lo facturado------------------- Mtodo/Informe Distribuidora----------------------------------------------- Clase Calcular vendedor con mayor facturacin --------- Mtodo/Distribuidora
Calcular tipo de bombona de gas que se vendi en mayor cant Mtodo/Distribuidora

Calcular total monto facturado----------------------- Mtodo/Distribuidora

f.u. (1) 1) Inicializar (Mayor, AcumMontoF, ContGrande, ContPequea) f.m.(2) 2) Inicializar (AcumMF, ContVenta) Se calcula el Monto f.m.(2) 3) Leer(Codigo) Facturado f.m.(3) 4) Leer (TipoBombona, Precio, Cantidad) (Precio*Cantidad) y se f.m.(3) 5) Acumular Monto Facturado: acumula en AcumMF AcumMF AcumMF + Precio*Cantidad f.m.(3) 6) Contar venta: Se cuenta cantidad de ventas ContVenta ContVenta + 1 para luego calcular el promedio f.m.(3) 7) Acumular segn tipo de bombona si(TipoBombona=Grande) ContGrande ContGrande + Cantidad sino Se acumula cantidad de si(TipoBombona=Pequea) bombona segn tipo ContPequea ContPequea + Cantidad f.m.(4) 8) Imprimir monto total facturado por vendedor (AcumMF) f.m.(4) 9) Calcula e imprime Promedio facturado del vendedor Promedio AcumMF/ContVenta f.m.(4) 10) Determinar vendedor con mayor facturacin si (Mayor<AcumMF) inicio Se escribe lo solicitado Mayor AcumMF por vendedor (8 y 9) Se va calculando MayorVen Cdigo vendedor con mayor facturacin fin f.m(4) 11) Acumular monto facturado por Distribuidora AcumMontoF AcumMontoF + AcumMF

f.u. (5) 12) Imprimir Cdigo del vendedor con mayor facturacin (MayorVen) f.u. (5) 13) Imprimir tipo de venta con mayor facturacin si(ContGrande > ContPequea) Mensaje Las bombonas Grandes se vendieron en mayor cantidad si(ContGrande< ContPequea) Mensaje Las bombonas Pequeas se vendieron en mayor cantidad sino Mensaje Las bombonas Pequeas y grandes se vendieron en igual cantidad f.u. (5) 14) Imprimir el total facturado de la empresa (AcumMontoF)

Se va escribe lo solicitado por la Distribuidora (12,13 y 14)

1
2 3
4 5 6 7

HayDatoSi repetir mientras (HayDato=si)

RespSi
repetir mientras (Resp=Si)

leer Resp

4 8 9 10 11
leer HayDato

12 13 14

Venta
alfanumrico Cdigo alfanumrico TipoBombona real Precio entero Cantidad AsignarCdigo(alfanumerico Cod) AsignarTipoBombona(alfanumerico TB) AsignarPrecio(real Pc) AsignarCantidad(entero Cant) alfanumerico SacarCodigo() alfanumerico SacarTipoBombona() real SacarPrecio() entero SacarCantidad()

Vendedor
real AcumMF entero ContVenta Inicial() real SacarAcumMF() entero SacarContVenta() Acumular (Venta Vent) Contar() real CalcPromedio()
8

Distribuidora
real Mayor alfanumrico MayorVen entero ContGrande entero ContPequea real AcumMontoF Inicializar() real SacarMayor() alfanumrico SacarMayorVend() entero SacarContGrande() entero SacarContPequea() real SacarAcumMontoF() DetMayor TipoBombona() AcumularMontoF(Inf) DetMayor(Vend,Inf) AcumularTB(Vend)

// Definicin de la estructura de la clase Venta clase Venta inicio privado: alfanumrico Cdigo, TipoBombona real Precio entero Cantidad publico: AsignarCdigo(alfanumrico Cod) AsignarTipoBombona(alfanumrico TB) AsignarPrecio (real Pc) AsignarCantidad (entero Cant) alfanumrico SacarCodigo() alfanumrico SacarTipoBombona() real SacarPrecio() entero SacarCantidad() fin// Venta

10

//Definicin de la estructura de la clase Vendedor clase Vendedor inicio privado: real AcumMF entero ContVenta publico: Inicial () real SacarAcumMF() entero SacarContVenta() Acumular(Venta Vent) Contar () real CalcPromedio () fin // Vendedor
11

//Mtodos propios de la clase Vendedor


Vendedor Inicial () inicio AcumMF 0 ContVenta 0 fin

12

real Vendedor SacarAcumMF() inicio retornar AcumMF fin entero Vendedor SacarContVenta() inicio retornar ContVenta fin Vendedor Acumular(Venta Vent) inicio AcumMF AcumMF +Vent. SacarPrecio()* Vent. SacarCantidad() fin Vendedor Contar() Inicio ContVenta ContVenta + 1 fin

13

real Vendedor CalcPromedio() inicio real Promedio si (contVenta =0) Promedio 0 sino Promedio AcumMF/ContVenta retornar Promedio fin

14

//Definicin de la estructura de la clase Distribuidora clase Distribuidora inicio privado: alfanumrico MayorVen real Mayor, AcumMontoF entero ContPequea, ContGrande publico: Inicializar () alfanumrico SacarMayorVen() real SacarMayor() entero ContPequea() entero ContGrande() real SacarAcumMontoF() DetMayor (Venta Vent, Vendedor Vend) AcumularTB(Venta Vent) DetMayorTipoBombona() AcumularMontoF(Vendedor Vend) fin//clase Distribuidora
15

//Mtodo propio de la clase Distribuidora Distribuidora Inicializar () inicio Mayor 0 ContGrande 0 ContPequea 0 AcumMontoF 0 fin

16

alfanumrico Distribuidora SacarMayorVen() inicio retornar MayorVen fin real Distribuidora SacarMayor() inicio retornar Mayor fin entero Distribuidora SacarContGrande() inicio retornar ContGrande fin entero Distribuidora SacarContPequea inicio retornar ContPequea fin real Distribuidora SacarAcumMontoF() inicio retornar AcumMontoF fin

17

Distribuidora DetMayor (Venta Vent, Vendedor Vend) inicio si ( Mayor < Vend. SacarAcumMF) inicio Mayor Vend. SacarAcumMF() MayorVen Vent. SacarCodigo () fin fin Distribuidora AcumularTB (Venta Vent) inicio si (Vent. SacarTipoBombona = Grande) ContGrande ContGrande + Vent. SacarCantidad() sino si (Vent. SacarTipoBombona = Pequea) ContPequea ContPequea + Vent. SacarCantidad() fin

18

alfanumrico Distribuidora DetMayorTipoBombona() inicio alfanumrico Fact si ContGrande> ContPequea) Fact Las bombonas de tamao grande se vendieron en mayor cantidad sino si ContGrande< ContPequea) Fact Las bombonas de tamao pequea se vendieron en mayor cantidad sino Fact Las bombonas pequeas y grandes se vendieron en igual cantidad retornar Fact fin Distribuidora AcumularMontoF(Vendedor Vend) inicio AcumMontoF AcumMontoF + Vend.SacarAcumMF() fin

19

//Programa de aplicacin principal() inicio Venta Vent Vendedor Vend Distribuidora Dist Dist.Inicializar() alfanumrico HayDato S repetir mientras HayDato = S inicio Vend. Inicial() InterfazEntradaCodigo(Vent) alfanumrico Resp S repetir mientras (Resp = S) inicio InterfazEntradaVenta(Vent) Vend.Acumular(Vent) Vend.Contar() Dist.AcumularTB(Vent) escribir Procesar otra venta S/N) leer Resp fin InterfazSalidaVenta() Dist.DetMayor(Vent, Vend) Dist.AcumularMontoF(Vend) escribirDesea procesar otro vendedor S/N leer HayDato fin InterfazSalidaDistribuidora(Dist) fin

20

InterfazEntradaCodigo(Venta Vent) inicio alfanumrico Cod, escribir Ingrese el cdigo del Vendedor leer cod Vent. AsignarCodigo(Cod) fin InterfazEntradaVenta(Venta Vent) inicio alfanumrico TB real Pc entero Cant escribir Ingrese el tipo de bombona (Grande/Pequea) leer TB Vent.AsignarTipoBombona(TB) escribir Ingrese el precio leer Pc Vent.AsignarPrecio(Pc) escribir Ingrese el precio leer Cant Vent.AsignarCantidad(Cant) fin

21

InterfazSalidaVenta(Venta Vent, Vendedor Vend) inicio escribirEl monto total facturado por el Vendedor, Vent. SacarCodigo (), es de BsF., Vend. Sacar AcumMF() escribir El promedio de lo facturado fue de BsF. ,Vend. CalcPromedio() fin
InterfazSalidaDistribuidora(Distribudora Dist) inicio escribir El vendedor con mayores ventas fue, Dist. SacarMayorVen() escribir El tipo de venta con mayor ingreso fue, Dist.DetMayorTipoBombona() escribir El total facturado por la empresa fue de BsF, Dist.SacarAcumMontoF() fin

22

You might also like