面向對象程序設計 團隊作業3
阿新 • • 發佈:2018-06-29
zha 技能 自己 his 戰鬥 tac pre 調用 編程
思路描述
剛開始接到這個作業時,不知道該從何入手,太多的東西需要了解和學習。接口的設置、界面的構造等等都是尚未接觸過的東西。後來在老師多次強調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:設計類的時候其實是希望有一個界面來描述戰鬥過程,所以在每一個功能中都寫入了輸出相應文字的功能,但在實際中還未能實現此功能,只能實現單獨的戰鬥界面。
花費時間
構建類:
英雄類:4 hours
技能類:2 hours
技能類的實現與英雄類相似,所以花費時間較少。
完善類:
後期對類的完善:2 hours
問題
對本次作業主要的問題就是“思路”,可能在代碼的實現上還是有一定的能力和想法,但是需要一個具體的思路來引導。所以在開始之前找了比較多的資料來學習完成這類程序的思路方法。也有在同學發布的博客中找到很有用的資料,總的來說,在資料方面還是有所收獲的。
總結
1、團隊作業最重要的就是有明確的分工,並且按時完成自己分內的工作,這樣才不會影響整個團隊的進度
2、通過此次作業更加深入地認識了面向對象的程序設計,體會到了在面對較大規模的程序時面向對象的重要性
面向對象程序設計 團隊作業3