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; }