Guest User

main.cpp

a guest
Oct 16th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <process.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <fstream>
  8. #include <conio.h>
  9. /* Aplicación de una estructura de datos tipo cola. Se define la clase
  10. Producto y una cola de objetos tipo Producto. Considerando que se
  11. quieren vender los productos de acuerdo al orden en el qque fueron
  12. comprados, se usó una cola para almacenarlos. La cola se actualiza a
  13. medida que se compran o se venden productos. */
  14. #include "header.h"
  15.  
  16. using namespace std;
  17.  
  18. /* Definición de la clase Producto. */
  19. class Producto
  20. {
  21.     private:
  22.         int Clave;
  23.         char NomProd[64];
  24.         double Precio;
  25.     public:
  26.         Producto();
  27.         Producto(int, char[], double);
  28.         double RegresaPrecio();
  29.         friend istream &operator>>(istream &, Producto &);
  30.         friend ostream &operator<<(ostream &, Producto &);
  31. };
  32.  
  33. using namespace std;
  34.  
  35. /* Declaración del método constructor por omisión. */
  36. Producto::Producto(){}
  37.  
  38. /* Declaración del método constructor con parámetros. */
  39. Producto::Producto(int Cla, char NomP[], double Pre)
  40. {
  41.     Clave=Cla;
  42.     strcpy(NomProd, NomP);
  43.     Precio=Pre;
  44. }
  45.  
  46. /* Método que permite, a usuarios externos a la clase, conocer el valor
  47. del atributo privado Precio. */
  48. double Producto::RegresaPrecio()
  49. {
  50.     return Precio;
  51. }
  52.  
  53. /* Sobecarga del operador >>. De esta forma se permite leer objetos de
  54. tipo Producto de manera directa. */
  55. istream &operator>>(istream &Lee, Producto &ObjProd)
  56. {
  57.     cout<<"\n\tIngrese clave del producto :\t";
  58.     Lee>>ObjProd.Clave;
  59.     cout<<"\n\tIngrese nombre del producto :\t ";
  60.     Lee>>ObjProd.NomProd;
  61.     cout<<"\n\tIngrese precio del producto :\t ";
  62.     Lee>>ObjProd.Precio;
  63.     return Lee;
  64. }
  65.  
  66. /* Sobrecarga del operador <<. De esta forma se permite imprimir objetos
  67. de tipo Producto de manera directa. */
  68. ostream &operator<<(ostream &Escribe, Producto &ObjProd)
  69. {
  70.     Escribe<<"\n\tDatos del producto Vendido\n";
  71.     Escribe<<"\n\tClave :\t\t "<<ObjProd.Clave;
  72.     Escribe<<"\n\tNombre :\t"<<ObjProd.NomProd;
  73.     Escribe<<"\n\tPrecio :\t"<<ObjProd.Precio;
  74.     return Escribe;
  75. }
  76.  
  77. /* Función principal que lleva a cabo la aplicación descrita. Se crea
  78. una cola de objetos tipo Producto y la misma se va modificando a medida
  79. que se compran o se venden productos. El uso de una cola para guardar
  80. los productos facilita el cumplimiento de la condición impuesta para su
  81. venta: el primero que se compre será el primero que se venda. Al final
  82. de las transacciones se imprime el total de dinero recaudado con las
  83. ventas. */
  84. int main()
  85. {
  86.     Cola<Producto> Deposito;
  87.     Producto Prod;
  88.     double Total = 0;
  89.     int Opc;
  90.  
  91.     do {
  92.         cout << "\n\n\tMenu - Gestion de productos\n";
  93.         cout << "\n\t1- Compra de un producto - (insertar)";
  94.         cout << "\n\t2- Venta de un producto - (eliminar)";
  95.         cout << "\n\t3- Total de lo vendido";
  96.         cout << "\n\t4- Salir\n";
  97.         cout << "\n\tElija una opcion :\t";
  98.         cin>>Opc;
  99.  
  100.         switch(Opc)
  101.         {
  102.             case 1:
  103.                 if(Deposito.ColaLlena() == 1)
  104.                     cout << "\n\tEl deposito se encuentra lleno !!!\n";
  105.                     else{
  106.                         cin >> Prod;
  107.                         Deposito + Prod;
  108.                     }
  109.                 break;
  110.             case 2:
  111.                 if(Deposito - &Prod)
  112.                 {
  113.                     cout << Prod;
  114.                     Total = Total+Prod.RegresaPrecio();
  115.                 }
  116.                 else
  117.                     cout<<"\n\tNo se encuentran productos en el deposito !!!\n";
  118.                 break;
  119.             case 3:
  120.                 cout<<"\n\tTotal vendidos: "<<Total<<endl;
  121.                 break;
  122.             case 4:
  123.                 break;
  124.             default:
  125.                 cout << "\n\tOpcion invalida, elija otra opcion !!!\n";
  126.         }
  127.  
  128.     }while(Opc != 4);
  129. }
Add Comment
Please, Sign In to add comment