【BigHereo 39】---L12---C++真题之 最后大题代码



L12---C++真题之 最后大题代码

 

 

 

前言:


     不论是数据结构,操作系统,还是C++程序设计, 凡是语言中,必定少不了对语言的运用, 就是生命中的需求,用该语言表达出来,简单的来说,就是进行一个翻译, 考试中,后面大题就是这类,下面先进行一个代码的分析思路和对真题的一个解析:

 

        

 

 

真题:2015年10月 

 

  原题:写一个程序,定义shape,由它派生成3个类,square(正方形),Trapezoid(梯形)和Triangle(三角形),用虚函数计算几个图形面积并求他们的总和:

 

 

 

解答:在书中教材p174

 

首先:头文件声明

   #include <iostream>
   using namespace std;

 

声明抽象类

 class shape{
    public:
   virtual double area()=0;
  };
 


  

分别声明每一个类(1,声明要用到的变量;2,声明构造函数; 3,进行计算)

class square: public shape{
   private:
           double a, b;
  
    public:
     square(double i, double j): a(i),b(j){}   //将i赋值给a, 
   //或者 square(double i,double j){ a=i; b=j;} ---,构造函数这和上面是一致的
   //其他三角形,梯形等都是一致的 
 
   double area(){ return a*b; }
}


 

 

进行计算  

void mian(){
     shape *s[5];
     s[0]=new square(4);
     s[1]=new triangle(3,6);
     s[2]=new rectangle(3,6);
     s[3]=new  circle(10);
     s[4]=new  square(10);
 
double sum=0.0;
for(int i=0; i<=5;i++)
  sum+=s[i]->area();
  cout <<"s["<<i<<"]=" << s[i]->area()<<endl;  //输出每一个的面积大小
  cout<<"总面积是:"<<sum<<endl;                   //输出总面对大小
}
 


 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值