Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<cstring>
- #include <stdlib.h>
- #define IPRODUCTOS 50 // Productos Caracteristicas
- #define ITIENDA 10 // Productos para ingresar
- #define IPRODUCTOSVENDIDOS 10 // Productos vendidos
- using namespace std;
- struct unProducto //estructura para caracteristicas de las mercancias
- {
- char marca_prod[IPRODUCTOS]; // llamar por su numero asignado
- int cantidad; // ingresa cantidad de mercancias
- int precio; // ingresa precio de la mercancia
- int subtotal;
- };
- struct variosProductos //estructura para enumeracion y cuentas
- {
- int numProd; // asigna numero por mercancias
- int precioTotal; //conteo total de las ventas
- unProducto vp[IPRODUCTOSVENDIDOS]; //organiza mercancias por numero designado
- };
- struct Producto //estructura para ingresion de datos
- {
- char nombre[IPRODUCTOS]; //ingresar y almacenar nombre del producto
- int ID; //ingresar id para identificacion
- variosProductos P; //funcion para ejecutar el conteo de mercancias y caracteristicas
- };
- /*struct Producto //estructura para ingresion de datos
- {
- char nombre[IPRODUCTOS]; //ingresar y almacenar nombre del producto
- int ID; //ingresar id para identificacion
- struct variosProductos //estructura para enumeracion y cuentas
- {
- int numProd; // asigna numero por mercancias
- int precioTotal; //conteo total de las ventas
- struct unProducto //estructura para caracteristicas de las mercancias
- {
- char name_prod[IPRODUCTOS]; // llamar por su numero asignado
- int cantidad; // ingresa cantidad de mercancias
- int precio; // ingresa precio de la mercancia
- int subtotal;
- }vp[IPRODUCTOSVENDIDOS]; //organiza mercancias por numero designado
- }P; //funcion para ejecutar el conteo de mercancias y caracteristicas
- };*/
- struct Producto lista[ITIENDA] = {0}; // crea lista de productos
- struct Producto aux;
- static int indexLista = 0; // indica que no hay nada aun
- void registrar_productos(int index_lista, int np) //funcion para registrar productos
- {
- //static int index_vp = 0;
- //np += index_vp;
- for(int index_vp = 0; index_vp<np; index_vp++) //secuencia para almacenaje de datos en asendencia
- { cout<<"\n\tMercancia "<< index_vp+1 <<endl; //mensaje para orientacion del usuario para sus mercancias
- cin.ignore();
- cout<<"\n\t\tMarca : ";
- cin>>lista[index_lista].P.vp[index_vp].marca_prod;
- cout<<"\t\tCantidad : "; //ingresa y almacena cantidad de mercancias
- cin>> lista[index_lista].P.vp[index_vp].cantidad;
- cout<<"\t\tPrecio : "; //ingresa y almacena precio de la mercancia
- cin>> lista[index_lista].P.vp[index_vp].precio;
- 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
- if(lista[index_lista].P.vp[index_vp].subtotal==0)
- cout<<"Total 0";
- lista[index_lista].P.precioTotal = lista[index_lista].P.precioTotal + lista[index_lista].P.vp[index_vp].subtotal;
- }
- }
- // retorna numero de productos generales, si hay error -1
- int registrar_productos(int n){
- //int np ; //mercancias por producto
- //static int indexLista = 0;
- int i;
- bool sigaNombre, sigaID;
- sigaNombre = sigaID = false;
- n +=indexLista;
- while( indexLista<n ){
- cout<<"\nPRODUCTO "<< indexLista+1 << "\n";
- cin.ignore();
- do{
- cout << " Nombre : ";
- cin.getline( lista[indexLista].nombre, IPRODUCTOS );
- sigaNombre = false;
- for(int i = 0;i<indexLista;i++){
- if(strcmp(lista[i].nombre,lista[indexLista].nombre)==0){ // se repite
- cout<<"\nError: El producto"<<lista[indexLista].nombre<<" ya fue registrado"<<endl;
- memset(lista[indexLista].nombre,0,strlen(lista[indexLista].nombre)+1);
- sigaNombre = true;
- }
- }
- }while(sigaNombre);
- cin.ignore();
- do{
- cout << " ID : ";
- cin>> lista[indexLista].ID;
- sigaID = false;
- for(int i = 0;i<indexLista;i++){
- if(lista[indexLista].ID == lista[i].ID){ // se repite
- cout<<"Este ID : "<<lista[indexLista].ID<<" ya esta registrado"<<endl;
- sigaID = true;
- }
- }
- }while(sigaID);
- cout<<"\n > Numero de mercancias a ingresar: "; // son las diferentes marcas ingresadas de un producto?
- cin>> lista[indexLista].P.numProd;
- registrar_productos( indexLista ,lista[indexLista].P.numProd );
- indexLista++;
- }
- return indexLista; // limite de la Lista actualizado
- }
- void datosProducto(int x, int npg){
- if(npg>0){
- if(x<=npg-1){
- cout<<endl<<endl;
- cout << "\tProducto : " << lista[x].nombre <<endl;
- cout << "\tID : "<< lista[x].ID << endl;
- }else
- cout<<"\n\tRegistro inexistente..!";
- }
- else
- cout<<"\n\tAdvertencia: No hay Productos!"<<endl;
- }
- void prodProducto(int x, int npg){
- if(npg>0){
- if(x<=npg-1){
- cout<<endl<<endl;
- cout << " Productos de " << lista[x].nombre <<endl<<endl;
- for(int i=0; i<lista[x].P.numProd; i++){
- cout<<"\nProducto "<< i+1 <<endl;
- cout<<"\tNombre : " << lista[x].P.vp[i].marca_prod <<endl;
- cout<<"\tCantidad: " << lista[x].P.vp[i].cantidad <<endl;
- cout<<"\tPrecio : " << lista[x].P.vp[i].precio <<endl;
- cout<<"\tTotal: " << lista[x].P.vp[i].subtotal <<endl ;
- }
- cout<<endl;
- cout<<" Total de ventas: "<< lista[x].P.precioTotal;
- }
- else{
- cout<<"\nAdvertencia: ¡No hay mas productos!"<<endl;
- }
- }else
- cout<<"\n\tRegistro vacio..!";
- }
- void mostrar_nproductos(int indexLista){
- cout<<" Productos: \n\n";
- for(int index_vp=0; index_vp<lista[indexLista].P.numProd; index_vp++){
- cout<<"\t- " << lista[indexLista].P.vp[index_vp].marca_prod <<endl ;
- }
- }
- void mostrar_productos(int num){
- if( num>0){
- cout<<"\n\nMostrando lista de Productos\n";
- for(int indexLista=0; indexLista<num; indexLista++){
- cout<<endl<<endl;
- cout<< indexLista+1<<". "<< lista[indexLista].nombre <<endl;
- cout << " ID : "<< lista[indexLista].ID << endl;
- mostrar_nproductos( indexLista );
- cout<<endl;
- }
- }else
- cout<<"\n\tRegistro vacio..!";
- }
- void eliminar_producto(int index){
- if(indexLista!=0){
- if(index<=indexLista){
- for(int i=index; i<indexLista; i++)
- lista[i] = lista[i+1];
- indexLista--;
- }else
- cout<<"\n\t..Imposible eliminar, el producto no existe!";
- }
- else
- cout<<"\n\tNo hay productos"<<endl;
- }
- void buscar_producto( int num){
- int band = 0;
- if(num>0){
- for(int i=0; i<num; i++){
- if(lista[i].ID==aux.ID){
- cout<<"\n\n La direccion de "<<lista[i].nombre<<endl;
- band = 1 ;
- break;
- }
- }
- }else
- cout<<"\n\tSin registros vacio..!";
- if(band==0)
- cout<<"\n\n\tEl producto no existe..! :S"<<endl;
- }
- void menu1(){
- cout<<"+----------------------------------------------------+"<<endl;
- cout<<"| ***Bienvenido*** |"<<endl;
- cout<<"| Que funcion desea ejecutar? |"<<endl;
- cout<<"| 1. Registrar Productos |"<<endl;
- cout<<"| 2. Mostrar registro de productos y caracteristicas |"<<endl;
- cout<<"| 3. Mostrar datos de un producto |"<<endl; // da nombre e ID generales, segun un indice de Lista
- cout<<"| 4. Mostrar productos vendidos |"<<endl;
- cout<<"| 5. Eliminar producto |"<<endl;
- cout<<"| 6. Buscar ID de un producto |"<<endl;
- cout<<"| 7. Editar un producto |"<<endl;
- cout<<"| 8. Salir |"<<endl;
- cout<<"| ***Gracias por su preferencia*** |"<<endl;
- cout<<"+----------------------------------------------------+"<<endl;
- cout<<"\n Ingrese opcion :\n";
- }
- int main() //funciones
- {
- int num=0; // numero de productos ingresados en el momento
- int op; // opcion del menu
- int index_producto ; //opciones de productos
- int nProductosGenerales = 0;
- do{
- menu1();
- cin>> op;
- switch(op){
- case 1:
- cout<<"\n Numero de productos: ";
- cin>> num;
- nProductosGenerales = registrar_productos(num);
- cout<<endl;
- break;
- case 2:
- mostrar_productos(nProductosGenerales);
- break;
- case 3: // Retorna nombre e ID generales
- cout<<"\n Ingrese numero de producto: ";
- cin>> index_producto ;
- datosProducto( index_producto-1, nProductosGenerales); // num_producto es indice
- break;
- case 4:
- cout<<"\n Ingrese numero de producto: ";
- cin>> index_producto ;
- prodProducto( index_producto-1, nProductosGenerales);
- break;
- case 5:
- cout<<"\n Ingrese numero de producto: ";
- cin>> index_producto ;
- eliminar_producto( index_producto-1);
- cout<<"\n\n\t\tProducto eliminado ..!"<<endl;
- break;
- case 6:
- cout<<"\n Ingrese numero de ID: ";
- cin>> aux.ID;
- buscar_producto(num);
- break;
- case 7: // editar producto
- break;
- }
- cout<<endl<<endl;
- system("pause");
- system("cls");
- }while(op != 8);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement