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

来源:互联网 发布:unity3d 5.5粒子系统 编辑:程序博客网 时间:2024/05/18 22:43



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;                   //输出总面对大小} 


 



原创粉丝点击