學(xué)堂在線C++練習(xí)

類的練習(xí)

#pragma warning(disable:4996)
#include <string.h>
#include <cstdio>
#include<cstdlib>
#include<iostream>
#include<string>
#include<math.h>
using namespace std;
enum CPU_Rank { P1 = 1,P2,P3,P4,P5,P6,P7 };
class CPU {
private:
    CPU_Rank rank;
    int frequency;
    float voltage;
public:
    CPU(CPU_Rank r,int f, float v){//構(gòu)造函數(shù)
        rank = r;
        frequency = f;
        voltage = v;
        cout << "構(gòu)造了一個(gè)CPU!" << endl;
    }
    ~CPU() {//析構(gòu)函數(shù)
        cout << "析構(gòu)了一個(gè)CPU!" << endl;
    }
    //接口
    CPU_Rank GetRank() const { return rank; }
    int GetFrequency() const { return frequency; }
    float GetVoltage() const { return voltage; }

    void SetRank(CPU_Rank r) {
        rank = r;
    }
    void  SetFrequency(int f) {
        frequency = f;
    }
    void SetVoltage(float v) {
        voltage = v;
    }
    void Run() { cout << "CPU開始運(yùn)行" << endl; }
    void Stop() { cout << "CPU停止運(yùn)行" << endl; }
};
enum RAM_Type{DDR2=2,DDR3,DDR4};
class RAM {
private:
    enum RAM_Type type;
    unsigned int frequency;
    unsigned int size;
public:
    RAM(RAM_Type t, unsigned int f, unsigned int s) {
        type = t;
        frequency = f;
        size = s;
        cout << "構(gòu)造了一個(gè)RAM" << endl;
    }
    ~RAM() {
        cout << "析構(gòu)了一個(gè)RAM" << endl;
    }
    RAM_Type GetType() const { return type; }
    unsigned int GetFrequency() const { return frequency; }
    unsigned int GetSize() const { return size; }

    void SetType(RAM_Type t) {
        type = t;
    }
    void  SetFrequency( unsigned int f) {
        frequency = f;
    }
    void SetSize( unsigned int s) {
        size = s;

    }
    void Run() { cout << "RAM開始運(yùn)行" << endl; }
    void Stop() { cout << "RAM停止運(yùn)行" << endl; }

};
enum CDROM_Interface{SATA,USB};
enum CDROM_Install_type{external,build_in};
class CD_ROM {
private:
    enum CDROM_Interface interface_type;
    unsigned int cache_size;
    CDROM_Install_type install_type;
public:
    CD_ROM(CDROM_Interface i, unsigned int s, CDROM_Install_type it) {
        interface_type = i;
        cache_size = s;
        install_type = it;
        cout << "構(gòu)造了一個(gè)CD_ROM!" << endl;
    }
    ~CD_ROM() {
        cout << "析構(gòu)了一個(gè)CD_ROM" << endl;
    }
    CDROM_Interface GetInterfaceType() const  {
        return interface_type;
    }
    unsigned int GetSize() const {
        return cache_size;
    }
    CDROM_Install_type GetInstallType() const {
        return install_type;
    }

    void SetInterfaceType(CDROM_Interface i) {
        interface_type = i;
    }
    void SetSize( unsigned int s) { 
        cache_size = s;
    }
    void SetInstallType(CDROM_Install_type it) {
        install_type = it;
    }
    void Run() {
        cout << "CD_ROM開始運(yùn)行!" << endl;
    }
    void Stop() {
        cout << "CD_ROM停止運(yùn)行" << endl;
    }

};
class COMPUTER {
private:
    CPU my_cpu;
    RAM my_ram;
    CD_ROM my_cdrom;
    unsigned int storage_size;
    unsigned int bandwidth;
public:
    COMPUTER(CPU c, RAM r, CD_ROM cd, unsigned int s, unsigned int b);

    ~COMPUTER() {
        cout << "析構(gòu)了一個(gè)COMPUTER!" <<endl;
    }
    void Run() {
        my_cpu.Run();
        my_ram.Run();
        my_cdrom.Run();
        cout << "COMPUTER開始運(yùn)行!" << endl;
    }
    void Stop() {
        my_cpu.Stop();
        my_ram.Stop();
        my_cdrom.Stop();
        cout << "COMPUTER結(jié)束運(yùn)行!" << endl;
    }
};

COMPUTER::COMPUTER(CPU c, RAM r, CD_ROM cd, unsigned int s, unsigned int b) :
    my_cpu(c), my_ram(r), my_cdrom(cd) {
    storage_size = s;
    bandwidth = b;
    cout << "構(gòu)造了一個(gè)COMPUTER!" << endl;
}
int main()

{
    CPU a(P6, 300, 2.8);
    a.Run();
    a.Stop();
    cout << "*********\n";

    RAM b(DDR3,1600,8);
    b.Run();
    b.Stop();
    cout << "*********\n";

    CD_ROM c(SATA,2, build_in);
    c.Run();
    c.Stop();
    cout << "*********\n";

    COMPUTER my_computer(a, b, c, 128, 10);
    cout << "**********\n";

    my_computer.Run();
    my_computer.Stop();
    cout << "***********\n";
    return 0;

}

用類求最大公約數(shù)

using namespace std;
class Integer {
private:
    int _num;
public:
    //構(gòu)造函數(shù)
    Integer(int num) {
        _num = num;
    }
    //計(jì)算當(dāng)前Integer 和 b之間的最大公約數(shù)
    int gcdm(int a, int b) {
        if (b == 0) {
            return a;
        }
        else {
            return gcdm(b, a % b);
        }
    }
    int gcd(Integer b) {
        int x = _num;
        int y = b._num;
        return gcdm(x, y);
    }
};
int main() {
    int a, b;
    cin >> a >> b;
    Integer A(a);
    Integer B(b);
    cout << A.gcd(B) << endl;
    return 0;
}

數(shù)字反轉(zhuǎn)

輸入12345
輸出54321

/* students please write your program here */

#include <iostream>
#include<math.h>
#include<vector>
using namespace std;

class Integer {
private:
    int _num;
    //getLength()函數(shù)獲取_num長度
    int getLength() {
        double   x = 10;
        int   y = 0;
        while (_num % 10 != 0) {
            _num /= 10;
            ++y;
        }
        return y;
    }
public:
    //Integer類構(gòu)造函數(shù)
    Integer(int num) {
        _num = num;
    }
    //反轉(zhuǎn)_num
    int inversed() {
        vector<int> nums;
        int num1 = _num;
        while (num1 > 0) {
            nums.push_back(num1 % 10);
            num1 /= 10;
        }
        int result=0;
        int m = 0;
        vector<int>::const_iterator iterator = nums.end()-1;
        //vector迭代器相關(guān)操作可以從前往后,不能從后往前,不然會(huì)越界
             

        /*
        int n = getLength()-1;
        for (int j=n;j>=0;j--)
        {
            
            result = result + nums[j] * (pow(10, m++));
        }
        */
        while (!nums.empty()) {
            result = result + nums.back() * (pow(10, m++));
            nums.pop_back();//使用棧的相關(guān)操作可以免去計(jì)數(shù)的麻煩
        }
        return result;
    }
};

int main() {
    int n;
    cin >> n;
    Integer integer(n);
    cout << integer.inversed() << endl;
    return 0;
}

??額寶

#include <iostream>
using namespace std;

class Yuebao
{
    static double profitRate;
public:
    static void setProfitRate(double rate);
    Yuebao(double x) {
        _x = x;
    }
    void deposit(double m);
    void addProfit();
    void withdraw(double n);
    double getBalance()  const {
        return  _x;
    }
    /* Your code here! */
private:
    double _x = 0;//余額

};

void Yuebao::deposit(double m) {
    _x +=m;
}
void Yuebao::withdraw(double n) {
    _x  -= n;
}
void Yuebao::setProfitRate(double rate) {
    profitRate = rate;
}
void Yuebao::addProfit() {
    _x = _x * (1 + profitRate);
}
double Yuebao::profitRate = 0;

int main()
{
    int n;
    while (cin >> n)
    {
        double profitRate;
        cin >> profitRate;
        Yuebao::setProfitRate(profitRate);//設(shè)定魚額寶的利率
        Yuebao y(0); //新建魚額寶賬戶,余額初始化為0
        int operation;//接受輸入判斷是存還是取
        double amount;//接受輸入存取金額
        for (int i = 0; i < n; ++i)
        {
            y.addProfit();//加入前一天余額產(chǎn)生的利息
            cin >> operation >> amount;
            if (operation == 0)
                y.deposit(amount);//存入金額
            else
                y.withdraw(amount);//取出金額
        }
        cout << y.getBalance() << endl;//輸出最終賬戶余額
    }
    return 0;
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末筒饰,一起剝皮案震驚了整個(gè)濱河市郎汪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異捅彻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鞍陨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門步淹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诚撵,你說我怎么就攤上這事缭裆。” “怎么了砾脑?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵幼驶,是天一觀的道長艾杏。 經(jīng)常有香客問我韧衣,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任畅铭,我火速辦了婚禮氏淑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘硕噩。我一直安慰自己假残,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布炉擅。 她就那樣靜靜地躺著辉懒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谍失。 梳的紋絲不亂的頭發(fā)上眶俩,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音快鱼,去河邊找鬼颠印。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抹竹,可吹牛的內(nèi)容都是我干的线罕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼窃判,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼钞楼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起袄琳,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤窿凤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后跨蟹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雳殊,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年窗轩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了夯秃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痢艺,死狀恐怖仓洼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堤舒,我是刑警寧澤色建,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站舌缤,受9級(jí)特大地震影響箕戳,放射性物質(zhì)發(fā)生泄漏某残。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一陵吸、第九天 我趴在偏房一處隱蔽的房頂上張望玻墅。 院中可真熱鬧,春花似錦壮虫、人聲如沸澳厢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剩拢。三九已至,卻和暖如春饶唤,著一層夾襖步出監(jiān)牢的瞬間裸扶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工搬素, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留呵晨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓熬尺,卻偏偏與公主長得像摸屠,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粱哼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355