Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
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