elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Pregunta básica sobre POO
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta básica sobre POO  (Leído 2,469 veces)
matver

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Pregunta básica sobre POO
« en: 13 Agosto 2017, 20:47 pm »

Mediante programación estructurada a este problema si pude resolverlo y me gustó la solución pero quiero resolver el mismo problema ahora mediante POO y tengo la siguiente duda: El problema es: En un local de ventas de frutas y verduras  por cada venta se tiene como dato:  el producto que se vendió, la cantidad vendida, y el monto de la venta.Y quiero saber cantidad de ventas realizadas, monto total de las ventas. Pienso resolverlo de la siguiente manera:Crear una clase llamada Venta con atributos: producto, cantidad, precio y luego un método para asignar valor a las variables, acumular las ventas y contar las ventas. Quiero saber si estoy bien orientado en la estructura de la solución.


« Última modificación: 13 Agosto 2017, 20:56 pm por matver » En línea

matver

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Pregunta básica sobre POO
« Respuesta #1 en: 13 Agosto 2017, 21:14 pm »

Aquí algo del código;
Código
  1. #include <math.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5. class ventas{
  6.     float montoventa;
  7.     float producto;
  8.     float cantidadkg;
  9.     public:
  10.            void ventas::asignar_val(float a, float b, float c){
  11.                 montoventa= a;
  12.                 producto= b;
  13.                 cantidadkg=c;
  14.                 }
  15.  
  16. };
  17.  
  18.      int main (){
  19.          int a;
  20.          float b;
  21.          float c;
  22.          float total;
  23.  
  24.          ventas obj_venta;
  25.          cout<<"Ingrese monto de la venta"<<endl;
  26.          cin>>a;
  27.         cout <<"Ingrese tipo de producto:"<<endl;
  28.         cin>>b;
  29.         cout <<"Ingrese cantidad en kg:"<<endl;
  30.         cin>>c;
  31.  
  32. obj_venta.asignar_val(a,b,c);
  33. cout<<"final ingreso de datos\n" <<endl;
  34. system ("pause");
  35. }
  36.  


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Pregunta básica sobre POO
« Respuesta #2 en: 13 Agosto 2017, 23:31 pm »

Si solo es 1 venta, está bien.

Para hacer varias ventas, un vector de ventas podría servir.
Hazlo como creas (el problema completo), postealo de nuevo y vemos :p

Y por cierto, dentro de la clase no hace falta que pongas el "ventas::" antes de una función.
En línea

matver

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Re: Pregunta básica sobre POO
« Respuesta #3 en: 14 Agosto 2017, 00:14 am »

Ivan: Me gustaría que me cuestes un poco como utilizarías un arreglo  porque a mi me fue muy mal usando arreglos y no se usarlos todavia. Te pido que me cuentes si es posible como utilizarías tu un arreglo en este problema. Con respecto al problema creo que lo resolvi con lo que la POO tiene de programacion estructurada veras:
Como resolví esta vez puedo saber la cantidad de ventas por productos, y el monto total de las ventas por productos. 1 es papa, 2 lechugas , 3 manzanas. La pregunta es si esta soculión es aceptable teniendo en cuenta el paradigma POO. GRacias
Código
  1. #include <math.h>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5. class ventas{
  6.     float producto;
  7.     float montoventa;
  8.     float cantidadkg;
  9.  
  10.     public:
  11.            void asignar_val(float a, float b, float c){
  12.                 producto= a;
  13.                 montoventa= b;
  14.                 cantidadkg=c;
  15.                 }
  16.  
  17. };
  18.  
  19.      int main (){
  20.          int a;
  21.          float b;
  22.          float c;
  23.         int contadorpapas =0,acumupapa=0;  
  24.         int contadorlechuga=0,acumulechuga=0;
  25.         int contadormanzanas=0,acumumanzanas=0;
  26.         int clave=1234;
  27.          float total;
  28.  
  29.          cout<<"Ingrese 1234 para entrar:"<<endl;
  30.          cin>>clave;
  31.          while (clave==1234){
  32.          ventas obj_venta;
  33.  
  34.          cout<<"Tipo de producto"<<endl;
  35. cin>>a;
  36. cout <<"Ingrese monto venta:"<<endl;
  37. cin>>b;
  38. cout <<"Ingrese cantidad en kg:"<<endl;
  39. cin>>c;
  40. cout<<"para salir digite 1, para seguir digite 1234:"<<endl;
  41.          cin>>clave;
  42. obj_venta.asignar_val(a,b,c);
  43.  
  44. if ( a= 1){
  45.    contadorpapas++;
  46.    acumupapa=acumupapa+b;
  47. }
  48. if ( a = 2){
  49.   contadorlechuga++;
  50.   acumulechuga+acumulechuga+b;
  51.  
  52.   }
  53.   if (a=3){
  54.    contadormanzanas++;
  55.    acumumanzanas=acumumanzanas+b;
  56.            }
  57.  
  58. }
  59. cout <<"cantidad de ventas papas:"<<contadorpapas<<endl;
  60. cout <<"Monto total venta papas:"<<acumupapa<<endl;
  61. system("pause");
  62. }
  63.  
  64.  
« Última modificación: 14 Agosto 2017, 00:21 am por matver » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Pregunta básica sobre POO
« Respuesta #4 en: 14 Agosto 2017, 00:46 am »

No le estás dando ningún uso a obj_venta. Podrías quitarlo y todo iría igual.

Tu solución al problema es correcta. De todos modos, el problema es un pocoe scaso. Te propongo lo del array. El tema del array serviría para saber cuantas ventas individuales se han hecho. Así harías uso de tu clase y, por qué no, de la clase "vector", por ejemplo.

La clase vector no sé si la usaste, en cualquier caso,e s muy simple. Es un array redimensionable:

Código
  1. vector<Venta> ventas; // Yo cambiaría el nombre de la clase a singular
  2. Venta nuevaVenta;
  3. // Asignar datos a nuevaVenta
  4.  
  5. ventas.push_back(nuevaVenta);
  6.  
  7. for(int i=0; i<ventas.size(); i++){
  8.    cout << ventas[i].getProducto() << endl; // Recuerda hacer getters
  9. }

Luego, si quieres ver cuantos hay de cada, tendrías que recorrer el array sumando. Es cierto que es más eficiente del modo que lo tienes hecho, con variables separadas, pero esto da más juego, ya que estás con POO. (También puedes mantener las variables de cuenta)

En cualquier caso, la razón de POO es esa, servir cuando se la necesita. En el código que diste ahora, no se la necesita.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pregunta muy basica
Java
Xedrox 3 2,539 Último mensaje 7 Julio 2011, 03:39 am
por Xedrox
pregunta basica sobre Backtrack
Hacking Wireless
gragus 1 2,196 Último mensaje 4 Octubre 2011, 12:40 pm
por pianista
Pregunta basica sobre Kill
Programación Visual Basic
CAR3S? 2 1,736 Último mensaje 12 Octubre 2011, 00:10 am
por CAR3S?
una pregunta muy basica
.NET (C#, VB.NET, ASP)
taul 2 1,850 Último mensaje 7 Julio 2013, 17:59 pm
por taul
Pregunta básica sobre actualización de BIOS « 1 2 3 »
Hardware
Eleкtro 23 13,993 Último mensaje 18 Junio 2017, 17:11 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines