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() { 0;} 
       
hinhtron(float bk) {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
      { 
               
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
   
= new hinhtron(3); 
   
p->in(); 
   
delete p
   
= new lapphuong(3); 
   
-> in(); 
   
delete p
   
= new cau(3); 
   
-> in(); 
   
delete p
   
= new tgdeu(5); 
   
-> in(); 
   
delete p
   
= new hinhvuong(6); 
   
-> in(); 
   
getch(); 

0 nhận xét:

Đăng nhận xét