国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn)

這篇具有很好參考價值的文章主要介紹了C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn),c++,開發(fā)語言,visualstudio

#include<iostream>
using namespace std;
#include<string>

//分別利用普通寫法和多態(tài)技術(shù)實現(xiàn)計算器

//普通寫法
class Calculator {
public:
?? ?int getResult(string oper)
?? ?{
?? ??? ?if (oper == "+") {
?? ??? ??? ?return m_Num1 + m_Num2;
?? ??? ?}
?? ??? ?else if (oper == "-") {
?? ??? ??? ?return m_Num1 - m_Num2;
?? ??? ?}
?? ??? ?else if (oper == "*") {
?? ??? ??? ?return m_Num1 * m_Num2;
?? ??? ?}
?? ??? ?//如果想擴展新的功能,需要修改源碼
?? ??? ?//在真實開發(fā)中? 提供? 開閉原則
?? ??? ?//開閉原則:對擴展進行開發(fā),對修改進行關(guān)閉
?? ?}
public:
?? ?int m_Num1;//操作數(shù)1
?? ?int m_Num2;//操作數(shù)2
};

void test01()
{
?? ?//普通實現(xiàn)測試
?? ?//創(chuàng)建計算器對象
?? ?Calculator c;
?? ?c.m_Num1 = 10;
?? ?c.m_Num2 = 10;
?? ?cout << c.m_Num1 << " + " << c.m_Num2 << " = " << c.getResult("+") << endl;

?? ?cout << c.m_Num1 << " - " << c.m_Num2 << " = " << c.getResult("-") << endl;

?? ?cout << c.m_Num1 << " * " << c.m_Num2 << " = " << c.getResult("*") << endl;
}

//利用多態(tài)實現(xiàn)計算器
//實現(xiàn)計算器抽象類
//多態(tài)優(yōu)點:代碼組織結(jié)構(gòu)清晰,可讀性強,利于前期和后期的擴展以及維護
class AbstractCalculator
{
public :

?? ?virtual int getResult()
?? ?{
?? ??? ?return 0;
?? ?}

?? ?int m_Num1;
?? ?int m_Num2;
};

//加法計算器
class AddCalculator :public AbstractCalculator
{
public:
?? ?int getResult()
?? ?{
?? ??? ?return m_Num1 + m_Num2;
?? ?}
};

//減法計算器
class SubCalculator :public AbstractCalculator
{
public:
?? ?int getResult()
?? ?{
?? ??? ?return m_Num1 - m_Num2;
?? ?}
};

//乘法計算器
class MulCalculator :public AbstractCalculator
{
public:
?? ?int getResult()
?? ?{
?? ??? ?return m_Num1 * m_Num2;
?? ?}
};


void test02()
{
?? ?//多態(tài)使用條件
?? ?//父類指針或者引用指向子類對象

?? ?//創(chuàng)建加法計算器
?? ?AbstractCalculator * abc = new AddCalculator;
?? ?abc->m_Num1 = 10;
?? ?abc->m_Num2 = 10;
?? ?cout << abc->m_Num1 << " + " << abc->m_Num2 << " = " << abc->getResult() << endl;
?? ?delete abc;? //用完了記得銷毀

?? ?//創(chuàng)建減法計算器
?? ?abc = new SubCalculator;
?? ?abc->m_Num1 = 10;
?? ?abc->m_Num2 = 10;
?? ?cout << abc->m_Num1 << " - " << abc->m_Num2 << " = " << abc->getResult() << endl;
?? ?delete abc; ?

?? ?//創(chuàng)建乘法計算器
?? ?abc = new MulCalculator;
?? ?abc->m_Num1 = 10;
?? ?abc->m_Num2 = 10;
?? ?cout << abc->m_Num1 << " * " << abc->m_Num2 << " = " << abc->getResult() << endl;
?? ?delete abc;
}

int main() {

?? ?//test01();

?? ?test02();

?? ?system("pause");

?? ?return 0;
}

總結(jié):C++開發(fā)提倡利用多態(tài)設(shè)計程序架構(gòu),因為多態(tài)優(yōu)點很多

C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn),c++,開發(fā)語言,visualstudio

#include<iostream>
using namespace std;


//抽象制作飲品
class AbstractDrinking
{
public:
?? ?//燒水
?? ?virtual void Boil() = 0;
?? ?//沖泡
?? ?virtual void Brew() = 0;
?? ?//倒入杯中
?? ?virtual void PourInCup() = 0;
?? ?//加入輔料
?? ?virtual void PutSomething() = 0;
?? ?//規(guī)定流程
?? ?void MakeDrink()
?? ?{
?? ??? ?Boil();
?? ??? ?Brew();
?? ??? ?PourInCup();
?? ??? ?PutSomething();
?? ?}
};

//制作咖啡
class Coffee : public AbstractDrinking
{
public:
?? ?//燒水
?? ?virtual void Boil()
?? ?{
?? ??? ?cout << "煮農(nóng)夫山泉!" << endl;
?? ?}
?? ?//沖泡
?? ?virtual void Brew()
?? ?{
?? ??? ?cout << "沖泡咖啡!" << endl;
?? ?}
?? ?//倒入杯中
?? ?virtual void PourInCup()
?? ?{
?? ??? ?cout << "將咖啡倒入杯中!" << endl;
?? ?}
?? ?//加入輔料
?? ?virtual void PutSomething()
?? ?{
?? ??? ?cout << "加入牛奶!" << endl;
?? ?}
};

//制作茶水
class Tea : public AbstractDrinking
{
public:
?? ?//燒水
?? ?virtual void Boil()
?? ?{
?? ??? ?cout << "煮自來水!" << endl;
?? ?}
?? ?//沖泡
?? ?virtual void Brew()
?? ?{
?? ??? ?cout << "沖泡茶葉!" << endl;
?? ?}
?? ?//倒入杯中
?? ?virtual void PourInCup()
?? ?{
?? ??? ?cout << "將茶水倒入杯中!" << endl;
?? ?}
?? ?//加入輔料
?? ?virtual void PutSomething()
?? ?{
?? ??? ?cout << "加入枸杞!" << endl;
?? ?}
};

//制作函數(shù)
void DoWork(AbstractDrinking * drink)
{
?? ?drink->MakeDrink();
?? ?delete drink;
}

void test01()
{
?? ?//制作咖啡
?? ?DoWork(new Coffee);
?? ?cout << "--------------" << endl;
?? ?//制作茶葉
?? ?DoWork(new Tea);
}


int main()
{

?? ?test01();

?? ?system("pause");

?? ?return 0;
}

C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn),c++,開發(fā)語言,visualstudio

C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn),c++,開發(fā)語言,visualstudio

#include<iostream>
using namespace std;

//抽象不同零件類
//抽象CPU類
class CPU
{
public:
?? ?//抽象的計算函數(shù)
?? ?virtual void calculate() = 0;
};

//抽象顯卡類
class VideoCard
{
public:
?? ?//抽象的顯示函數(shù)
?? ?virtual void display() = 0;
};

//抽象內(nèi)存條類
class Memory
{
public:
?? ?//抽象的存儲函數(shù)
?? ?virtual void storage() = 0;
};

//電腦類
class Computer
{
public:
?? ?Computer(CPU * cpu, VideoCard * vc, Memory * mem)
?? ?{
?? ??? ?m_cpu = cpu;
?? ??? ?m_vc = vc;
?? ??? ?m_mem = mem;
?? ?}

?? ?//提供工作的函數(shù)
?? ?void work()
?? ?{
?? ??? ?//讓零件工作起來,調(diào)用接口
?? ??? ?m_cpu->calculate();

?? ??? ?m_vc->display();

?? ??? ?m_mem->storage();
?? ?}

?? ?//提供析構(gòu)函數(shù) 釋放3個電腦零件
?? ?~Computer()
?? ?{

?? ??? ?//釋放CPU零件
?? ??? ?if (m_cpu != NULL)
?? ??? ?{
?? ??? ??? ?delete m_cpu;
?? ??? ??? ?m_cpu = NULL;
?? ??? ?}

?? ??? ?//釋放顯卡零件
?? ??? ?if (m_vc != NULL)
?? ??? ?{
?? ??? ??? ?delete m_vc;
?? ??? ??? ?m_vc = NULL;
?? ??? ?}

?? ??? ?//釋放內(nèi)存條零件
?? ??? ?if (m_mem != NULL)
?? ??? ?{
?? ??? ??? ?delete m_mem;
?? ??? ??? ?m_mem = NULL;
?? ??? ?}
?? ?}

private:

?? ?CPU * m_cpu;????? //CPU的零件指針
?? ?VideoCard * m_vc; //顯卡零件指針
?? ?Memory * m_mem;?? //內(nèi)存條零件指針
};

//具體廠商
//Intel廠商
class IntelCPU :public CPU
{
public:
?? ?virtual void calculate()
?? ?{
?? ??? ?cout << "Intel的CPU開始計算了!" << endl;
?? ?}
};

class IntelVideoCard :public VideoCard
{
public:
?? ?virtual void display()
?? ?{
?? ??? ?cout << "Intel的顯卡開始顯示了!" << endl;
?? ?}
};

class IntelMemory :public Memory
{
public:
?? ?virtual void storage()
?? ?{
?? ??? ?cout << "Intel的內(nèi)存條開始存儲了!" << endl;
?? ?}
};

//Lenovo廠商
class LenovoCPU :public CPU
{
public:
?? ?virtual void calculate()
?? ?{
?? ??? ?cout << "Lenovo的CPU開始計算了!" << endl;
?? ?}
};

class LenovoVideoCard :public VideoCard
{
public:
?? ?virtual void display()
?? ?{
?? ??? ?cout << "Lenovo的顯卡開始顯示了!" << endl;
?? ?}
};

class LenovoMemory :public Memory
{
public:
?? ?virtual void storage()
?? ?{
?? ??? ?cout << "Lenovo的內(nèi)存條開始存儲了!" << endl;
?? ?}
};


void test01()
{
?? ?//第一臺電腦零件
?? ?CPU * intelCpu = new IntelCPU;
?? ?VideoCard * intelCard = new IntelVideoCard;
?? ?Memory * intelMem = new IntelMemory;

?? ?cout << "第一臺電腦開始工作:" << endl;
?? ?//創(chuàng)建第一臺電腦
?? ?Computer * computer1 = new Computer(intelCpu, intelCard, intelMem);
?? ?computer1->work();
?? ?delete computer1;

?? ?cout << "-----------------------" << endl;
?? ?cout << "第二臺電腦開始工作:" << endl;
?? ?//第二臺電腦組裝
?? ?Computer * computer2 = new Computer(new LenovoCPU, new LenovoVideoCard, new LenovoMemory);
?? ?computer2->work();
?? ?delete computer2;

?? ?cout << "-----------------------" << endl;
?? ?cout << "第三臺電腦開始工作:" << endl;
?? ?//第三臺電腦組裝
?? ?Computer * computer3 = new Computer(new LenovoCPU, new IntelVideoCard, new LenovoMemory);
?? ?computer3->work();
?? ?delete computer3;

}

int main()
{

?? ?test01();

?? ?system("pause");
?? ?return 0;
}文章來源地址http://www.zghlxwxcb.cn/news/detail-830121.html

到了這里,關(guān)于C++類和對象-多態(tài)->案例1計算器類、案例2制作飲品、案例3電腦組裝需求分析和電腦組裝具體實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【C++】類與對象(日期計算器)

    【C++】類與對象(日期計算器)

    ?????個人主頁: 秦jh__https://blog.csdn.net/qinjh_?spm=1010.2135.3001.5343 ???系列專欄: 目錄 頭文件 函數(shù)實現(xiàn) ???? ?? hello! 各位鐵子們大家好哇。 ? ? ? ? ? ? ?今日更新了類與對象日期計算器的內(nèi)容 ???? ?? 歡迎大家關(guān)注??點贊??收藏??留言?? 聲明流插入和流提

    2024年03月10日
    瀏覽(47)
  • 【MFC實踐】基于MFC向?qū)++制作計算器(附文件)

    【MFC實踐】基于MFC向?qū)++制作計算器(附文件)

    MFC(Microsoft Foundation Classes)向?qū)且惶子糜诤喕疻indows應(yīng)用程序開發(fā)的工具集。 它建立在Microsoft Foundation Classes(MFC)之上,為開發(fā)人員提供了一種更直觀、高效的方式來構(gòu)建圖形用戶界面(GUI)應(yīng)用程序。MFC向?qū)ㄟ^提供可視化設(shè)計工具、代碼生成器等功能,使得開發(fā)者能夠

    2024年01月16日
    瀏覽(20)
  • JAVA制作的簡易計算器——傻瓜計算器

    JAVA制作的簡易計算器——傻瓜計算器

    用JAVA編寫的傻瓜計算器 作用: 1.可以實現(xiàn)加法、減法、乘法、除法簡單運算且是單一運算,不可混合使用。 2.CE為清除鍵 3.沒有小數(shù)點O(∩_∩)O 思路: 創(chuàng)建JFrame窗口,設(shè)置標題,創(chuàng)建JButton,創(chuàng)建文本框JTextField用作顯示。 先定義各種按鈕類型,用作成員。定義窗口方法對窗口

    2024年02月11日
    瀏覽(17)
  • Qt制作計算器

    Qt制作計算器

    運用數(shù)據(jù)隊列中的棧知識,使用Qt制作簡易的計算器 ①支持中綴表達式的基本四則運算 ②支持軟(軟件自帶鍵盤),硬(實體鍵盤)鍵盤均可操作,并且按鍵時觸發(fā)小特效 ③支持查看歷史記錄 將用戶輸入的表達式分解為 運算符 和 操作數(shù) 兩類 運算符:\\\"+\\\", \\\"-\\\", \\\"*\\\", \\\"/\\\", \\\"(\\\", \\\")\\\" 操

    2024年02月08日
    瀏覽(33)
  • C# 制作簡易計算器

    C# 制作簡易計算器

    前言:環(huán)境是vs 2022 1、打開vs2022后,右邊導(dǎo)航欄選擇創(chuàng)建新項目。 ?2、選擇Windows窗體應(yīng)用(.net? Framework) ?3、進入配置新項目界面(項目名稱和位置可自行修改)點擊創(chuàng)建 ?4、窗體From1即為我們要要編輯的位置 ?5、在窗體中添加對應(yīng)的工具 6、并在對應(yīng)的屬性窗口為其修改

    2024年02月08日
    瀏覽(30)
  • tkinter制作一個簡單計算器

    tkinter制作一個簡單計算器

    ????????我們知道tkinter是python常用的UI框架,那么它是如何使用的呢?我們用一個簡單的例子來顯示它的作用,制作一個簡單的計算器,如下圖所示。 上圖是一個計算器,我們可以看出它一共有20個鍵,每個按鍵都表示一個功能,在最上方是一個文本框用來顯示數(shù)值。接下

    2024年02月11日
    瀏覽(27)
  • 用Java制作簡單的計算器

    用Java制作簡單的計算器

    本篇文章主要是提供思路,當然文章末尾也又提供了源代碼。 代碼也是寫了幾天,重要的理解,不是直接復(fù)制粘貼就交作業(yè)了。 轉(zhuǎn)載請注明出處,尊重作者勞動成果。 目錄 界面的設(shè)計: 事件的響應(yīng): 計算: 詳細代碼如下: ?總結(jié): 要制作一個簡單的計算器,首先就是對

    2024年02月08日
    瀏覽(12)
  • 用python制作一個簡易計算器

    這是一個用Python制作簡單計算器的教程。你可以根據(jù)需要進行更多的改進,例如添加其他運算符或功能。 首先,我們需要創(chuàng)建一個簡單的用戶界面,用于顯示計算器的按鍵和結(jié)果。在Python中,我們可以使用 tkinter 庫來創(chuàng)建圖形用戶界面。創(chuàng)建一個新的Python文件,并將其命名為

    2024年02月11日
    瀏覽(22)
  • 制作一個簡易的計算器app

    制作一個簡易的計算器app

    github項目地址:https://github.com/13008451162/AndroidMoblieCalculator 筆者的Ui制作的制作的比較麻煩僅供參考,在這里使用了多個LinearLayout對屏幕進行了劃分。不建議大家這樣做最好使用GridLayout會更加快捷簡單 筆者大致劃分是這樣的: 使用了四個大框,在第四個大框里面有多個小框

    2024年02月15日
    瀏覽(31)
  • Qt 制作一個簡易的計算器

    Qt 制作一個簡易的計算器

    1.通過UI界面封裝出計算器的大致模型 進入設(shè)計頁面后,左側(cè)會有各種控件,可以將他們拖拽到你想編輯的窗口中,我們要做的是計算器,所以只用到很少幾個控件,我們最主要用到Push Button這個控件來做我們計算器的按鈕,lineEdit顯示數(shù)字,我們可以將它拖拽到窗口,然后就

    2024年02月05日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包