Dev - C++ - Necesito ayuda con un ejercicio de while y do while

 
Vista:
sin imagen de perfil

Necesito ayuda con un ejercicio de while y do while

Publicado por Daniel (5 intervenciones) el 17/01/2020 21:25:05
Necesito ayuda con un ejercicio que me enviaron en la universidad, puedo usar while y do while y tambien switch case...

Seguros Caroni ofrece 2 tipos de póliza, póliza A de cobertura amplia y póliza B de Daños a terceros.

Para el plan A la cuota básica es de 1.200.000, y para el plan B 950.000, para ambos planes se carga un 10% del costo, si la persona que conduce tiene por hábito beber alcohol, un 5% si la persona usa lentes, un 5% si padece de alguna enfermedad como por ejemplo deficiencia cardíaca o diabetes, si tiene más de 40 años se le carga un 20%.
Todos estos cargos se realizan sobre el costo base. Realicé un programa que permita determinar el precio de una póliza a un cliente, antes de adquirir el beneficio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
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++

Necesito ayuda con un ejercicio de while y do while

Publicado por Alfil (1444 intervenciones) el 18/01/2020 21:08:12
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
#include <cctype> // toupper
 
using namespace std;
 
void menu();
int cargos(int base);
 
const int A = 1200000;
const int B = 950000;
 
int main ()
{
    char opcion;
 
    do{
        menu();
        cin >> opcion;
 
        switch(opcion) {
            case '1':
                cout << "\nPlan A: "
                     << "\n Coste base: " << A;
                cout << "\n\n Cote Total: " << cargos(A) + A
                     << endl;
                break;
 
            case '2':
                cout << "\nPlan B: "
                     << "\n Coste base: " << B;
                cout << "\n\n Cote Total: " << cargos(B) + B
                     << endl;
                break;
 
            case '3':
                cout << "\nFIN DEL PROGRAMA" << endl;
                break;
 
            default:
                cout << "\nOPCION NO VALIDA" << endl;
                break;
        }
 
    }while(opcion != '3');
 
    cout << endl;
 
    return 0;
}
 
void menu()
{
    cout << "\n   SEGUROS CARONI"
         << "\n========================"
         << "\n1.- Plan A ....... [ 1 ]"
         << "\n2.- Plan B ....... [ 2 ]"
         << "\n3.- Terminar ..... [ 3 ]"
         << "\n========================"
         << "\nOPCION (1 - 3): ";
}
 
int cargos(int base)
{
    char opcion;
    int beber, lentes, enfermo, edad;
 
    beber = lentes = enfermo = edad = 0.0f;
 
    cout << "\n\nEs bebedor (S/n)? ";
    cin >> opcion;
    opcion = toupper(opcion);
    if(opcion == 'S') {
        beber = base * 0.10;
    }
 
    cout << "Utiliza lentes (S/n)? ";
    cin >> opcion;
    opcion = toupper(opcion);
    if(opcion == 'S') {
       lentes = base * 0.05;
    }
 
    cout << "Padece alguna enfrmedad (S/n)? ";
    cin >> opcion;
    opcion = toupper(opcion);
    if(opcion == 'S') {
        enfermo = base * 0.05;
    }
 
    cout << "Tiene mas de 40 anyos (S/n)? ";
    cin >> opcion;
    opcion = toupper(opcion);
    if(opcion == 'S') {
        beber = base * 0.20;
    }
 
    if(beber > 0) cout << "\n Recargo por bebedor: " << beber;
    if(lentes > 0) cout << "\n Recargo por usar lentes: " << lentes;
    if(enfermo > 0) cout << "\n Recargo por enfermedad: " << enfermo;
    if(edad > 0) cout << "\n Recargo por mayor de 40 anyos: " << edad;
 
    return beber + lentes + enfermo + edad;
 
}
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
sin imagen de perfil

Necesito ayuda con un ejercicio de while y do while

Publicado por Daniel (5 intervenciones) el 19/01/2020 01:16:00
Hola, gracias me sirvió bastante pero debo también hacer que al final pueda escoger ejemplo al finalizar las preguntas en Plan A & B que diga un mensaje tipo 'Gracias por comprar en nuestros seguros' Presione X para volver al menú de inicio y que regrese al menú presionando una tecla y no automáticamente como esta en el codigo, igualmente cuando marcas una letra que no sea s/n te lo permite y no debería
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

Necesito ayuda con un ejercicio de while y do while

Publicado por Hector Murcia (17 intervenciones) el 19/01/2020 15:21:02
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <cctype> // toupper
 
using namespace std;
 
void menu();
int cargos(int base);
 
const int A = 1200000;
const int B = 950000;
 
int main() {
  char opcion;
 
  do {
    menu();
    cin >> opcion;
 
    switch (opcion) {
    case '1':
      cout << "\nPlan A: " <<
        "\n Coste base: " << A;
      cout << "\n\n Cote Total: " << cargos(A) + A <<
        endl;
      break;
 
    case '2':
      cout << "\nPlan B: " <<
        "\n Coste base: " << B;
      cout << "\n\n Cote Total: " << cargos(B) + B <<
        endl;
      break;
 
    case '3':
      cout << "\nFIN DEL PROGRAMA" << endl;
      break;
 
    default:
      cout << "\nOPCION NO VALIDA" << endl;
      break;
    }
    if (opcion == '1' || opcion == '2') {
      cout << "\n\nGracias por comprar en nuestros seguros.";
      cin.get(); cin.get();
      system("cls");
    }
  } while (opcion != '3');
 
  cout << endl;
 
  return 0;
}
 
void menu() {
  cout << "\n   SEGUROS CARONI" <<
    "\n========================" <<
    "\n1.- Plan A ....... [ 1 ]" <<
    "\n2.- Plan B ....... [ 2 ]" <<
    "\n3.- Terminar ..... [ 3 ]" <<
    "\n========================" <<
    "\nOPCION (1 - 3): ";
}
 
int cargos(int base) {
  char opcion;
  int beber, lentes, enfermo, edad;
 
  beber = lentes = enfermo = edad = 0.0f;
 
  do {
    cout << "\n\nEs bebedor (S/n)? ";
    cin >> opcion;
  } while (opcion != 's' && opcion != 'S' && opcion != 'n' && opcion != 'N');
  opcion = toupper(opcion);
  if (opcion == 'S') {
    beber = base * 0.10;
  }
 
  do {
    cout << "Utiliza lentes (S/n)? ";
    cin >> opcion;
  } while (opcion != 's' && opcion != 'S' && opcion != 'n' && opcion != 'N');
  opcion = toupper(opcion);
  if (opcion == 'S') {
    lentes = base * 0.05;
  }
 
  do {
    cout << "Padece alguna enfrmedad (S/n)? ";
    cin >> opcion;
  } while (opcion != 's' && opcion != 'S' && opcion != 'n' && opcion != 'N');
  opcion = toupper(opcion);
  if (opcion == 'S') {
    enfermo = base * 0.05;
  }
 
  do {
    cout << "Tiene mas de 40 anios (S/n)? ";
    cin >> opcion;
  } while (opcion != 's' && opcion != 'S' && opcion != 'n' && opcion != 'N');
  opcion = toupper(opcion);
  if (opcion == 'S') {
    beber = base * 0.20;
  }
 
  if (beber > 0) cout << "\n Recargo por bebedor: " << beber;
  if (lentes > 0) cout << "\n Recargo por usar lentes: " << lentes;
  if (enfermo > 0) cout << "\n Recargo por enfermedad: " << enfermo;
  if (edad > 0) cout << "\n Recargo por mayor de 40 anyos: " << edad;
 
  return beber + lentes + enfermo + edad;
 
}
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