Advertisement
lukhavi

PuntoDeVentaMuyBasico

Nov 5th, 2019
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.09 KB | None | 0 0
  1. #include <iostream>
  2. #include<cstring>
  3. #include <stdlib.h>
  4.  
  5. #define IPRODUCTOS          50                  // Productos Caracteristicas
  6. #define ITIENDA             10                  // Productos para ingresar
  7. #define IPRODUCTOSVENDIDOS  10                  // Productos vendidos
  8.  
  9. using namespace std;
  10.  
  11. struct unProducto                               //estructura para caracteristicas de las mercancias
  12. {
  13.     char marca_prod[IPRODUCTOS];                // llamar por su numero asignado
  14.     int cantidad;                               // ingresa cantidad de mercancias
  15.     int precio;                                 // ingresa precio de la mercancia
  16.     int subtotal;
  17. };
  18.  
  19. struct variosProductos                          //estructura para enumeracion y cuentas
  20. {
  21.     int numProd;                                // asigna numero por mercancias
  22.     int precioTotal;                            //conteo total de las ventas
  23.     unProducto vp[IPRODUCTOSVENDIDOS];          //organiza mercancias por numero designado
  24. };
  25.  
  26. struct Producto                                 //estructura para ingresion de datos
  27. {
  28.     char nombre[IPRODUCTOS];                    //ingresar y almacenar nombre del producto
  29.     int ID;                                     //ingresar id para identificacion
  30.     variosProductos P;                          //funcion para ejecutar el conteo de mercancias y caracteristicas
  31. };
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. /*struct Producto                           //estructura para ingresion de datos
  39. {
  40.     char nombre[IPRODUCTOS];                //ingresar y almacenar nombre del producto
  41.     int ID;                                 //ingresar id para identificacion
  42.     struct variosProductos                  //estructura para enumeracion y cuentas
  43.     {
  44.         int numProd;                        // asigna numero por mercancias
  45.         int precioTotal;                    //conteo total de las ventas
  46.         struct unProducto                   //estructura para caracteristicas de las mercancias
  47.         {
  48.             char name_prod[IPRODUCTOS];     // llamar por su numero asignado
  49.             int cantidad;                   // ingresa cantidad de mercancias
  50.             int precio;                     // ingresa precio de la mercancia
  51.             int subtotal;
  52.         }vp[IPRODUCTOSVENDIDOS];            //organiza mercancias por numero designado
  53.     }P;                                     //funcion para ejecutar el conteo de mercancias y caracteristicas
  54. };*/
  55.  
  56.  
  57.  
  58.  
  59.  
  60. struct Producto lista[ITIENDA] = {0};                           // crea lista de productos
  61. struct Producto aux;
  62. static int indexLista = 0;                                      // indica que no hay nada aun
  63.  
  64. void registrar_productos(int index_lista, int np)               //funcion para registrar productos
  65. {
  66.     //static int index_vp = 0;
  67.     //np += index_vp;
  68.     for(int index_vp = 0; index_vp<np; index_vp++)                  //secuencia para almacenaje de datos en asendencia
  69.     {   cout<<"\n\tMercancia "<< index_vp+1 <<endl;             //mensaje para orientacion del usuario para sus mercancias
  70.         cin.ignore();
  71.         cout<<"\n\t\tMarca : ";
  72.         cin>>lista[index_lista].P.vp[index_vp].marca_prod;
  73.         cout<<"\t\tCantidad : ";                                //ingresa y almacena cantidad de mercancias
  74.         cin>> lista[index_lista].P.vp[index_vp].cantidad;
  75.         cout<<"\t\tPrecio : ";                                  //ingresa y almacena precio de la mercancia
  76.         cin>> lista[index_lista].P.vp[index_vp].precio;
  77.         lista[index_lista].P.vp[index_vp].subtotal = lista[index_lista].P.vp[index_vp].cantidad * lista[index_lista].P.vp[index_vp].precio; //imprime el total de mercancias y su precio
  78.  
  79.         if(lista[index_lista].P.vp[index_vp].subtotal==0)
  80.             cout<<"Total 0";
  81.         lista[index_lista].P.precioTotal = lista[index_lista].P.precioTotal + lista[index_lista].P.vp[index_vp].subtotal;
  82.     }
  83. }
  84. // retorna numero de productos generales, si hay error -1
  85. int registrar_productos(int n){
  86.  
  87. //int np ;                                                      //mercancias por producto
  88.     //static int indexLista = 0;
  89.     int i;
  90.     bool sigaNombre, sigaID;
  91.     sigaNombre = sigaID = false;
  92.     n +=indexLista;
  93.     while( indexLista<n ){
  94.         cout<<"\nPRODUCTO "<< indexLista+1 << "\n";
  95.         cin.ignore();
  96.             do{
  97.                 cout << " Nombre : ";
  98.                 cin.getline( lista[indexLista].nombre, IPRODUCTOS );
  99.                 sigaNombre = false;
  100.                 for(int i = 0;i<indexLista;i++){
  101.                     if(strcmp(lista[i].nombre,lista[indexLista].nombre)==0){    // se repite
  102.                         cout<<"\nError: El producto"<<lista[indexLista].nombre<<" ya fue registrado"<<endl;
  103.                         memset(lista[indexLista].nombre,0,strlen(lista[indexLista].nombre)+1);
  104.                         sigaNombre = true;
  105.                     }
  106.                 }
  107.             }while(sigaNombre);
  108.        
  109.         cin.ignore();
  110.            
  111.             do{
  112.                 cout << " ID : ";
  113.                 cin>> lista[indexLista].ID;
  114.                 sigaID = false;
  115.                 for(int i = 0;i<indexLista;i++){
  116.                     if(lista[indexLista].ID == lista[i].ID){    // se repite
  117.                         cout<<"Este ID : "<<lista[indexLista].ID<<" ya esta registrado"<<endl;
  118.                         sigaID = true;
  119.                     }
  120.                 }
  121.             }while(sigaID);
  122.        
  123.         cout<<"\n > Numero de mercancias a ingresar: ";         // son las diferentes marcas ingresadas de un producto?
  124.         cin>> lista[indexLista].P.numProd;
  125.         registrar_productos( indexLista ,lista[indexLista].P.numProd );
  126.        
  127.         indexLista++;
  128.     }
  129.     return indexLista;      // limite de la Lista actualizado
  130. }
  131.  
  132. void datosProducto(int x, int npg){
  133.  
  134.     if(npg>0){
  135.         if(x<=npg-1){
  136.             cout<<endl<<endl;
  137.             cout << "\tProducto : " << lista[x].nombre <<endl;
  138.             cout << "\tID : "<< lista[x].ID << endl;
  139.         }else
  140.             cout<<"\n\tRegistro inexistente..!";
  141.     }
  142.     else
  143.         cout<<"\n\tAdvertencia: No hay Productos!"<<endl;
  144. }
  145.  
  146. void prodProducto(int x, int npg){
  147.  
  148.     if(npg>0){
  149.         if(x<=npg-1){
  150.             cout<<endl<<endl;
  151.             cout << " Productos de " << lista[x].nombre <<endl<<endl;
  152.        
  153.             for(int i=0; i<lista[x].P.numProd; i++){
  154.                 cout<<"\nProducto "<< i+1 <<endl;
  155.                 cout<<"\tNombre : " << lista[x].P.vp[i].marca_prod <<endl; 
  156.                 cout<<"\tCantidad: " << lista[x].P.vp[i].cantidad <<endl;
  157.                 cout<<"\tPrecio : " << lista[x].P.vp[i].precio <<endl;
  158.                 cout<<"\tTotal: " << lista[x].P.vp[i].subtotal <<endl ;
  159.             }
  160.    
  161.             cout<<endl;
  162.             cout<<" Total de ventas: "<< lista[x].P.precioTotal;
  163.         }
  164.         else{
  165.             cout<<"\nAdvertencia: ¡No hay mas productos!"<<endl;
  166.         }
  167.     }else
  168.         cout<<"\n\tRegistro vacio..!";
  169. }
  170.  
  171. void mostrar_nproductos(int indexLista){
  172.  
  173.     cout<<" Productos: \n\n";
  174.  
  175.     for(int index_vp=0; index_vp<lista[indexLista].P.numProd; index_vp++){
  176.         cout<<"\t- " << lista[indexLista].P.vp[index_vp].marca_prod <<endl ;
  177.     }
  178. }
  179.  
  180. void mostrar_productos(int num){
  181.  
  182.     if( num>0){
  183.         cout<<"\n\nMostrando lista de Productos\n";
  184.  
  185.         for(int indexLista=0; indexLista<num; indexLista++){
  186.             cout<<endl<<endl;
  187.             cout<< indexLista+1<<". "<< lista[indexLista].nombre <<endl;
  188.             cout << " ID : "<< lista[indexLista].ID << endl;
  189.             mostrar_nproductos( indexLista );
  190.             cout<<endl;
  191.         }
  192.     }else
  193.         cout<<"\n\tRegistro vacio..!";
  194. }
  195.  
  196. void eliminar_producto(int index){
  197.     if(indexLista!=0){
  198.         if(index<=indexLista){
  199.             for(int i=index; i<indexLista; i++)
  200.                 lista[i] = lista[i+1];
  201.                 indexLista--;
  202.         }else
  203.         cout<<"\n\t..Imposible eliminar, el producto no existe!";
  204.     }
  205.     else
  206.         cout<<"\n\tNo hay productos"<<endl;
  207. }
  208.  
  209. void buscar_producto( int num){
  210.  
  211. int band = 0;
  212.  
  213.     if(num>0){
  214.         for(int i=0; i<num; i++){
  215.             if(lista[i].ID==aux.ID){
  216.                 cout<<"\n\n La direccion de "<<lista[i].nombre<<endl;  
  217.                 band = 1 ;
  218.                 break;
  219.             }
  220.         }
  221.     }else
  222.         cout<<"\n\tSin registros vacio..!";
  223.  
  224.     if(band==0)
  225.         cout<<"\n\n\tEl producto no existe..! :S"<<endl;
  226. }
  227.  
  228. void menu1(){
  229.  
  230.     cout<<"+----------------------------------------------------+"<<endl;
  231.     cout<<"|                   ***Bienvenido***                 |"<<endl;
  232.     cout<<"| Que funcion desea ejecutar?                        |"<<endl;
  233.     cout<<"| 1. Registrar Productos                             |"<<endl;
  234.     cout<<"| 2. Mostrar registro de productos y caracteristicas |"<<endl;
  235.     cout<<"| 3. Mostrar datos de un producto                    |"<<endl;   // da nombre e ID generales, segun un indice de Lista
  236.     cout<<"| 4. Mostrar productos vendidos                      |"<<endl;
  237.     cout<<"| 5. Eliminar producto                               |"<<endl;
  238.     cout<<"| 6. Buscar ID de un producto                        |"<<endl;
  239.     cout<<"| 7. Editar un producto                              |"<<endl;
  240.     cout<<"| 8. Salir                                           |"<<endl;
  241.     cout<<"|           ***Gracias por su preferencia***         |"<<endl;
  242.     cout<<"+----------------------------------------------------+"<<endl;
  243.    
  244.     cout<<"\n Ingrese opcion :\n";
  245. }
  246.  
  247. int main() //funciones
  248. {
  249.  
  250. int num=0;              // numero de productos ingresados en el momento
  251. int op;                 // opcion del menu
  252. int index_producto ;    //opciones de productos
  253. int nProductosGenerales = 0;
  254.  
  255.     do{
  256.         menu1();
  257.         cin>> op;
  258.        
  259.         switch(op){
  260.             case 1:
  261.                 cout<<"\n Numero de productos: ";
  262.                 cin>> num;
  263.                 nProductosGenerales = registrar_productos(num);
  264.                 cout<<endl;
  265.                 break;
  266.             case 2:
  267.                 mostrar_productos(nProductosGenerales);
  268.                 break;
  269.             case 3:                                         // Retorna nombre e ID generales
  270.                 cout<<"\n Ingrese numero de producto: ";   
  271.                 cin>> index_producto ;
  272.                 datosProducto( index_producto-1, nProductosGenerales);      // num_producto es indice  
  273.                 break;
  274.             case 4:
  275.                 cout<<"\n Ingrese numero de producto: ";
  276.                 cin>> index_producto ;
  277.                 prodProducto( index_producto-1, nProductosGenerales);
  278.                 break;
  279.             case 5:
  280.                 cout<<"\n Ingrese numero de producto: ";
  281.                 cin>> index_producto ;
  282.                 eliminar_producto( index_producto-1);
  283.                 cout<<"\n\n\t\tProducto eliminado ..!"<<endl;
  284.                 break;
  285.             case 6:
  286.                 cout<<"\n Ingrese numero de ID: ";
  287.                 cin>> aux.ID;
  288.                 buscar_producto(num);
  289.                 break;
  290.             case 7: // editar producto
  291.                
  292.                 break;
  293.         }
  294.  
  295.         cout<<endl<<endl;
  296.         system("pause");
  297.         system("cls");
  298.     }while(op != 8);
  299.  
  300. return 0;
  301. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement