面向对象程序设计1-6

原创 2006年06月11日 12:48:00
1
#include <iostream.h>
class shape{
  public:
  virtual float area()=0;
};
float total(shape *s[],int n)
{
  float sum=0;
  for(int i=0;i<n;i++)
  sum+=s[i]->area();
  return sum;
}

class triangle:public shape{
  protected:
    float h,d;
  public:
    triangle(float hight,float length)
    {
      h=hight,d=length;
    }
    float area()
    {
      return 0.5*h*d;
    }
};
class rectangle : public shape{
  protected:
    float l,w;
  public:
    rectangle(float len,float weight)
    {
      l=len,w=weight;
    }
    float area()
    {
      return l*w;
    }
};
void main()
{
  shape *s[2];
  s[0]=new rectangle(1.0,2.0);
  s[1]=new triangle(2.0,2.0);
  float sum=total(s,2);
  cout<<sum;
}

2
#include <iostream.h>
class station{
  private :
    float unlead,lead,total;
  public:
    station();
    float getTotal(float unleadamount,float leadamount)
    {
      total=unleadamount*unlead + leadamount*lead;
      return total;
    }
};
station::station()
{
  unlead=17.0;
  lead=16.0;
  total=0;
}
void main()
{
  float sum;
  station st;
  sum=st.getTotal(2.0,1.0);
  cout<<sum;

}

3
#include <iostream.h>
class Rectangle{
  private:
    float l,w;
  public:
    Rectangle(float,float);
    float getarea()
    {
      return l*w;
    }
    float add_area(Rectangle r1)
    {
       return this->getarea()+r1.getarea();
    }
};
Rectangle::Rectangle(float length,float weight)
{
  l=length;
  w=weight;
}
void main()
{
  float sum;
  Rectangle Re1(1.0,1.0),Re2(3.0,3.0);
  sum=Re1.add_area(Re2);
  cout<<sum;
}

4
#include <iostream.h>
class COMPLEX{
  private:
    float real,vir;
  friend void init(COMPLEX& ,float,float);
  friend void show(COMPLEX&);
  friend COMPLEX add(COMPLEX&,COMPLEX&);
  friend COMPLEX sub(COMPLEX&,COMPLEX&);
};
COMPLEX add(COMPLEX& a,COMPLEX& b)
{
  COMPLEX c;
  c.real=a.real+b.real;
  c.vir=a.vir+b.vir;
  return c;
}
COMPLEX sub(COMPLEX& a,COMPLEX& b)
{
  COMPLEX c;
  c.real=a.real-b.real;
  c.vir=a.vir-b.vir;
  return c;
}
void init(COMPLEX& com,float r,float v)
{
  com.real=r;
  com.vir=v;
}
void show(COMPLEX& com)
{
  if(com.vir>0 && com.vir!=1)
    cout<<com.real<<"+"<<com.vir<<"i"<<endl;
  else if(com.vir==1)
    cout<<com.real<<"+i"<<endl;
  else if(com.vir<0  && com.vir!=-1)
    cout<<com.real<<"-"<<com.vir<<"i"<<endl;
  else if(com.vir==-1)
    cout<<com.real<<"-i"<<endl;
  else
    cout<<com.real<<endl;
}
void main()
{
  COMPLEX test,test1,test2,test3;
  init(test,1,1);
  init(test1,2,2);
  init(test2,3,-1);
  init(test3,4,0);
  show(test);
  show(test1);
  show(test2);
  show(test3);
  show(add(test,test1));
  show(sub(test,test1));
  show(add(test2,test3));
  show(sub(test2,test3));
}

5
#include <iostream.h>
#include <math.h>
class POSITION{
  private:
    float x,y;
  public :
    POSITION(float,float);
    float getx()
    {
      return x;
    }
    float gety()
    {
      return y;
    }
    void move(POSITION pos ,float level,float high)
    {
      pos.x+=level;
      pos.y+=high;
    }
    friend float distancetozero(POSITION& p);
    friend float distance(POSITION& p1,POSITION& p2);
};
POSITION::POSITION(float a,float b)
{
  x=a;
  y=b;
}
float distancetozero(POSITION& p)
{
   return  sqrt(p.x*p.x+p.y*p.y);
}
float distance(POSITION& p1,POSITION& p2)
{
   return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)) ;
}
void main()
{
  POSITION pos1(3.0,4.0),pos2(7.0,7.0);
  cout<<pos1.getx()<<endl;
  cout<<pos2.gety()<<endl;
  cout<<distance(pos1,pos2)<<endl;
  cout<<distancetozero(pos1)<<endl;
  cout<<distancetozero(pos2)<<endl;

}

6
#include <iostream.h>
class Goods{
  private:
    static float totalweight;
    static int totalnum;
    float weight;
  public:
    Goods(float w)
    {
      weight=w;
      totalweight+=weight;
      totalnum+=1;
    }
    static float getTotalweight()
    {
      return totalweight;
    }
    static int getTotalnum()
    {
      return totalnum;
    }
    float getWeight()
    {
      return weight;
    }
    ~Goods()
    {
      totalweight-=weight;
      totalnum-=1;
    }
};
float Goods::totalweight=0.0;
int Goods::totalnum=0;
void main()
{
  cout<<Goods::getTotalweight()<<endl<<Goods::getTotalnum()<<endl;
  Goods g1(3.0),g2(4.0),g3(5.0) ;
  cout<<Goods::getTotalweight()<<endl;
  cout<<Goods::getTotalnum()<<endl;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

专业任选课“面向对象程序设计”期末作业1——成绩统计

等女友一起吃晚饭,等了半天都没等到,程序乱七八糟了写了一部分,先贴上来去五餐吃“夜宵”,吃完才有力气继续写。 专业任选课“面向对象程序设计”期末作业: 1.成绩统计: 功能设计: (1)录入学...

JAVA面向对象程序设计(1)

JAVA面向对象三大特征(1) 封装 继承 多态 封装 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现...

C++面向对象程序设计阅读笔记1——C++初步

关于C++,以下先记录自己今天学习到的重点。  1.#include指预处理命令;主函数main,类型声明符int,(return 0);注释形式(//和/*...*/);;头文件iostream;...

C++primer学习笔记----面向对象程序设计(1)

面向对象程序设计的核心是数据抽象、继承和动态绑定(多态) 基类负责定义在层次关系中所有类共同拥有的成员,每个派生类定义各自特有的成员。 对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时...

JavaSE 拾遗(1)——JavaSE 面向对象程序设计语言基础(1)...基本概念和常识

在写面向对象语言基础部分之前先介绍一些 javase 开发相关的概念和常识 javase 开发相关的概念和常识

js中的面向对象程序设计(1)-对象和属性的类型

js中的面向对象程序设计js中的对象:一组无序属性的结合。一、js中的对象1.自定义对象var person = new Object(); person.name = 'jack'; person....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)