Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Nolk en 3 Abril 2019, 05:04 am



Título: NECESITO AYUDA CON UNA ACTIVIDAD
Publicado por: Nolk en 3 Abril 2019, 05:04 am
SE DEJO REALIZAR UN PROGRAMA QUE DE UN PRINCIPIO CONTENGA UN MENU DONDE DA A ELEGIR *PERIMETRO Y *AREA O *SALIR, DESPUES CUANDO SE DE PERIMETRO ME SACARA OTRO MENU DONDE ME DE A ELEGIR ENTRE 5 FIGURAS Y AL ELEGIR ALGUNA DE LAS 5 FIGURAS (QUE SON TRIANGULO, PARALELOGRAMO,RECTANGULO,CUADRADO Y CIRCULO) ME LANZARA EL PERIMETRO Y LO MISMO PASA CON EL AREA.
Hasta ahorita es lo que llevo pero no logro hacer la eleccion de las figuras ¡Ayuda Porfa!



# include<iostream>
using namespace std;
class Operaciones
{
public:
   void menuMensaje1()
   {
   cout<<"Menu"<<endl<<"Presione la opcion que desee"<<endl<<"1.Perimetro"<<endl<<"2.Area"<<endl<<"3.Salir"<<endl;
   }
   void menuMensaje2()
   {
   cout<<"Figura a operar"<<endl<<"1.Triangulo"<<endl<<"2.Paralelogramo"<<endl<<"3.Rectangulo"<<endl<<"4.Cuadrado"<<endl<<"5.Circulo"<<endl;
   }
   void menuMensaje3()
   {
   cout<<"Triangulo"<<endl;
   }
   void perimTrian()
   {
   int a,b,c;
   cout<<"Ingresa el Primer valor"<<endl;
   cin>>a;
   cout<<"ingresa el segundo valor"<<endl;
   cin>>b;
   cout<<"ingresa el tercer valor"<<endl;
   cin>>c;
   int Resp=a+b+c;
   cout<<"El perimetro del triangulo es:"<<Resp<<endl;
   }
   void perimPara()
   {
      int a,b;
   cout<<"Ingresa el Primer valor"<<endl;
   cin>>a;
   cout<<"ingresa el segundo valor"<<endl;
   cin>>b;
   int Resp=2*a+b;
   cout<<"El perimetro del paralelogramo es:"<<Resp<<endl;
   }
void proSal()
   {
      cout<<"Saliendo del programa"<<endl;
   }
        };
int main()
{
   int a,b;
   bool salir=false;
   Operaciones menuPrin;
   do{
   menuPrin.menuMensaje1();
   cin>>a;
   if(a==1){ menuPrin.menuMensaje2();
    }
    if(a==1){ menuPrin.menuMensaje();
   }
   if(a==3){ menuPrin.proSal();
   }
    salir=true;
   }
   while(!salir);   
}


Título: Re: NECESITO AYUDA CON UNA ACTIVIDAD
Publicado por: K-YreX en 3 Abril 2019, 10:44 am
Lo primero de todo coloca el código entre etiquetas de código GeSHi (encima del cuadro de texto tienes un desplegable dónde elegir el lenguaje apropiado)...

Y bueno, has creado todas las funciones dentro de una clase lo que luego complica más la forma de usarlas. Creo que sería más correcto dejarlo sólo como funciones sin meterlas dentro de una clase...

Un par de errores tontos que no te habrás dado cuenta al escribirlo:
  • En el <main> has usado <menuMensaje()> cuando no existe esa función.
  • En el <main> tienes dos <if> seguidos que comprueban lo mismo.
  • El cálculo del perímetro del paralelogramo no está bien...

Los menús te recomiendo hacerlos que muestren las opciones y devuelvan la que el usuario toma. Así puedes además hacer un filtro dentro de la propia función para que el usuario no introduzca valores no permitidos.
Código
  1. int menuPrincipal(){
  2.    int opcion;
  3.    do{
  4.        cout << "1. Calcular perimetro" << endl;
  5.        cout << "2. Calcular area" << endl;
  6.        cout << "3. Salir" << endl;
  7.        cout << "Opcion: ";
  8.        cin >> opcion;
  9.    }   while(opcion < 1 || opcion > 3);
  10.    return opcion;
  11. }
  12.  
  13. int main(){
  14.    int opcion1 = menuPrincipal();
  15.    if(opcion1 == 3)
  16.        return 1;
  17.    int opcion2 = menuSecundario(); // en este muestras las figuras disponibles con un esquema similar al anterior
  18.    switch(opcion2){
  19.        case 1:
  20.            if(opcion1 == 1)
  21.                // calculas el perimetro de la figura 1 elegida en la opcion 2
  22.            else
  23.                // calculas el area de la figura 1 elegida en la opcion 2
  24.            break;
  25.  
  26.        case 2:
  27.                // igual que antes con la figura 2
  28.             break;
  29.  
  30.         // asi con cada figura
  31.    }
  32. }
  33.  

Creo que te he dejado una plantilla bastante completita. Ahora sólo queda que la completes a tu gusto... :-X :-X