Advertisement
Emanuele_Bruno

Classe Cerchio e Cilindro

Feb 2nd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <sstream>
  4.  
  5. using namespace std;
  6.  
  7. double get_PI();
  8.  
  9. class Cerchio {
  10. private:
  11.     double raggio;
  12. public:
  13.     Cerchio(double r) :raggio(r) {}
  14.     void setRaggio(double r) { raggio = r; };
  15.     double getAreaCerchio() { return get_PI()*raggio*raggio; };
  16.     double getPerimetroCerchio() { return 2*get_PI()*raggio; };
  17.     double getRaggio() { return raggio; };
  18.     string toString();
  19. };
  20.  
  21. string Cerchio::toString() {
  22.     stringstream s;
  23.     s << "Il cerchio ha raggio = " << raggio << ", area = " << getAreaCerchio()
  24.         << ", circonferenza = " << getPerimetroCerchio() << endl;
  25.     return s.str();
  26. }
  27.  
  28. class Cilindro {
  29. private:
  30.     Cerchio cerchio;
  31.     double altezza;
  32. public:
  33.     Cilindro(double r, double a) : cerchio(r), altezza(a) {};
  34.     void setAltezza(double a) { altezza = a; };
  35.     double getAltezza() { return altezza; };
  36.     double getAreaCilindro() { return 2 * cerchio.getAreaCerchio() + altezza*cerchio.getPerimetroCerchio(); };
  37.     double getVolumeCilindro() { return cerchio.getAreaCerchio()*altezza; };
  38.     string toString();
  39. };
  40.  
  41. string Cilindro::toString() {
  42.     stringstream s;
  43.     s << "Il cilindro ha raggio = " << cerchio.getRaggio() << ", altezza = " << altezza << ", area = " << getAreaCilindro()
  44.         << ", volume = " << getVolumeCilindro() << endl;
  45.     return s.str();
  46. }
  47.  
  48. int main()
  49. {
  50.     Cerchio a(10.5);
  51.     Cilindro c(10.5, 13.2);
  52.     cout << a.toString() << endl;
  53.     cout << c.toString() << endl;
  54.     return 0;
  55. }
  56.  
  57. double get_PI()
  58. {
  59.     double pi;
  60.     __asm
  61.     {
  62.         fldpi
  63.         fstp pi
  64.     }
  65.     return pi;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement