Autor
|
Tema: Pregunta básica sobre POO (Leído 2,499 veces)
|
matver
Desconectado
Mensajes: 34
|
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
Mensajes: 34
|
Aquí algo del código; #include <math.h> #include <iostream> using namespace std; class ventas{ float montoventa; float producto; float cantidadkg; public: void ventas::asignar_val(float a, float b, float c){ montoventa= a; producto= b; cantidadkg=c; } }; int main (){ int a; float b; float c; float total; ventas obj_venta; cout<<"Ingrese monto de la venta"<<endl; cin>>a; cout <<"Ingrese tipo de producto:"<<endl; cin>>b; cout <<"Ingrese cantidad en kg:"<<endl; cin>>c; obj_venta.asignar_val(a,b,c); cout<<"final ingreso de datos\n" <<endl; system ("pause"); }
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
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
Mensajes: 34
|
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 #include <math.h> #include <iostream> using namespace std; class ventas{ float producto; float montoventa; float cantidadkg; public: void asignar_val(float a, float b, float c){ producto= a; montoventa= b; cantidadkg=c; } }; int main (){ int a; float b; float c; int contadorpapas =0,acumupapa=0; int contadorlechuga=0,acumulechuga=0; int contadormanzanas=0,acumumanzanas=0; int clave=1234; float total; cout<<"Ingrese 1234 para entrar:"<<endl; cin>>clave; while (clave==1234){ ventas obj_venta; cout<<"Tipo de producto"<<endl; cin>>a; cout <<"Ingrese monto venta:"<<endl; cin>>b; cout <<"Ingrese cantidad en kg:"<<endl; cin>>c; cout<<"para salir digite 1, para seguir digite 1234:"<<endl; cin>>clave; obj_venta.asignar_val(a,b,c); if ( a= 1){ contadorpapas++; acumupapa=acumupapa+b; } if ( a = 2){ contadorlechuga++; acumulechuga+acumulechuga+b; } if (a=3){ contadormanzanas++; acumumanzanas=acumumanzanas+b; } } cout <<"cantidad de ventas papas:"<<contadorpapas<<endl; cout <<"Monto total venta papas:"<<acumupapa<<endl; system("pause"); }
|
|
« Última modificación: 14 Agosto 2017, 00:21 am por matver »
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
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: vector<Venta> ventas; // Yo cambiaría el nombre de la clase a singular Venta nuevaVenta; // Asignar datos a nuevaVenta ventas.push_back(nuevaVenta); for(int i=0; i<ventas.size(); i++){ cout << ventas[i].getProducto() << endl; // Recuerda hacer getters }
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pregunta muy basica
Java
|
Xedrox
|
3
|
2,555
|
7 Julio 2011, 03:39 am
por Xedrox
|
|
|
pregunta basica sobre Backtrack
Hacking Wireless
|
gragus
|
1
|
2,220
|
4 Octubre 2011, 12:40 pm
por pianista
|
|
|
Pregunta basica sobre Kill
Programación Visual Basic
|
CAR3S?
|
2
|
1,748
|
12 Octubre 2011, 00:10 am
por CAR3S?
|
|
|
una pregunta muy basica
.NET (C#, VB.NET, ASP)
|
taul
|
2
|
1,862
|
7 Julio 2013, 17:59 pm
por taul
|
|
|
Pregunta básica sobre actualización de BIOS
« 1 2 3 »
Hardware
|
Eleкtro
|
23
|
14,183
|
18 Junio 2017, 17:11 pm
por Serapis
|
|