实验六zxt
Q1:芯片問(wèn)題
思路:basic做父類,ABC做子類
#include<iostream> using namespace std; class basic{public:basic(int,int);int mm(){return m;}int nn(){return n;}//提供了m,n的外部接口 void add();private:int m,n; }; //basic類為芯片ABC的最基本功能,即m+n basic::basic(int mx,int nx) {m=mx;n=nx;} //構(gòu)造函數(shù)的實(shí)現(xiàn) void basic::add() {cout<<"m+n="<<mm()+nn()<<endl;} //basic已經(jīng)完成,開(kāi)始芯片A class A:public basic{public:A(int a,int b):basic(a,b){}; void sub(); }; void A::sub() {cout<<"m-n="<<mm()-nn()<<endl;} class B:public basic{public:B(int a,int b):basic(a,b){};void mul(); }; void B::mul() {cout<<"m*n="<<mm()*nn()<<endl;} class C:public basic{public:C(int a,int b):basic(a,b){};void div(); }; void C::div() {cout<<"m/n="<<(float)mm()/nn()<<endl;} //芯片ABC都已經(jīng)設(shè)計(jì)好 int main() {basic ba(2,3);ba.add();A a(3,4);a.sub();a.add();B b(2,1);b.add();b.mul();C c(7,8);c.div();c.add();return 0; }運(yùn)行截圖:
Q2:車類
思路:合理的應(yīng)用虛基類
#include<iostream> using namespace std; class vehicle {public:void run();void stop();vehicle(int a,int b){maxspeed=a;weight=b;} ~vehicle(){}private:int maxspeed;int weight; }; void vehicle::run(){cout<<"vehicle is running"<<endl;} void vehicle::stop(){cout<<"vehicle has stopped"<<endl;} class bicycle:virtual public vehicle {public:void run();void stop();//同名覆蓋 bicycle(int a,int b,int c):vehicle(a,b){height=c;}~bicycle(){}private:int height; }; void bicycle::run(){cout<<"bicycle is running"<<endl;} void bicycle::stop(){cout<<"bicycle has stopped"<<endl;} class motorcar:virtual public vehicle {public:void run();void stop();motorcar(int a,int b,int c):vehicle(a,b){seatnum=c;}~motorcar(){}private:int seatnum; }; void motorcar::run(){cout<<"motorcar is running"<<endl;} void motorcar::stop(){cout<<"motorcar has stopped"<<endl;} class motorcycle:public motorcar,public bicycle {public:void run();void stop();motorcycle(int a,int b,int c,int d):vehicle(a,b),bicycle(a,b,c),motorcar(a,b,d){}~motorcycle(){} }; void motorcycle::run(){cout<<"motorcycle is running"<<endl;} void motorcycle::stop(){cout<<"motorcycle has stopped"<<endl;} int main() {vehicle v(1,2);v.run();v.stop();bicycle b(1,2,3);b.run();b.stop();motorcar m(1,2,3);m.run();m.stop();motorcycle mo(1,2,3,4);mo.run();mo.stop();return 0; }運(yùn)行截圖:
Q3:fraction類
思路:友元函數(shù),我這道題有問(wèn)題...我的基礎(chǔ)不扎實(shí)...這我得承認(rèn)...
#include<iostream> using namespace std; class fraction {public:int tt(){return top;}int bb(){return bottom;} fraction operator+(fraction& f2);fraction operator-(fraction& f2);fraction operator*(fraction& f2);fraction operator/(fraction& f2);fraction(int a,int b):top(a),bottom(b){}friend void convertF();private:int top,bottom; }; fraction fraction::operator+(fraction& f2)return fraction(top+f2.top,bottom+f2.bottom); fraction fraction::operator-(fraction& f2)return fraction(top-f2.top,bottom-f2.bottom); fraction fraction::operator*(fraction& f2)return fraction(top*f2.top,bottom*f2.bottom); fraction fraction::operator/(fraction& f2)return fraction(top*f2.bottom,bottom*f2.top); void convertF(){int k=top>bottom?top:bottom;for(int i=k;i>=2;i--){if(top%i==0&&bottom%i==0){top=top/i;bottom=bottom/i; } break;}cout<<top/bottom<<endl;}//構(gòu)造完畢,yeah class ifraction:public fraction {public:ifraction(int a,int b,int c):fraction(b,c){num=c;}friend void display();friend void convertf();private:int num; }; void ifraction::convertf(){int t=tt(),b=bb();int m=t%b;t=t-m*b;int k=t>b?t:b;for(int i=k;i>=2;i--){if(t%i==0&&b%i==0){t=t/i;b=b/i; } break;}cout<<m<<"+"<<t/b<<endl;} void display() {cout<<num<<"+"<<top/bottom<<endl;} int main() {fraction f(2,4),f1(1,2),f3(0,0);f3=f1+f2;cout<<f3.top<<"/"<<f3.bottom<<endl; f3=f1-f2;cout<<f3.top<<"/"<<f3.bottom<<endl; f3=f1*f2;cout<<f3.top<<"/"<<f3.bottom<<endl; f3=f1/f2;cout<<f3.top<<"/"<<f3.bottom<<endl; return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/fengmian/p/9153211.html
總結(jié)
- 上一篇: NS3_Tutorial 中文版: 第一
- 下一篇: 项目二--Time类