-1
I made this program to calculate areas and perimeters of geometric shapes, but when I press "a", "b" or "c" to choose whether you want to make areas or perimeters the program just closes. Follows the code:
#include <iostream>
#include <cmath>
#include <locale>
#include <stdlib.h>
using namespace std;
double PerimetroQuadrado (double Lado) {
return 4 * Lado;
}
double AreaQuadrado (double Lado) {
return Lado * Lado;
}
double PerimetroRetangulo (double Comprimento, double Altura) {
return Comprimento*2 + Altura*2;
}
double AreaRetangulo (double Comprimento, double Altura) {
return Comprimento * Altura;
}
double PerimetroCirculo (double Raio) {
return 2 * M_PI * Raio;
}
double AreaCirculo (double Raio) {
return M_PI * pow(Raio,2);
}
double PerimetroTriangulo (double Base, double Altura) {
double hipotenusa = hypot(Base , Altura);
return Base + Altura + hipotenusa;
}
double AreaTriangulo (double Base, double Altura) {
return Base * Altura / 2;
}
double PerimetroTrapezio (double BaseMaior, double BaseMenor, double Altura) {
double Hipotenusa = hypot((BaseMaior - BaseMenor) / 2 , Altura);
return BaseMenor + BaseMaior + 2 * Hipotenusa;
}
double AreaTrapezio (double BaseMaior, double BaseMenor, double Altura) {
return (BaseMenor + BaseMaior) * Altura / 2;
}
int main (){
setlocale(LC_ALL, "");
cout << "Cálculo de Perímetros e Áreas. \n";
cout << "Escolha uma das seguintes opcões: \n";
cout << "\t a- Perímetro \n";
cout << "\t b- Área \n";
cout << "\t c- Sair \n";
int num1 , num2 , num3;
char op;
cin >> op;
char pr;
char ar;
switch(op){
case 'a':
case 'A':
break;
cout << "Cálculo de Perímetros e Áreas. \n";
cout << "Escolha uma das seguintes opcões: \n";
cout << "\t 1- Quadrado \n";
cout << "\t 2- Retângulo \n";
cout << "\t 3- Círculo \n";
cout << "\t 4- Triângulo Retângulo \n";
cout << "\t 5- Trapézio \n";
cout << "\t 6- Voltar \n";
cout << "\t 7- Sair \n";
cin >> pr;
switch(pr) {
case '1': cout << "Introduza o Valor do Lado do Quadrado:";
cin >> num1;
cout << PerimetroQuadrado(num1);
break;
case '2': cout << "Introduza o Valor do Comprimento do Retângulo:";
cin >> num1;
cout << "Introduza o Valor da Altura do Retângulo:";
cin >> num2;
cout << PerimetroRetangulo(num1, num2);
break;
case '3': cout << "Introduza o Valor do Raio do Círculo:";
cin >> num1;
cout << PerimetroCirculo(num1);
break;
case '4': cout << "Introduza o Valor da Base do Triângulo:";
cin >> num1;
cout << "Introduza o Valor da Altura do Triângulo:";
cin >> num2;
cout << PerimetroTriangulo(num1, num2);
break;
case '5': cout << "Introduza o Valor da Base Maior do Trapézio:";
cin >> num1;
cout << "Introduza o Valor da Base Menor do Trapézio:";
cin >> num2;
cout << "Introduza o Valor da Altura do Trapézio:";
cin >> num3;
cout << PerimetroTrapezio(num1, num2 , num3);
break;
case '6':
break;
}
case 'b':
case 'B':
break;
cout << "Cálculo de Perímetros e Áreas. \n";
cout << "Escolha uma das seguintes opcões: \n";
cout << "\t 1- Quadrado \n";
cout << "\t 2- Retângulo \n";
cout << "\t 3- Círculo \n";
cout << "\t 4- Triângulo Retângulo \n";
cout << "\t 5- Trapézio \n";
cout << "\t 6- Voltar \n";
cout << "\t 7- Sair \n";
cin >> ar;
switch(ar) {
case '1': cout << "Introduza o Valor do Lado do Quadrado:";
cin >> num1;
cout << AreaQuadrado(num1);
break;
case '2': cout << "Introduza o Valor do Comprimento do Retângulo:";
cin >> num1;
cout << "Introduza o Valor da Altura do Retângulo:";
cin >> num2;
cout << AreaRetangulo(num1, num2);
break;
case '3': cout << "Introduza o Valor do Raio do Círculo:";
cin >> num1;
cout << AreaCirculo(num1);
break;
case '4': cout << "Introduza o Valor da Base do Triângulo:";
cin >> num1;
cout << "Introduza o Valor da Altura do Triângulo:";
cin >> num2;
cout << AreaTriangulo(num1, num2);
break;
case '5': cout << "Introduza o Valor da Base Maior do Trapézio:";
cin >> num1;
cout << "Introduza o Valor da Base Menor do Trapézio:";
cin >> num2;
cout << "Introduza o Valor da Altura do Trapézio:";
cin >> num3;
cout << AreaTrapezio(num1, num2 , num3);
break;
case '7': exit (0);
break;
case 'c':
case 'C': exit (0);
break;
default: cout << "Inválido";
break;
}
}
return 0;
}
You’re making
break
soon upon entering the conditionsa
/A
andb
/B
switch. This stops running the switch immediately, before running its logic.– Andre