c++实验6

1.xinpian.h

#include<iostream>
using namespace std;
class xinpian{
    public:
        xinpian(float M,float N);
        void jia();
    private:
        int m,n;
};//基类 
class xinpianA:public xinpian{
    public:
        xinpianA(float M,float N);
        void jian();
    private:
        int m,n;
};//派生类A 
class xinpianB:public xinpian{
    public:
        xinpianB(float M,float N);
        void chen();
    private:
        int m,n;
};//派生类B 
class xinpianC:public xinpian{
    public:
        xinpianC(float M,float N);
        void chu();
    private:
        int m,n;
};//派生类C 

xinpian.cpp

#include<iostream>
#include"xinpian.h"
using namespace std;
xinpian::xinpian(float M,float N):m(M),n(N){}
void xinpian::jia(){
    cout<<m+n<<endl;
}
xinpianA::xinpianA(float M,float N):m(M),n(N),xinpian(M,N){}
void xinpianA::jian(){
    cout<<m-n<<endl;
}
xinpianB::xinpianB(float M,float N):m(M),n(N),xinpian(M,N){}
void xinpianB::chen(){
    cout<<m*n<<endl;
}
xinpianC::xinpianC(float M,float N):m(M),n(N),xinpian(M,N){}
void xinpianC::chu(){
    cout<<m/n<<endl;
}

main.cpp

#include <iostream>
#include"xinpian.h"
using namespace std;
int main() {
    xinpianA A(4,2);
    A.jia();
    A.jian();
    xinpianB B(4,2);
    B.jia();
    B.chen();
    xinpianC C(4,2);
    C.jia();
    C.chu();
    return 0;
}

2.vehicle.h

#include<iostream>
using namespace std;
class vehicle{
    public:
        vehicle(int m,int n);
        void run();
        void stop();
        ~vehicle(){}
    private:
        int maxspeed,weight;
};
class bicycle:virtual public vehicle{
    public:
        bicycle(int m,int n,float s);
        ~bicycle(){}
    private:
        float height;
};
class motorcar:virtual public vehicle{
    public:
        motorcar(int m,int n,int t);
        ~motorcar(){}
    private:
        int seatnum;
};
class motorcycle:public bicycle,public motorcar{
    public:
    motorcycle(int m,int n,float s,int t);
    ~motorcycle(){}
};

vehicle.cpp

#include"vehicle.h"
#include<iostream>
using namespace std;
vehicle::vehicle(int m,int n):maxspeed(m),weight(n){
    cout<<"maxspeed"<<maxspeed<<endl;
    cout<<"weight"<<weight<<endl;
    }
void vehicle::run(){
    cout<<"run"<<endl;
}
void vehicle::stop(){
    cout<<"stop"<<endl;
}
bicycle::bicycle(int m,int n,float s):vehicle(m,n),height(s){
    cout<<"height"<<height<<endl;
}
motorcar::motorcar(int m,int n,int t):vehicle(m,n),seatnum(t){
    cout<<"seatnum"<<seatnum<<endl;
}
motorcycle::motorcycle(int m,int n,float s,int t):vehicle(m,n),bicycle(m,n,s),motorcar(m,n,t){}

main.cpp

#include <iostream>
#include"vehicle.h"
using namespace std;
int main() {
    motorcycle A(1,2,3,4);
    A.run();
    A.stop();
    return 0;
}

 3.

Fraction.h

using namespace std;
class Fraction{
    public:
        Fraction(int t=0,int b=1);
        void show();
         Fraction operator+(Fraction &a);
         Fraction operator-(Fraction &a);
         Fraction operator*(Fraction &a);
         Fraction operator/(Fraction &a);
        int top,bot;
};
class iFraction:public Fraction{
    public:
        iFraction(int t,int b);
        void show();
        int top,bot;
};

fraction.cpp

#include<iostream>
#include"fraction.h"
using namespace std;
Fraction::Fraction(int t,int b):top(t),bot(b){}
void Fraction::show(){
    cout<<top<<"/"<<bot<<endl;
}
Fraction Fraction::operator+(Fraction &a){
    int x=a.top*bot+a.bot*top;
    int y=a.bot*bot;
    return Fraction(x,y);
}
Fraction    Fraction::operator-(Fraction &a){
    int x= top*a.bot-bot*a.top;
    int y=a.bot*bot;
    return Fraction(x,y);
}
Fraction    Fraction::operator*(Fraction &a){
    int x=a.top*top;
    int y=a.bot*bot;
    return Fraction(x,y);
}
Fraction    Fraction::operator/(Fraction &a){
    int x=top*a.bot;
    int y=bot*a.top;
    return Fraction(x,y);
}

iFraction::iFraction(int t,int b):top(t),bot(b),Fraction(t,b){}

void iFraction::show(){
    int a=top/bot;
    top=top-a*bot;
    cout<<a<<" "<<top<<"/"<<bot<<endl;
}

main.cpp

#include <iostream>
#include"fraction.h"
using namespace std;
int main() {
    iFraction A(6,5);
    A.show();
    Fraction B(3,2),C(4,3);
    Fraction D;
    D=B+C;
    D.show();    
    return 0;
}

 

posted @ 2018-06-06 14:47  不见曦月  阅读(183)  评论(0编辑  收藏  举报