第一道题目的话,我是把A,B,C芯片当作基类,之后共同派生出来一个派生类(和A,B,C是一个的派生类不一样)(理解问题把)

#include<iostream>
using namespace std;
class A{
	public:
		A(int i,int j){cout<<"i+j="<<i-j<<endl;
		}
};
class B{
	public:
		B(int i,int j)
		{
			cout<<"i*j="<<i*j<<endl;
		}
};
class C{
	public:
	 	C(int i ,int j)
		{
			if(j!=0)
			{
				cout<<"i/j="<<i/j<<endl;
			 } 
			else cout<<"错误输入"<<endl;
		}
};
class G:public A,public B,public C{
	public:
		G(int i,int j):A(i,j),B(i,j),C(i,j){
			cout<<"i+j="<<i+j<<endl;
		}
};
int main()
{
	int a,b;
	cout<<"输入i,j"<<endl;
	cin>>a>>b;
	G z(a,b);
	return 0;
 } 

  

第二条::

#include<iostream>
using namespace std;
class vehicle{
	public:
		vehicle(int i,int j):maxspeed(i),weight(j){
			if(i>0)
			{
				run();
			}
			if(i==0)
			{
				stop();
			}
		}
		void run(){
		cout<<"the maxspeed is   "<<maxspeed<<endl;
		cout<<"the weight is   "<<weight<<endl;
		cout<<"the vehicle is running"<<endl;
		cout<<"*********************"<<endl;
		}
		void stop(){
			cout<<"the vehicle is stopped  "<<endl;
			cout<<"the maxspeed is 0  "<<endl;
			cout<<"the weight is  "<<weight<<endl; 
			cout<<"***********************"<<endl;
		}
		~vehicle(){
			cout<<"over"<<endl;
		}
	private:
		int maxspeed;
		int weight;
};
class bicycle:virtual public vehicle{
	public:
		bicycle(int i,int j,int k):height(k),vehicle(i,j){cout<<"the height is"<<k<<endl;
		cout<<"----------------"<<endl;
		}
		~bicycle(){cout<<"over"<<endl;
		}
		private:
			int	height;
};
class motorcar:virtual public vehicle{
	public:
		motorcar(int i,int j,int k):seatnum(k),vehicle(i,j){
			cout<<"the seatnum is    "<<k<<endl;
			cout<<"---------------"<<endl;
		}
		~motorcar(){
			cout<<"over"<<endl;
		}
	private:
		int seatnum;
};
class  motorcycle:public motorcar,public bicycle{
	public:
		motorcycle(int i,int j,int k,int l):vehicle(i,j),bicycle(i,j,k),motorcar(i,j,l){
		}
};
int main()
{
	bicycle A(2,3,4);
	motorcar B(1,0,5);
	cout<<"--------------"<<endl;
	motorcycle Z(1,2,3,4);
	return 0;
}

  

第三题::

中间是把iFraction和iFraction中的convertF搞得有点混::

#include<iostream>
using namespace std;
class Fraction{
	public:
		Fraction(int a=0,int b=1):zi(a),mu(b){
		}
		Fraction operator+(const Fraction&F2) const;
		Fraction operator-(const Fraction &F2) const;
		Fraction operator*(const Fraction&F2) const;
		Fraction operator/(const Fraction &F2) const;
		int getzi(){
			return zi;
		}
		int getmu(){
			return mu;
		}
		void display() const;
	private:
		int zi;
		int mu;
};
class  iFraction:public Fraction{
	public:
		int i;
		int j;
		iFraction(int i,int j):i(i),j(j),Fraction(i,j){}
	//	void convertF()
	//	{
	//		if(i>j)
	//		{
	//			cout<<"   ";
	///			cout << i/j<<endl;
	//			cout << i%j;
	//			cout<<"----"<<endl;
	//			cout<<"   ";
	///			cout << j<<endl;
	//		}
	//		if(i==j)
	//		{
	//			cout<<i/j;
	//		}
	//		if(i<j)
	//		{
	//			putout();
	//		}
	//	}
		void convertF()
		{
			int k;
			k=i%j;
			cout<<k<<"   ";
			i=i/j;
			Fraction A(i,j);
			A.display() ;
		}
		void putout()
		{
			cout<<i<<endl;
			cout<<"-"<<endl;
			cout<<j<<endl;
			cout<<"***********"<<endl;
		}
};
class iiFraction:public Fraction{
	public:
		int i,j,k;
		iiFraction(int k, int i,int j):k(k),Fraction(i,j)
		{
			if(k!=0)
			{
				cout<<k<<"   ";
				cout<<" "<<i<<endl;
				cout<< "    ---"<<endl;
				cout<<"     "<<j<<endl;
			}
			if(k==0)
			{
				cout<<"   "<<i<<endl;
				cout<<"  ---"<<endl;
				cout<<"   "<<j<<endl;	
			}
		}
};
Fraction Fraction ::operator+ (const Fraction &F2)const{
	return Fraction (zi*F2.mu+mu*F2.zi,mu*F2.mu);
}
Fraction Fraction:: operator- (const Fraction &F2)const{
	return Fraction (zi*F2.mu-mu*F2.zi,mu*F2.mu);
}
Fraction Fraction ::operator* (const Fraction &F2)const{
	return Fraction (zi*F2.zi,mu*F2.mu);
}
Fraction Fraction::operator/ (const Fraction &F2)const{
	return Fraction (zi*F2.mu,mu*F2.zi);
}
void Fraction::display()const
{
	cout<<zi<<endl;
	cout<<"   ---   "<<endl;
	cout<<"    "<<mu<<endl;
}
int main()
{
	iiFraction A(0,2,3);
	iiFraction(1,2,6);
	Fraction F(2,4),F2(3,5),F3;
//	F3=F-F2;
//	F3.display();
	F3=F*F2;
//	F3.display();
	iFraction X(10,4);
	iFraction XX(F3.getzi(),F3.getmu());
	XX.putout();
	X.putout();
	X.convertF();
	return 0;
}

  另外,分数的输出格式不怎么好= =,不会搞。。

 

posted on 2018-06-07 18:37  卡斯兰娜樱  阅读(105)  评论(0编辑  收藏  举报