面向对象程序设计案例
生活随笔
收集整理的這篇文章主要介紹了
面向对象程序设计案例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 .設(shè)計立方體類
設(shè)計立方體類(Cube),求出立方體的面積( 2*a*b + 2*a*c + 2*b*c )和體積( a * b * c),分別用全局函數(shù)和成員函數(shù)判斷兩個立方體是否相等。
//立方體類 class Cub{ public:void setL(int l){ mL = l; }void setW(int w){ mW = w; }void setH(int h){ mH = h; }int getL(){ return mL; }int getW(){ return mW; }int getH(){ return mH; }//立方體面積int caculateS(){ return (mL*mW + mL*mH + mW*mH) * 2; }//立方體體積int caculateV(){ return mL * mW * mH; }//成員方法bool CubCompare(Cub& c){if (getL() == c.getL() && getW() == c.getW() && getH() == c.getH()){return true;}return false;} private:int mL; //長int mW; //寬int mH; //高 };//比較兩個立方體是否相等 bool CubCompare(Cub& c1, Cub& c2){if (c1.getL() == c2.getL() && c1.getW() == c2.getW() && c1.getH() == c2.getH()){return true;}return false; }void test(){Cub c1, c2;c1.setL(10);c1.setW(20);c1.setH(30);c2.setL(20);c2.setW(20);c2.setH(30);cout << "c1面積:" << c1.caculateS() << " 體積:" << c1.caculateV() << endl;cout << "c2面積:" << c2.caculateS() << " 體積:" << c2.caculateV() << endl;//比較兩個立方體是否相等if (CubCompare(c1, c2)){cout << "c1和c2相等!" << endl;}else{cout << "c1和c2不相等!" << endl;}if (c1.CubCompare(c2)){cout << "c1和c2相等!" << endl;}else{cout << "c1和c2不相等!" << endl;} }?
2.?點和圓的關(guān)系
設(shè)計一個圓形類(AdvCircle),和一個點類(Point),計算點和圓的關(guān)系。
假如圓心坐標(biāo)為x0, y0, 半徑為r,點的坐標(biāo)為x1, y1:
1)點在圓上:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) == r*r
2)點在圓內(nèi):(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) < r*r
3)點在圓外:(x1-x0)*(x1-x0) + (y1-y0)*(y1-y0) > r*r
//點類 class Point{ public:void setX(int x){ mX = x; }void setY(int y){ mY = y; }int getX(){ return mX; }int getY(){ return mY; } private:int mX;int mY; };//圓類 class Circle{ public:void setP(int x,int y){mP.setX(x);mP.setY(y);}void setR(int r){ mR = r; }Point& getP(){ return mP; }int getR(){ return mR; }//判斷點和圓的關(guān)系void IsPointInCircle(Point& point){int distance = (point.getX() - mP.getX()) * (point.getX() - mP.getX()) + (point.getY() - mP.getY()) * (point.getY() - mP.getY());int radius = mR * mR;if (distance < radius){cout << "Point(" << point.getX() << "," << point.getY() << ")在圓內(nèi)!" << endl;}else if (distance > radius){cout << "Point(" << point.getX() << "," << point.getY() << ")在圓外!" << endl;}else{cout << "Point(" << point.getX() << "," << point.getY() << ")在圓上!" << endl;}} private:Point mP; //圓心int mR; //半徑 };void test(){//實例化圓對象 Circle circle;circle.setP(20, 20);circle.setR(5);//實例化點對象 Point point;point.setX(25);point.setY(20);circle.IsPointInCircle(point); }?
?
轉(zhuǎn)載于:https://www.cnblogs.com/mmc9527/p/10429813.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的面向对象程序设计案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot-(6)-日志SLF
- 下一篇: 判断条件为空时需要注意