Dev - C++ - ayuda con un programa basico

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por santiago peñaranda (4 intervenciones) el 10/10/2019 03:55:08
buenas a todos, mi problema es que estoy haciendo un programa para unatarea del colegio, los voy a poner en contexto, el programa tiene que hacer lo siguiente: En el supermercado x, hay 3 departamentos (de ropa, comestibles y
perfumería), en los cuales se realizan un descuento de 5%, 3.5% y 8% respectivamente, por las compras
totales mayores de $100.000. Diseñe un programa que, dado el monto de la compra, realice los
descuentos pertinentes por departamento, le indique al usuario a cuánto asciende su nuevo monto e
indique, cuanto fue lo recaudado al final del día, debe dar la opción de seguir con nuevo cliente o salir del
programa con una letra, debe de tener excelente presentación y dialogo bien organizado dentro de la
pantalla.
entoces, hasta ahorita lo voy empezando, y pues soy nuebo en esto de programar, asi que necesito algo de ayuda, aqui les mando el poco codigo que he escrito.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>
#include<conio.h>
 
using namespace std;
 
int main () {
 
	int acomulado=0, vropa, opciones =0,rdescuento =0;
	char nombre [30],sn;
 
	cout<<"vien venido a la tienda esta de mkghjkhjierdghjgkkghjkhja"<<endl;
	cout<<"por favor introdusca su nombre"<<endl;
	cin>> nombre;
	cout<<"por favor introduzca una opcion"<<endl;
	cin>> opciones;
 
	switch (opciones)
	case 1 :
	{
	cout<<""<<endl;
	cout<<"escogio ropa"<<endl;
	cout<<"este producto tiene un descuento del 5%"<<endl;
	cout<<"por favor introduzca el precio de la prenda que desea comrpar."<<endl;
	cin>> vropa;
	cout<<""<<endl;
	cout<<"el valor que introdujo es "<<vropa<<", no podra campiar este valor mas tarde, ¿desea continuar?"<<endl;
	cout<<""<<endl;
	cout<<"si desea volver a introducir el precio escriba '1' si queire continuar escriba '2' "<<endl;
	cin>> sn;
 
 
	while (sn >=1 )
	{
 
		cout<<"repetir"<<endl;
		vropa=0;
		cout<<"introduzca el nuevo valor del producto"<<endl;
		cin>> vropa;
		cout<<"desea volver a corregir el digito? si sale de esta opcion, no pdora volver atras, para salir escriba '2', para vovler a corregir, escriba '1'.''"<<endl;
		cin>> sn;
		if (sn =2)
		{
			sn++;
		}
		else
		{
		cout<<"repetir"<<endl;
		vropa=0;
		cout<<"introduzca el nuevo valor del producto"<<endl;
		cin>> vropa;
		cout<<"desea volver a corregir el digito? si sale de esta opcion, no pdora volver atras, para salir escriba '2', para vovler a corregir, escriba '1'.''"<<endl;
		cin>> sn;
		}
 
}
 
}
 
}

entonces lo que quiero es que si digamos alguien se equivoca metiendo un valor de algun producto, (en este caso la ropa) pues que lo deje corregir y que cuando el usuario decida que ya esta corregido pues que continue con el resto del programa, pero lo que pasa es que se queda en un bucle infinito y no logro la forma de hacer de que cuando ya decido que el valor esta corregido, pues que continue, he intentado de muchas formas las cuales que me ocurrian pero no funcionan como yo esperaba jajaja, entoces, si alguien me puede ayudar a hacer lo anteriormente dicho y de paso explicarme seria de bastante ayuda, graciaaaaaaaaaaaaaaaas (perdon por la mala ortografia, ando de afan xD)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por Rodrigo (539 intervenciones) el 10/10/2019 04:27:24
Se compara con == no con =
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por santiago peñaranda (4 intervenciones) el 10/10/2019 05:03:50
holaaa rodrigo, gracias por tu ayuda, ya mismo lo corrigo, es que soy nuevo, perdon por mi ignorancia.
alguna otra correccion que tenga que hacer?
tambien se me ocurre meter el while en un if, ya que si le digo que quiero continuar aun asi sigue con el while, eso se puede hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por Alfil (1444 intervenciones) el 10/10/2019 07:57:32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cctype>
 
using namespace std;
 
int main()
{
    char opcion;
    float ropa, comestible, perfumeria, descuento, totalCliente, recaudacion = 0.0f;
 
    do{
        descuento = 0.0f;
        totalCliente = 0.0f;
        cout << "\nNuevo cliente:\n";
        cout << "\nImporte en Ropa: "; cin >> ropa;
        cout << "Importe en Comestibles: "; cin >> comestible;
        cout << "Importe en Perfumeria: "; cin >> perfumeria;
 
        totalCliente = ropa + comestible + perfumeria;
 
        if( ropa > 100000 )
            descuento += ropa * 0.05;
        if( comestible > 100000 )
            descuento += comestible * 0.035;
        if( perfumeria > 100000 )
            descuento += perfumeria * 0.08;
 
        cout << "\nTotal bruto: " << totalCliente
             << "\nDescuento: " << descuento
             << "\nA Pagar: " << totalCliente - descuento
             << endl;
 
        recaudacion += totalCliente - descuento;
 
        cout << "\n\nNuevo Cliente (S/n): "; cin >> opcion;
        opcion = toupper( opcion );
 
    }while( opcion == 'S' );
 
    cout << "\nRecaudación del supermercado: " << recaudacion << endl;
 
    return 0;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por santiago peñaranda (4 intervenciones) el 10/10/2019 20:53:22
wow, muchas gracias Alfil, me va a ser de mucha ayuda, excelente servicio, una pregunta, para que se pone esto " descuento = 0.0f;" o sea, para que se iguala descuento a 0.0f?
pero,necesito que el usuario escoja entre los tres productos, funcionaria si meto cada proceso en un switch?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por Alfil (1444 intervenciones) el 10/10/2019 21:07:11
El descuento debe ser inicializado a 0 antes de ser utilizado, tratándose de un float la inicialización 0.0f indica que debe almacenar el valor como un float.

Si no fuera inicializado previamente al ejecutar descuento += comestible * 0.035; generaría un resultado inesperado, ya que el valor de descuento en ese momento sería indeterminado.

Para que el usuario seleccione la opción a utilizar debes crear un menú y un switch - case que recoja la opción elegida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

ayuda con un programa basico

Publicado por santiago (4 intervenciones) el 10/10/2019 22:25:20
valeeee, muchas graciasss, en todo caso mandare mas tarde como quedo el programa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar