1. 程式人生 > >8.2 方孔錢幣類設計-類組合

8.2 方孔錢幣類設計-類組合

這個題跟8.1的類似 作為練習獨立思考一下吧

前置程式碼::

#include <iostream>
#include <string>
using namespace std;
class Square//正方形類
{
private:
	double x;//邊長
public:
	Square(double i=0)//帶預設引數值的建構函式
	{	x=i;		
	}
	double getx()
	{
		return x;
	}    
};
class Circle//圓類
{
private:
	double r;//半徑
public:
	Circle(double i=0)//帶預設引數值的建構函式
	{	r=i;		
	}
	double getr()
	{
		return r;
	}    
};

後置程式碼::

int main()
{
	Square x(0.2);
	Circle y(1.25);
	Coin m(0.3,1.3,5.13,"開元通寶","銀"),n(x,y,3.5,"五銖","銅");
	m.Show();
	n.Show();
	return 0;
}

期待的輸出::

錢幣文字=開元通寶↵
材質=銀↵
直徑=2.6釐米↵
方孔邊長=0.3釐米↵
重量=5.13克↵
錢幣文字=五銖↵
材質=銅↵
直徑=2.5釐米↵
方孔邊長=0.2釐米↵
重量=3.5克↵

coin類的設計::

class Coin
{
	private:
    	Square x;
	    Circle y;
	    double m;
	    string name;
	    string cl;
	public:
		Coin(double a,double b,double c,const string &d,const string &e) :x(a),y(b)
		{
			m=c;
			name=d;
			cl=e;
		}
		Coin(Square &x,Circle &y,double c,const string &d,const string &e) :x(x),y(y)
		{
			m=c;
			name=d;
			cl=e;
		}
	    void Show()
	    {
	    	
	    	cout<<"錢幣文字="<<name<<endl;
            cout<<"材質="<<cl<<endl;
            cout<<"直徑="<<y.getr()*2<<"釐米"<<endl;
            cout<<"方孔邊長="<<x.getx()<<"釐米"<<endl;
            cout<<"重量="<<m<<"克"<<endl;
		}
};