Chủ Nhật, 30 tháng 3, 2014

Một ví dụ về Đa hình


#include <iostream.h> 
#include <conio.h> 
#include <math.h>

class hinhve { 
   public: 
       
virtual float dientich() = 0; 
        
virtual char *ten() = 0; 
        
virtual void in()=0; 
}; 

class 
haichieu : public hinhve { 
    public: 
       
virtual float chuvi() = 0; 
      
void in() 
      { 
           
cout<<"ten cua hinh: "<<ten() 
             <<
" ,dien tich la: "<<dientich() 
             <<
" ,chu vi la: "<<chuvi()<<endl; 
      } 
}; 

class 
bachieu : public hinhve { 
  public: 
      
virtual float thetich() = 0; 
      
void in() 
      { 
           
cout<<"ten cua hinh: "<<ten() 
             <<
" ,dien tich la: "<<dientich() 
             <<
" ,the tich la: "<<thetich()<<endl; 
      } 
}; 


class 
hinhtron : public haichieu { 
      private: 
       
float r; 
   public: 
       
hinhtron() { r = 0;} 
       
hinhtron(float bk) {r = bk;} 
      
float chuvi() 
      { 
            return 
2*3.14*r; 
      } 
      
float dientich() 
      { 
             return 
3.14*r*r; 
      } 
      
char *ten() 
      { 
             return 
"Hinh Tron"; 
      } 

}; 


class 
hinhvuong : public haichieu { 
      private: 
       
float a; 
   public: 
       
hinhvuong(float x) 
      { 
               
a = x; 
      } 
      
float chuvi() 
      { 
          return 
a*4; 
      } 
      
float dientich() 
      { 
              return 
a*a; 
      } 
      
char *ten() 
      { 
             return 
"Hinh Vuong"; 
      } 
}; 

class 
tgdeu : public haichieu { 
     private: 
       
float a; 
   public: 
       
tgdeu(float x) : a(x){} 
      
float chuvi() 
      { 
              return 
3*a; 
      } 
      
float dientich() 
      { 
           return 
a*a*sqrt(3)/2; 
      } 
      
char *ten() 
      { 
              return 
"Hinh tam giac deu"; 
      } 
}; 
class 
cau: public bachieu { 
  private: 
      
float r; 
   public: 
      
cau(float bk): r(bk){} 
      
float thetich() { return r*r*r*3.14;} 
      
float dientich() { return 4*3.14*r*r; } 
      
char *ten() 
      { 
           return 
"Hinh Cau"; 
      } 
}; 

class 
lapphuong : public bachieu { 
      private: 
       
float a; 
   public: 
       
lapphuong(float x) : a(x) {} 
       
float thetich() { return a*a*a; } 
       
float dientich() { return 6*a*a; } 
       
char * ten() { return "Hinh Lap Phuong"; } 
}; 
void main() 
{ 
   
hinhve *p; 
   
p = new hinhtron(3); 
   
p->in(); 
   
delete p; 
   
p = new lapphuong(3); 
   
p -> in(); 
   
delete p; 
   
p = new cau(3); 
   
p -> in(); 
   
delete p; 
   
p = new tgdeu(5); 
   
p -> in(); 
   
delete p; 
   
p = new hinhvuong(6); 
   
p -> in(); 
   
getch(); 
} 

0 nhận xét:

Đăng nhận xét