Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <process.h>
- #include <string.h>
- #include <stdlib.h>
- #include <string.h>
- #include <fstream>
- #include <conio.h>
- /* Aplicación de una estructura de datos tipo cola. Se define la clase
- Producto y una cola de objetos tipo Producto. Considerando que se
- quieren vender los productos de acuerdo al orden en el qque fueron
- comprados, se usó una cola para almacenarlos. La cola se actualiza a
- medida que se compran o se venden productos. */
- #include "header.h"
- using namespace std;
- /* Definición de la clase Producto. */
- class Producto
- {
- private:
- int Clave;
- char NomProd[64];
- double Precio;
- public:
- Producto();
- Producto(int, char[], double);
- double RegresaPrecio();
- friend istream &operator>>(istream &, Producto &);
- friend ostream &operator<<(ostream &, Producto &);
- };
- using namespace std;
- /* Declaración del método constructor por omisión. */
- Producto::Producto(){}
- /* Declaración del método constructor con parámetros. */
- Producto::Producto(int Cla, char NomP[], double Pre)
- {
- Clave=Cla;
- strcpy(NomProd, NomP);
- Precio=Pre;
- }
- /* Método que permite, a usuarios externos a la clase, conocer el valor
- del atributo privado Precio. */
- double Producto::RegresaPrecio()
- {
- return Precio;
- }
- /* Sobecarga del operador >>. De esta forma se permite leer objetos de
- tipo Producto de manera directa. */
- istream &operator>>(istream &Lee, Producto &ObjProd)
- {
- cout<<"\n\tIngrese clave del producto :\t";
- Lee>>ObjProd.Clave;
- cout<<"\n\tIngrese nombre del producto :\t ";
- Lee>>ObjProd.NomProd;
- cout<<"\n\tIngrese precio del producto :\t ";
- Lee>>ObjProd.Precio;
- return Lee;
- }
- /* Sobrecarga del operador <<. De esta forma se permite imprimir objetos
- de tipo Producto de manera directa. */
- ostream &operator<<(ostream &Escribe, Producto &ObjProd)
- {
- Escribe<<"\n\tDatos del producto Vendido\n";
- Escribe<<"\n\tClave :\t\t "<<ObjProd.Clave;
- Escribe<<"\n\tNombre :\t"<<ObjProd.NomProd;
- Escribe<<"\n\tPrecio :\t"<<ObjProd.Precio;
- return Escribe;
- }
- /* Función principal que lleva a cabo la aplicación descrita. Se crea
- una cola de objetos tipo Producto y la misma se va modificando a medida
- que se compran o se venden productos. El uso de una cola para guardar
- los productos facilita el cumplimiento de la condición impuesta para su
- venta: el primero que se compre será el primero que se venda. Al final
- de las transacciones se imprime el total de dinero recaudado con las
- ventas. */
- int main()
- {
- Cola<Producto> Deposito;
- Producto Prod;
- double Total = 0;
- int Opc;
- do {
- cout << "\n\n\tMenu - Gestion de productos\n";
- cout << "\n\t1- Compra de un producto - (insertar)";
- cout << "\n\t2- Venta de un producto - (eliminar)";
- cout << "\n\t3- Total de lo vendido";
- cout << "\n\t4- Salir\n";
- cout << "\n\tElija una opcion :\t";
- cin>>Opc;
- switch(Opc)
- {
- case 1:
- if(Deposito.ColaLlena() == 1)
- cout << "\n\tEl deposito se encuentra lleno !!!\n";
- else{
- cin >> Prod;
- Deposito + Prod;
- }
- break;
- case 2:
- if(Deposito - &Prod)
- {
- cout << Prod;
- Total = Total+Prod.RegresaPrecio();
- }
- else
- cout<<"\n\tNo se encuentran productos en el deposito !!!\n";
- break;
- case 3:
- cout<<"\n\tTotal vendidos: "<<Total<<endl;
- break;
- case 4:
- break;
- default:
- cout << "\n\tOpcion invalida, elija otra opcion !!!\n";
- }
- }while(Opc != 4);
- }
Add Comment
Please, Sign In to add comment