Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <exception>
- using namespace std;
- class Rectangulo{
- public:
- Rectangulo(int b=0, int a=0):base(b), altura(a){}
- int area(){
- return altura * base;
- }
- bool setAltura(int valor){
- if(valor > 0 && valor < 100) {
- altura = valor;
- return true;
- }
- cout <<"[error]valor fuera de rango"<<endl;
- return false;
- }
- bool setAltura(string valor){
- int tmp = 0;
- try{
- tmp = atoi(valor.c_str());
- } catch (exception &e) {
- return false;
- }
- if(tmp > 0 && tmp < 100) {
- altura = tmp;
- return true;
- }
- cout <<"[error]valor fuera de rango"<<endl;
- return false;
- }
- bool setBase(int valor){
- if(valor > 10 && valor < 40) {
- base = valor;
- return true;
- }
- cout <<"[error]valor fuera de rango"<<endl;
- return false;
- }
- bool setBase(string valor){
- int tmp = 0;
- try{
- tmp = atoi(valor.c_str());
- } catch (exception &e) {
- return false;
- }
- if(tmp > 0 && tmp < 100) {
- base = tmp;
- return true;
- }
- cout <<"[error]valor fuera de rango"<<endl;
- return false;
- }
- bool esCuadrado(){
- return base == altura;
- }
- int getAltura(){
- return this->altura;
- }
- string getAlturaString(){
- return to_string(this->altura);
- }
- int getBase(){
- return this->base;
- }
- string getBaseString(){
- return to_string(this->base);
- }
- string toString(){
- string mensaje = "";
- if(this->esCuadrado())
- mensaje += "El cuadrado de " + getBaseString();
- else
- mensaje += "El Rectangulo de " + getBaseString()+ " x " + getAlturaString() ;
- mensaje += " tiene un area de :" + to_string(this->area());
- return mensaje;
- }
- private:
- int base;
- int altura;
- };
- #include <limits>
- int main() {
- int valor = 0;
- Rectangulo t;
- //Ingresos con validación por rango de valor
- do{
- cout<<"ingrese ANCHO: ";
- cin >> valor;
- while (cin.fail()) {// check for input error
- cin.clear();
- cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
- cout << "Error de ingreso. Intente nuevamente:";
- cin >> valor;
- }
- } while(t.setBase(valor) == false);
- cin.ignore(numeric_limits<streamsize>::max(), '\n');
- //Ingresos de string con validación por rango de valor
- string valorString = "";
- do{
- cout<<"ingrese LARGO: ";
- getline(cin, valorString);
- }while(t.setAltura(valorString) == false);
- cout << t.toString();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement