面向對象程序設計 團隊做業3

思路描述

剛開始接到這個做業時,不知道該從何入手,太多的東西須要瞭解和學習。接口的設置、界面的構造等等都是還沒有接觸過的東西。後來在老師屢次強調C++面向對象的特性以後,漸漸的理解了抽象、封裝、繼承和多態的重要性。簡單來講:一個再複雜的程序,都是能夠當作一個又一個對象拼接起來的結果,加上C++對封裝的要求,能夠從每一個簡單的對象入手,經過類的實現,構建起程序的基礎模型,再在基礎上一步一步地完善。至此,終於發現而且親身體會到了面向對象的巧妙之處,在處理較大規模的程序時,沒必要將每一步操做統籌到一塊兒進行編程,而能夠一塊一塊的實現。編程

具體實現

根據個人分工定位,要創建而且根據須要完善類。
英雄類主要是攻擊和調用技能的實現:
普通攻擊能夠直接實現:函數

void heroes::Attack(heroes &p)
{
    cout << name << "攻擊" << endl;
    p.HP -= attack;
    cout << p.name << "受到" << attack << "點傷害" << endl;
    if (p.HP <= 0)
        cout << "K.O." << endl;
}

技能攻擊則須要調用技能類的成員函數完成:學習

bool heroes::skill_attack(heroes &p)
{
    cout << name << "技能攻擊" << endl;
    if (useSkill == 1)
    {
        if (shitan::judge(*this))
        {
            cout << name << "發動試探" << endl;
            Hurt(heroes &p);
            return true;
        }
        else
        {
            cout << "等級過低沒法使用此技能,請從新選擇技能" << endl;
            return false;
        }
    }
    if (useSkill == 2)
    {
        if (chengjie::judge(*this))
        {
            cout << name << "發動懲戒" << endl;
            Hurt(heroes &p);
            return true;
        }
        else
        {
            cout << "等級過低沒法使用此技能,請從新選擇技能" << endl;
            return false;
        }
    }
    if (useSkill == 3)
    {
        if (zhansha::judge(*this))
        {
            cout << name << "發動斬殺" << endl;
            zhansha::Hurt(heroes &p);
            return true;
        }
        else
        {
            cout << "等級過低沒法使用此技能,請從新選擇技能" << endl;
            return false;
        }
    }
    if (useSkill == 4)
    {
        if (kuangbao::judge(*this))
        {
            AddAttackSpeed(*this);
            AddAttack(*this);
            Attack(heroes &p);
            return true;
        }
        else
        {
            cout << "等級過低沒法使用此技能,請從新選擇技能" << endl;
            return false;
        }
    }
    if (useSkill == 5)
    {
        if (shanxian::judge(*this))
        {
            return true;
        }
        else
        {
            cout << "等級過低沒法使用此技能,請從新選擇技能" << endl;
            return false;
        }
    }
    if (useSkill == 6)
    {
        if (zhiliaoshu::judge(*this))
        {
            Recovery(*this);
            return true;
        }
        else
        {
            cout << "等級過低沒法使用此技能,請從新選擇技能" << endl;
            return false;
        }
    }
}

技能類即按照題目要求,實現不一樣技能的功能,比較簡單。
PS:設計類的時候實際上是但願有一個界面來描述戰鬥過程,因此在每個功能中都寫入了輸出相應文字的功能,但在實際中還未能實現此功能,只能實現單獨的戰鬥界面。this

花費時間

構建類:

英雄類:4 hours
技能類:2 hours
技能類的實現與英雄類類似,因此花費時間較少。設計

完善類:

後期對類的完善:2 hourscode

問題

對本次做業主要的問題就是「思路」,可能在代碼的實現上仍是有必定的能力和想法,可是須要一個具體的思路來引導。因此在開始以前找了比較多的資料來學習完成這類程序的思路方法。也有在同窗發佈的博客中找到頗有用的資料,總的來講,在資料方面仍是有所收穫的。對象

總結

一、團隊做業最重要的就是有明確的分工,而且按時完成本身份內的工做,這樣纔不會影響整個團隊的進度
二、經過這次做業更加深刻地認識了面向對象的程序設計,體會到了在面對較大規模的程序時面向對象的重要性繼承

相關文章
相關標籤/搜索