• 实验6


    第一题

    
    #include<iostream> 
    using namespace std;
    class Base1{     //基类base1--加法运算 
    	public:
    		Base1(double a,double b):m(a),n(b){cout<<"和為:"<<m+n<<endl;}	//声明 
    		private:
    			double m,n;
    };
    class A:public Base1{  //派生类A--既要继承基类的加法,又要开拓减法 
    	public:
    		A(double a,double b):Base1(a,b),m(a),n(b){}; //对基类的继承 
    		void jian(){  //成员函数--减法运算 
    			cout<<"减为:"<<m-n<<endl; 
    		}
    	private:
    	double m,n;	
    	
    };
    class B:public Base1{
    	public:
        	B(double a,double b):Base1(a,b),m(a),n(b){};
        	void mul(){ //成员函数--乘法 
        		cout<<"乘为:"<<m*n<<endl; 
    		}
    	private:
    		double m,n;
    };
    class C:public Base1{
    	public:
    		C(double a,double b):Base1(a,b),m(a),n(b){};
    		void div(){  //成员函数--除法 
    			cout<<"除为:"<<m/n<<endl; 
    		}
    	private:
    		double m,n;	
    };
    int main(){
    	double a,b;
    	cout<<"输入m,n:"<<endl;
    	cin>>a>>b;
    	cout<<endl;
    	cout<<"启动芯片A:"<<endl;
    	A a1(a,b);
    	a1.jian();  //通过外在对象访问成员函数 
    	cout<<"启动芯片B:"<<endl;
    	B b1(a,b);
    	b1.mul();
    	cout<<"启动芯片C:"<<endl;
    	C c1(a,b);
    	c1.div();
    	return 0;
    }
    


    第二题

    #include<iostream> 
    using namespace std;
    class vehicle{
    	public:
    		vehicle(int m,int w):maxspeed(m),weight(w){
    			cout<<"最大速度:"<<maxspeed<<"  重量:"<<weight<<endl; 
    		}
    		void run(){
    			cout<<"车启动了"<<endl; 
    		}
    		void stop(){
    			cout<<"车停下了"<<endl; 
    		}
    	private:
    		int maxspeed,weight;
    };
    class bicycle:virtual public vehicle{
    	public:
        	bicycle(int m,int w,int h):vehicle(m,w),height(h){
    		cout<<"  高度:"<<height<<endl; 
    		} 
    	private:
    		int maxspeed,weight,height;
    };
    class motorcar:virtual public vehicle{
    	public:
        	motorcar(int m,int w,int s):vehicle(m,w),seatnum(s){
    		cout<<"  座位数:"<<seatnum<<endl; 
    	}
    	private:
    		int maxspeed,weight,seatnum;
    };
    class motorcycle:public bicycle,public motorcar{
    	public:
    		motorcycle(int m,int w,int h,int s):vehicle(m,w),bicycle(m,w,h),motorcar(m,w,s){}//(1) 
    		private:
    		int maxspeed,weight,height,seatnum;
    };
    int main(){
    	cout<<"自行车"<<endl; 
    	bicycle b(10,50,15);
    	b.run();
    	b.stop();
    	cout<<"汽车"<<endl; 
    	motorcar mr(30,300,6);
    	mr.run();
    	mr.stop();
    	cout<<"摩托车"<<endl;
    	motorcycle me(50,150,26,3);
    	me.run();
    	me.stop();
    	return 0;
    }
    //(1)处之前写成 vehicle(m,w),height(h),seatnum(s)就不对。 
    


    第三题
    (1)

     using namespace std;
     int g,h;
     class Fraction{
     	public:
     	    Fraction():top(0),bottom(1){};
            Fraction(int t,int b):top(t),bottom(b){};
            Fraction(int t):top(t),bottom(1){};
            Fraction(Fraction &f0);
            void show(){
            cout<<top<<"/"<<bottom<<endl;};
            void operator+(Fraction &f0);
            void operator-(Fraction &f0);
            void operator*(Fraction &f0);
            void operator/(Fraction &f0);
        private:
        	 int top;
            int bottom;
     };
        void Fraction::operator+(Fraction &f0){
        g=top;h=bottom; 	
        top=top*f0.bottom+f0.top*bottom;
        bottom=bottom*f0.bottom;
        show();
    }
    void Fraction::operator-(Fraction &f0){
    	top=g;bottom=h; 
        top=top*f0.bottom-f0.top*bottom;
        bottom=bottom*f0.bottom;
        show();
    }
    void Fraction::operator*(Fraction &f0){
    	top=g;bottom=h; 
        top=top*f0.top;
        bottom=bottom*f0.bottom;
        show();
    }
    void Fraction::operator/(Fraction &f0){
    	top=g;bottom=h; 
        top=top*f0.bottom;
        bottom=bottom*f0.top;
        show();
    }
    int main(){
        Fraction a;
        Fraction b(3,4);
        Fraction c(5);
        a.show();
        b.show();
        c.show();
        b.operator+(c);
        b.operator-(c);
        b.operator*(c);
        b.operator/(c);
        return 0;
    }
    

    用多文件一直没成功过。。。

  • 相关阅读:
    CVI中调用数据库的几点..
    LabView、CVI、MeasurementStudio三者之间的区别
    cad工具快速选择特性里面是空的解决方法
    SDK和API的直接区别
    一角法与三角法视图的区别
    CentOS7桥接模式上不了外网的配置
    Ubuntu14.04或16.04下普通用户的root权限获得
    Eplan创建符号详细解说
    Eplan创建符号
    变量,浮点数,常量
  • 原文地址:https://www.cnblogs.com/lixiaoyu-Judy/p/9152435.html
Copyright © 2020-2023  润新知