s1604f08410004b5b.jimcontent.com€¦ · Web viewCada cliente y producto con código establecido....

Post on 15-Aug-2020

7 views 0 download

Transcript of s1604f08410004b5b.jimcontent.com€¦ · Web viewCada cliente y producto con código establecido....

Algoritmo y Estructura de Datos en I.O. Recursividad

“Universidad Nacional Mayor de San Marcos” Decana de América

Facultad de Ciencias MatemáticasEscuela Académico Profesional de INVESTIGACION OPERATIVA

Asignatura:

“Algoritmo y Estructura de Datos en I.O.”

Ejercicio:

“Resumen de ventas por producto”

Profesor:

Vega Huerta, Hugo.Integrantes:

Aliaga Aliaga, Renzo. Callupe Artica, Mireya. Camacho Huanay, Angela. Mejía Villanueva, Elsa.

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Semestre:

2015-IResumen de ventas por producto

Problema: Juan tiene una pequeña bodega en la cual tiene ciertos clientes fijos. Para lo cual desea realizar un programa en el cual se pueda obtener una boleta de ventas de los productos requeridos por uno o más determinados clientes. Cada cliente y producto con código establecido. Además obtenemos otra tabla en la que se muestre el resumen de ventas por producto.

Solución:

Teniendo la siguiente información:

Cliente Nombre

Distrito Código

0 Juan Lima 20101 Pedro Breña 20202 Ana Lima 20303 María Surco 12040

Producto

Precio(S/.) Código

Arroz 2.60 1020Leche 3.40 1030Azúcar 2.90 1040Frejol 4.60 1050

El programa que deseamos nos debe pedir ingresar un código de clienteCliente1

---------------------------------Codigo_cliente: 2010(Seguidamente el programa nos muestra el nombre y el distrito del cliente)

Nombre: Juan Distrito: Lima ---------------------------------

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Pedido1 (tenemos el pedido n°1)

----------------------------------Codigo_Producto: 1040 (Nos piden ingresar el código del producto a vender)

Producto: AzúcarPrecio : S/. 2.90Cantidad: 2 (Nos piden ingresar la cantidad de productos a vender)

Parcial: S/. 5.80 (Obtenemos el precio parcial)

Otro producto: S (Nos pregunta si deseamos agregar otro producto a vender y como ponemos S , nos lleva a incluir un pedido 2)----------------------------------------------------

Pedido 2------------------------------------------Codigo_Producto: 1020 (Nos piden ingresar el código del producto a vender)

Producto: ArrozPrecio : S/. 2.60Cantidad: 1 (Nos piden ingresar la cantidad de productos a vender)

Parcial: S/. 2.60 (Obtenemos el precio parcial)

Otro producto: N(Nos pregunta si deseamos agregar otro producto a vender y como ponemos N (No), nos lleva a preguntarnos si ingresamos los pedidos de otro cliente)

Otro cliente: S (como la respuesta es S(Si) nos lleva a ingresar los pedidos de un cliente 2

---------------------------------------------------Cliente 2---------------------------------------------------Codigo_cliente: 2020(Seguidamente el programa nos muestra el nombre y el distrito del cliente)

Nombre: Pedro Distrito: Breña ---------------------------------Pedido1 (tenemos el pedido n°1 para el cliente 2)

----------------------------------Codigo_Producto: 1030 (Nos piden ingresar el código del producto a vender)

Producto: LechePrecio : S/. 3.40Cantidad: 3 (Nos piden ingresar la cantidad de productos a vender)

Parcial: S/. 10.20 (Obtenemos el precio parcial)

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Otro producto: S (Nos pregunta si deseamos agregar otro producto a vender y como ponemos S , nos lleva a incluir un pedido 2)----------------------------------------------------

Pedido 2------------------------------------------Codigo_Producto: 1040 (Nos piden ingresar el código del producto a vender)

Producto: Azúcar Precio : S/. 2.90Cantidad: 3 (Nos piden ingresar la cantidad de productos a vender)

Parcial: S/. 8.70 (Obtenemos el precio parcial)

Otro producto: N(Nos pregunta si deseamos agregar otro producto a vender y como ponemos N (No), nos lleva a preguntarnos si ingresamos los pedidos de otro cliente)

Otro cliente: N(como la respuesta es N(No) nos lleva a obtener la boleta de venta 1 y 2 para los dos clientes respectivamente.)

Boleta de Venta 1Cod_Cliente 2010Nombre: Juan Distrito: Lima

Cod_Prod Producto Cantidad Precio(S/.) Parcial (S/.)1040 Azúcar 2 2.90 5.801020 Arroz 1 2.60 2.60

Total 8.40

Boleta de Venta 2Cod_Cliente 2020Nombre: Pedro Distrito: Breña

Cod_Prod Producto Cantidad Precio(S/.) Parcial (S/.)1030 Leche 3 3.40 10.201040 Azúcar 3 2.90 8.70

Total 18.90

Resumen de ventas por productoCod producto Producto Cantidad Precio Total

1020 Arroz 1 2.60 2.601030 Leche 3 3.40 10.201040 Azúcar 5 2.90 14.50

total 27.30

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

PseudocódigoInicio

//clientes int codc[4] String Cli[4] String Dis[4] //Productos int codp[4] String Prod[4] double prec[4] //Ventas int codigcv[20] String Clicv[20] String Discv[20] int codv[20][20] String Prodv[20][20] double prev[20][20] double parcialv[20][20] int count[20] int cantotal[20] double parcialtotal[20] //Data clientes codc[0]=2010; codc[1]=2020; codc[2]=2030; codc[3]=2040; Cli[0]="Juan";

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Cli[1]="Pedro"; Cli[2]="Ana"; Cli[3]="María"; Dis[0]="Lima"; Dis[1]="Breña"; Dis[2]="Lima"; Dis[3]="Surco"; //Data productos codp[0]=1020; codp[1]=1030; codp[2]=1040; codp[3]=1050; Prod[0]="Arroz"; Prod[1]="Leche"; Prod[2]="Azucar"; Prod[3]="Frejol"; prec[0]=2.60; prec[1]=3.40; prec[2]=2.90; prec[3]=4.60; //busqueda int num,num1,i,h=0,ii; int cant [10][10] int jj[10] double pre=1.0; //String rpta="s"; String rpta1="s"; Imprimir ("\t-----------------"); Imprimir ("\tSistema de Ventas"); Imprimir ("\t-----------------");

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Mientras (rpta1.equals("s")||rpta1.equals("S")) Imprimir("*******************************"); Imprimir("\t Cliente "+(h+1)); Imprimir("*******************************"); Imprimir("Código:\t\t"); Leer num Para (i=0;i<4;i++) Si(num==codc[i]) Imprimir("Nombre: \t"+Cli[i]) Imprimir("Distrito:\t"+Dis[i]); codigcv[h]=codc[i]; Clicv[h]=Cli[i]; Discv[h]=Dis[i]; h++;

Fin_Si Fin_Para String rpta="s"; jj[h-1]=0; Mientras (rpta.equals("s")||rpta.equals("S")){ Imprimir("---------------------------------"); Imprimir("PEDIDO \t"+(jj[h-1]+1)); Imprimir("---------------------------------"); Imprimir("Cod Pro:\t"); Leer num1 Para (i=0;i<4;i++){ Si(num1==codp[i]) //pre=prec[i]; Imprimir ("Producto: \t"+Prod[i]); Imprimir("Precio:\t\tS/."+prec[i]); codv[jj[h-1]][h-1]=codp[i]; Prodv[jj[h-1]][h-1]=Prod[i]; prev[jj[h-1]][h-1]=prec[i]; jj[h-1]++; Fin_Si

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Fin_Para Imprimir ("Cantidad:\t"); leer cant[(jj[h-1]-1)][h-1] parcialv[jj[h-1]-1][h-1]=cant[jj[h-1]-1][h-1]*prev[jj[h-1]-1][h-1]; Imprimir("Parcial:\tS/."+parcialv[jj[h-1]-1][h-1]); Imprimir("Otro Prod:\t"); Leer rpta

Si (rpta.equals("N")) count[h-1]=jj[h-1]; Imprimir ("\n\n"); Imprimir ("Otro Cliente:\t"); Leer rpta1 Imprimir("\n\n"); Fin_Si Fin_Mientras Fin_Mientras cantotal[0]=0; cantotal[1]=0; cantotal[2]=0; cantotal[3]=0; parcialtotal[0]=0; parcialtotal[1]=0; parcialtotal[2]=0; parcialtotal[3]=0;

//IMPRIME CADA CLIENTE CON SUS RESPECTIVOS PRODUCTOSPara(ii=0;ii<h;ii++) Imrimir("************************************************************************");

Imprimir ("\t\t\tBOLETA DE VENTA "+(ii+1)); Imprimir ("************************************************************************"); Imprimir ("Cod Cli:\t"+codigcv[ii]); Imprimir ("Nombre:\t\t"+Clicv[ii]+"\t\tDistrito:\t"+Discv[ii]); Imprimir ("------------------------------------------------------------------------"); Imprimir ("Cod Prod\t"+"Producto\t"+"Cantidad\t"+"Precio\t\t"+"Parcial");

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

System.out.println("------------------------------------------------------------------------"); double total=0;

para (i=0;i<count[ii];i++)Imprimir(codv[i][ii]+"\t\t"+Prodv[i][ii]+"\t\t"+cant[i][ii]+"\t\tS/."+prev[i][ii]+"\t\

tS/."+parcialv[i][ii]); total=total+parcialv[i][ii]; Para(int mm=0;mm<4;mm++){ Si (codv[i][ii]==codp[mm]){ cantotal[mm]=cantotal[mm]+cant[i][ii]; parcialtotal[mm]=parcialtotal[mm]+parcialv[i][ii]; Fin_Si

Fin_ParaFin_ParaImprimir("------------------------------------------------------------------------");

Imprimir("Total\t\t\t\t\t\t\t\tS/."+total); Imprimir ("************************************************************************"); Imprimir("\n\n")Fin_Para//IMPRIME LISTA DE PRODUCTOS Imprimir ("************************************************************************"); Imprimir("\t\t\tRESUMEN DE VENTAS POR PRODUCTO "); Imprimir("************************************************************************"); Imprimir("------------------------------------------------------------------------"); Imprimir ("Cod Prod\t"+"Producto\t"+"Cantidad\t"+"Precio\t\t"+"Total"); Imprimir ("------------------------------------------------------------------------"); double totalg=0; Para (i=0;i<4;i++) Si(cantotal[i]!=0) Imprimir (codp[i]+"\t\t"+Prod[i]+"\t\t"+cantotal[i]+"\t\tS/."+prec[i]+"\t\tS/."+parcialtotal[i]); totalg=totalg+parcialtotal[i]; Fiin_Si Fin_Para Imprimir ("------------------------------------------------------------------------");

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Imprimir ("Total\t\t\t\t\t\t\t\tS/."+totalg); Imprimir ("************************************************************************"); Imprimir("\n\n"); Fin

Diagrama de flujo:Inicio

codc[4]Cli[4], Dis[4]

codp[4], Prod[4], prec[4]codigcv[20], Clicv[20], Discv[20], codv[20]

[20],Prodv[20][20], prev[20][20],parcialv[20][20],

count[20]; cantotal[20]; parcialtotal[20]

Mientras (rpta1.equals("s")||rpta1.equals("S"))

Imprimir ("Sistema de Ventas");

codc[0]=2010;codc[1]=2020; codc[2]=2030; codc[3]=2040; Cli[0]="Juan"; Cli[1]="Pedro"; Cli[2]="Ana"; Cli[3]="María"; Dis[0]="Lima"; Dis[1]="Breña"; Dis[2]="Lima"; Dis[3]="Surco";

codp[0]=1020; codp[1]=1030; codp[2]=1040; codp[3]=1050 Prod[0]="Arroz"; Prod[1]="Leche"; Prod[2]="Azucar" Prod[3]="Frejol";prec[0]=2.60;prec[1]=3.40;prec[2]=2.90;prec[3]=4.60;

num,num1,i,h=0,ii;cant [10][10]; jj[10] pre=1.0; rpta="s"; rpta1="s";

No

Si

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Imprimir("\t Cliente "+(h+1)); Imprimir("Código:\t\t"); Leer num

Para(i=0;i<4;i++)

Si(num==codc[i])

Imprimir("Nombre: \t"+Cli[i])Imprimir("Distrito:\t"+Dis[i]);

codigcv[h]=codc[i];Clicv[h]=Cli[i];Discv[h]=Dis[i];

h++;

Mientras (rpta.equals("s")||rpta.equals("S"))

Imprimir("PEDIDO \t"+(jj[h-1]+1));Imprimir("Cod Pro:\t");

Leer num1

String rpta="s"; jj[h-1]=0;

No

Si

No

Si

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Para (i=0;i<4;i++)

Si(num1==codp[i])

Imprimir ("Producto: \t"+Prod[i]);Imprimir("Precio:\t\tS/."+prec[i]); codv[jj[h-1]][h-1]=codp[i];Prodv[jj[h-1]][h-1]=Prod[i];prev[jj[h-1]][h-1]=prec[i]; jj[h-1]++;

Imprimir ("Cantidad:\t");Leer cant[(jj[h-1]-1)][h-1]

Imprimir("Parcial:\tS/."+parcialv[jj[h-1]-1][h-1]);Imprimir("Otro Prod:\t");Leer rpta

parcialv[jj[h-1]-1][h-1]=cant[jj[h-1]-1][h-1]*prev[jj[h-1]-1][h-1];

(rpta.equals("N")||rpta.equals("n"))

count[h-1]=jj[h-1];Imprimir ("Otro Cliente:\

t");Leer rpta1

Si

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Para(ii=0;ii<h;ii++)

Imprimir("\t\t\tBOLETA DE VENTA "+(ii+1));Imprimir("Cod Cli:\t"+codigcv[ii]);Imprimir("Nombre:\t\t"+Clicv[ii]+"\t\tDistrito:\t"+Discv[ii]);Imprimir("Cod Prod\t"+"Producto\t"+"Cantidad\t"+"Precio\t\t"+"Parcial"); double total=0;

Para (i=0;i<count[ii];i++)

Imprimir(codv[i][ii]+"\t\t"+Prodv[i][ii]+"\t\t"+cant[i][ii]+"\t\tS/."+prev[i][ii]+"\t\tS/."+parcialv[i][ii]);total=total+parcialv[i][ii];

cantotal[0]=0;cantotal[1]=0; cantotal[2]=0;cantotal[3]=0; parcialtotal[0]=0;parcialtotal[1]=0; parcialtotal[2]=0; parcialtotal[3]=0;

Si (codv[i][ii]==codp[m

m])

sicantotal[mm]=cantotal[mm]+cant[i][ii]; parcialtotal[mm]=parcialtotal[mm]+parcialv[i][ii];

No

No

Si

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Fin

Imprimir ("Total\t\t\t\t\t\t\t\tS/."+total);

Imprimir ("\t\t\tRESUMEN DE VENTAS POR PRODUCTO ");Imprimir ("Cod Prod\t"+"Producto\t"+"Cantidad\t"+"Precio\t\t"+"Total");

totalg=0

Para (i=0;i<4;i++)

Si(cantotal[i]!=0)

Imprimir(codp[i]+"\t\t"+Prod[i]+"\t\t"+cantotal[i]+"\t\tS/."+prec[i]+"\t\tS/."+parcialtotal[i]);

totalg=totalg+parcialtotal[i];

Imprimir ("Total\t\t\t\t\t\t\t\tS/."+totalg);

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Código Fuente:/* el siguiente programa nos da como resultado las * boletas de ventas y un resumen de ventas por productos. */package resumen_por_producto;import java.util.Scanner;

public class Resumen_por_producto { public static void main(String[] args) {

Scanner sc=new Scanner (System.in); //clientes int codc[] = new int[4]; String Cli[] = new String[4]; String Dis[] = new String[4]; //Productos int codp[] = new int[4]; String Prod[] = new String[4]; double prec[] = new double[4]; //Ventas int codigcv[] = new int[20]; String Clicv[] = new String[20]; String Discv[] = new String[20]; int codv[][] = new int[20][20]; String Prodv[][] = new String[20][20]; double prev[][] = new double[20][20]; double parcialv[][] = new double[20][20]; int count[] = new int[20]; int cantotal[]=new int[20];

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

double parcialtotal[] =new double[20]; //Data clientes codc[0]=2010; codc[1]=2020; codc[2]=2030; codc[3]=2040; Cli[0]="Juan"; Cli[1]="Pedro"; Cli[2]="Ana"; Cli[3]="María"; Dis[0]="Lima"; Dis[1]="Breña"; Dis[2]="Lima"; Dis[3]="Surco"; //Data productos codp[0]=1020; codp[1]=1030; codp[2]=1040; codp[3]=1050; Prod[0]="Arroz"; Prod[1]="Leche"; Prod[2]="Azucar"; Prod[3]="Frejol"; prec[0]=2.60; prec[1]=3.40; prec[2]=2.90; prec[3]=4.60; //busqueda int num,num1,i,h=0,ii; int cant[][] = new int[10][10];

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

int jj[] = new int[10]; double pre=1.0; //String rpta="s"; String rpta1="s"; System.out.println("\t-----------------"); System.out.println("\tSistema de Ventas"); System.out.println("\t-----------------"); while (rpta1.equals("s")||rpta1.equals("S")){ System.out.println("*******************************"); System.out.println("\t Cliente "+(h+1)); System.out.println("*******************************"); System.out.print("Código:\t\t"); num=sc.nextInt(); for(i=0;i<4;i++){ if(num==codc[i]){ System.out.println("Nombre: \t"+Cli[i]); System.out.println("Distrito:\t"+Dis[i]); codigcv[h]=codc[i]; Clicv[h]=Cli[i]; Discv[h]=Dis[i]; h++; } } String rpta="s"; jj[h-1]=0; while(rpta.equals("s")||rpta.equals("S")){ System.out.println("---------------------------------"); System.out.println("PEDIDO \t"+(jj[h-1]+1)); System.out.println("---------------------------------"); System.out.print("Cod Pro:\t"); num1=sc.nextInt(); for(i=0;i<4;i++){ if(num1==codp[i]){ //pre=prec[i];

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

System.out.println("Producto: \t"+Prod[i]); System.out.println("Precio:\t\tS/."+prec[i]); codv[jj[h-1]][h-1]=codp[i]; Prodv[jj[h-1]][h-1]=Prod[i]; prev[jj[h-1]][h-1]=prec[i]; jj[h-1]++; } } System.out.print("Cantidad:\t"); cant[(jj[h-1]-1)][h-1]=sc.nextInt(); parcialv[jj[h-1]-1][h-1]=cant[jj[h-1]-1][h-1]*prev[jj[h-1]-1][h-1]*1.0; System.out.println("Parcial:\tS/."+parcialv[jj[h-1]-1][h-1]); System.out.print("Otro Prod:\t"); rpta=sc.next(); if(rpta.equals("N")||rpta.equals("n")){ count[h-1]=jj[h-1]; System.out.print("\n\n"); System.out.print("Otro Cliente:\t"); rpta1=sc.next(); System.out.print("\n\n"); } } } cantotal[0]=0; cantotal[1]=0; cantotal[2]=0; cantotal[3]=0; parcialtotal[0]=0; parcialtotal[1]=0; parcialtotal[2]=0; parcialtotal[3]=0; //IMPRIME CADA CLIENTE CON SUS RESPECTIVOS PRODUCTOS for(ii=0;ii<h;ii++){

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

System.out.println("************************************************************************"); System.out.println("\t\t\tBOLETA DE VENTA "+(ii+1)); System.out.println("************************************************************************"); System.out.println("Cod Cli:\t"+codigcv[ii]); System.out.println("Nombre:\t\t"+Clicv[ii]+"\t\tDistrito:\t"+Discv[ii]); System.out.println("------------------------------------------------------------------------"); System.out.println("Cod Prod\t"+"Producto\t"+"Cantidad\t"+"Precio\t\t"+"Parcial"); System.out.println("------------------------------------------------------------------------"); double total=0; for(i=0;i<count[ii];i++){ System.out.println(codv[i][ii]+"\t\t"+Prodv[i][ii]+"\t\t"+cant[i][ii]+"\t\tS/."+prev[i][ii]+"\t\tS/."+parcialv[i][ii]); total=total+parcialv[i][ii]; for(int mm=0;mm<4;mm++){ if(codv[i][ii]==codp[mm]){ cantotal[mm]=cantotal[mm]+cant[i][ii]; parcialtotal[mm]=parcialtotal[mm]+parcialv[i][ii]; } } } System.out.println("------------------------------------------------------------------------"); System.out.println("Total\t\t\t\t\t\t\t\tS/."+total); System.out.println("************************************************************************"); System.out.print("\n\n"); } //IMPRIME LISTA DE PRODUCTOS

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

System.out.println("************************************************************************"); System.out.println("\t\t\tRESUMEN DE VENTAS POR PRODUCTO "); System.out.println("************************************************************************"); System.out.println("------------------------------------------------------------------------"); System.out.println("Cod Prod\t"+"Producto\t"+"Cantidad\t"+"Precio\t\t"+"Total"); System.out.println("------------------------------------------------------------------------"); double totalg=0; for(i=0;i<4;i++){ if(cantotal[i]!=0){ System.out.println(codp[i]+"\t\t"+Prod[i]+"\t\t"+cantotal[i]+"\t\tS/."+prec[i]+"\t\tS/."+parcialtotal[i]); totalg=totalg+parcialtotal[i]; } } System.out.println("------------------------------------------------------------------------"); System.out.println("Total\t\t\t\t\t\t\t\tS/."+totalg); System.out.println("************************************************************************"); System.out.print("\n\n"); } }

Codificación:

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Salida:

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto

Algoritmo y Estructura de Datos en I.O. Resumen de ventas por producto