面向对象程序设计 团队做业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

问题

对本次做业主要的问题就是“思路”,可能在代码的实现上仍是有必定的能力和想法,可是须要一个具体的思路来引导。因此在开始以前找了比较多的资料来学习完成这类程序的思路方法。也有在同窗发布的博客中找到颇有用的资料,总的来讲,在资料方面仍是有所收获的。对象

总结

一、团队做业最重要的就是有明确的分工,而且按时完成本身份内的工做,这样才不会影响整个团队的进度
二、经过这次做业更加深刻地认识了面向对象的程序设计,体会到了在面对较大规模的程序时面向对象的重要性继承

相关文章
相关标签/搜索