PDE实验报告.docx

上传人:b****5 文档编号:8161269 上传时间:2023-01-29 格式:DOCX 页数:19 大小:46.92KB
下载 相关 举报
PDE实验报告.docx_第1页
第1页 / 共19页
PDE实验报告.docx_第2页
第2页 / 共19页
PDE实验报告.docx_第3页
第3页 / 共19页
PDE实验报告.docx_第4页
第4页 / 共19页
PDE实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

PDE实验报告.docx

《PDE实验报告.docx》由会员分享,可在线阅读,更多相关《PDE实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

PDE实验报告.docx

PDE实验报告

附件(四)

深圳大学实验报告

 

课程名称:

程序设计实验与课程设计

实验项目名称:

类入门

学院:

计算机与软件学院

专业:

未分

指导教师:

白鉴聪

报告人:

谢伟雄学号:

2013150382班级:

08

实验时间:

2014年5月23日

实验报告提交时间:

2014-5-26

教务处制

一、实验目的与完成说明:

1.简单介绍本实验的主要目的

掌握类定义,类实现和类应用

2.说明本次实验中你完成了第几项要求(必填)

第一,第二和第三项要求

二、主要思路与方法:

1.对于本次实验,介绍最重要的函数或算法,并谈谈你对这些函数或算法的理解

Get函数,因为类中private的数据不能直接使用,所以得用get方法来使用这些数据,

保证数据的安全性

三.实验程序或内容:

1.针对每一项实验要求,给出编写的代码,可以粘贴全部代码,也可以只粘贴重要的代码(为了节省纸张),但代码必须完整,至少是完整的函数。

2.代码符合以下要求,评分更高:

a.排版整齐,可读性高

b.代码有注释,越详细越清晰越好

1类定义.

#include

usingnamespacestd;

classUltraman{//奥特曼的类声明

public:

    intgetrank(){returnrank;};

    intgethp(){returnhp;};

    intgetdamage(){returndamage;};

    intgetmoney(){returnmoney;};

    intgetexp(){returnexp;};

    voidinitial(int);

    voiddisplay();

    voidwin(int,int);//赢的情况

    voidescape();//逃跑即输的情况

    voidrestore();//补血的情况 

    voidupgrade();//升级的情况

    voidattacked(int);//被攻击的情况

  

private:

//属性

    intrank;//等级

    inthp;//生命值

    intdamage;//攻击力

    intmoney;//持有金钱

    intexp;//现有经验

};

  

classmonster{//小怪兽的类声明

public:

    intgetrank(){returnrank;};

    intgethp(){returnhp;};

    intgetdamage(){returndamage;};

    intgetmoney(){returnmoney;};

    intgetexp(){returnexp;};

    voidinitial(intrank);

    voiddisplay();

    voidattacked(int);//奥特曼攻击的情况

private:

    intrank;//等级

    inthp;//生命值

    intdamage;//攻击力

    intexp;//提供的经验

    intmoney;//提供的金钱  

};

2.类实现

#include

usingnamespacestd;

classUltraman{//奥特曼的类声明

public:

    intgetrank(){returnrank;};

    intgethp(){returnhp;};

    intgetdamage(){returndamage;};

    intgetmoney(){returnmoney;};

    intgetexp(){returnexp;};

    voidinitial(int);

    voiddisplay();

    voidwin(int,int);//赢的情况

    voidescape();//逃跑即输的情况

    voidrestore();//补血的情况 

    voidupgrade();//升级的情况

    voidattacked(int);//被攻击的情况

  

private:

//属性

    intrank;//等级

    inthp;//生命值

    intdamage;//攻击力

    intmoney;//持有金钱

    intexp;//现有经验

};

  

classmonster{//小怪兽的类声明

public:

    intgetrank(){returnrank;};

    intgethp(){returnhp;};

    intgetdamage(){returndamage;};

    intgetmoney(){returnmoney;};

    intgetexp(){returnexp;};

    voidinitial(intrank);

    voiddisplay();

    voidattacked(int);//奥特曼攻击的情况

private:

    intrank;//等级

    inthp;//生命值

    intdamage;//攻击力

    intexp;//提供的经验

    intmoney;//提供的金钱  

};

  

  

voidUltraman:

:

initial(intirank)//奥特曼的初始化函数

{

    rank=irank;

    hp=10*irank;

    damage=3*irank;

    money=10*irank;

    exp=0; 

}

voidmonster:

:

initial(intirank)//怪兽的初始化函数

{

    rank=irank;

    hp=20*irank;

    damage=2*irank;

    money=10*irank;

    exp=10*irank;

}

  

void Ultraman:

:

display()//显示奥特曼状态的函数

{

    cout<<"rank="<

        <<"hp="<

        <<"damage="<

        <<"exp="<

        <<"money="<

}

voidmonster:

:

display()//显示怪兽状态的函数

{

    cout<<"rank="<

        <<"hp="<

        <<"damage="<

        <<"exp="<

        <<"money="<

}

  

voidmonster:

:

attacked(intUltramandamage)//奥特曼攻击的情况

{

    hp-=Ultramandamage;

}

 voidUltraman:

:

attacked(intmonsterdamage)//被攻击的情况

{

    hp-=monsterdamage/2;

}

voidUltraman:

:

restore()//补血的情况

{

    if((10*rank-hp)>money/10)

    {

        hp+=money/10;

        money=money%10;

    }

    else

    {

        money-=(10*rank-hp)*10;

        hp=10*rank;

    }

     

}

  

voidUltraman:

:

escape()//逃跑的情况

{

    money=0;

    cout<<"lose"<

 }

voidUltraman:

:

win(intmonstermoney,intmonsterexp)//赢的情况

{

    cout<<"win"<

    money+=monstermoney;

    exp+=monsterexp;

}

voidUltraman:

:

upgrade()//升级的情况

{

    exp-=10*rank;

    rank++;

    hp=10*rank;

    damage=3*rank; 

}

intmain()

{

    intt,n,m,flag;

    Ultramana;

    monsterb;

    cin>>t;

    while(t--)

    {

    cin>>n>>m;//输入奥特曼和怪兽的等级

    a.initial(n);//奥特曼的初始化

    b.initial(m);//怪兽的初始化

    a.display();//输出奥特曼状态

    b.display();//输出怪兽状态

    flag=true;

    while(flag)//当战斗未结束就继续

    {

       b.attacked(a.getdamage());

       if(b.gethp()>0)

       {

           a.attacked(b.getdamage());

           if(a.gethp()<=10)

           {

               a.escape();

               a.display();

               flag=false;

           }

           elseif(a.gethp()<5*a.getrank())

               a.restore();

       }

       else

       {

           a.win(b.getmoney(),b.getexp());

           if(a.getexp()>=10*a.getrank())

               a.upgrade();

           a.display();

           flag=false;

       }

  

    }//endwhileflag

    }//endwhilet

    return0;

}

3.类应用

#include

usingnamespacestd;

classUltraman{//奥特曼的类声明

public:

    intgetrank(){returnrank;};

    intgethp(){returnhp;};

    intgetdamage(){returndamage;};

    intgetmoney(){returnmoney;};

    intgetexp(){returnexp;};

    voidinitial(int);

    voiddisplay();

    voidwin(int,int);//赢的情况

    voidescape();//逃跑即输的情况

    voidrestore();//补血的情况 

    voidupgrade();//升级的情况

    voidattacked(int);//被攻击的情况

     

private:

//属性

    intrank;//等级

    inthp;//生命值

    intdamage;//攻击力

    intmoney;//持有金钱

    intexp;//现有经验

};

 

classmonster{//小怪兽的类声明

public:

    intgetrank(){returnrank;};

    intgethp(){returnhp;};

    intgetdamage(){returndamage;};

    intgetmoney(){returnmoney;};

    intgetexp(){returnexp;};

    voidinitial(int,char);

    voiddisplay();

    voidattacked(int);//奥特曼攻击的情况

private:

    intrank;//等级

    inthp;//生命值

    intdamage;//攻击力

    intexp;//提供的经验

    intmoney;//提供的金钱  

};

 

 

voidUltraman:

:

initial(intirank)//奥特曼的初始化函数

{

    rank=irank;

    hp=10*irank;

    damage=3*irank;

    money=10*irank;

    exp=0; 

}

voidmonster:

:

initial(intirank,chartype)//怪兽的初始化函数

{

    if(type=='N')

    {

        rank=irank;

        hp=10*irank;

        damage=2*irank;

        money=10*irank;

        exp=10*irank;

    }

    elseif(type=='A')

    {

        rank=irank;

        hp=5*irank;

        damage=5*irank;

        money=15*irank;

        exp=15*irank;

    }

    elseif(type=='D')

    {

        rank=irank;

        hp=25*irank;

        damage=irank;

        money=15*irank;

        exp=15*irank;

    }

    elseif(type=='M')

    {

        rank=irank;

        hp=11*irank;

        damage=irank;

        money=25*irank;

        exp=25*irank;

    }

     

}

 

void Ultraman:

:

display()//显示奥特曼状态的函数

{

    cout<<"rank="<

        <<"hp="<

        <<"damage="<

        <<"exp="<

        <<"money="<

}

voidmonster:

:

display()//显示怪兽状态的函数

{

    cout<<"rank="<

        <<"hp="<

        <<"damage="<

        <<"exp="<

        <<"money="<

}

 

voidmonster:

:

attacked(intUltramandamage)//奥特曼攻击的情况

{

    hp-=Ultramandamage;

}

voidUltraman:

:

attacked(intmonsterdamage)//被攻击的情况

{

    hp-=monsterdamage/2;

}

voidUltraman:

:

restore()//补血的情况

{

    if((10*rank-hp)>money/10)

    {

        hp+=money/10;

        money=money%10;

    }

    else

    {

        money-=(10*rank-hp)*10;

        hp=10*rank;

    }

     

}

 

voidUltraman:

:

escape()//逃跑的情况

{

    money=0;

    cout<<"lose"<

}

voidUltraman:

:

win(intmonstermoney,intmonsterexp)//赢的情况

{

    cout<<"win"<

    money+=monstermoney;

    exp+=monsterexp;

}

voidUltraman:

:

upgrade()//升级的情况

{

    while(exp>=10*rank)

    {

        exp-=10*rank;

        rank++;

    }

    hp=10*rank;

    damage=3*rank; 

}

intmain()

{

    intc,t,n,i,d,flag,lv[100];

    charty[100];

    Ultramana;

    monsterb;

    cin>>t;

    while(t--)

    {

        d=1;

        cin>>c;//输入奥特曼等级

        a.initial(c);//奥特曼的初始化

        a.display();//输出奥特曼状态

        cin>>n;

        for(i=0;i

            cin>>lv[i]>>ty[i];//输入怪兽等级和种类

        i=0;

        while(i

        {

         

            b.initial(lv[i],ty[i]);

            flag=true;

            while(flag)//当战斗未结束就继续

            {

                b.attacked(a.getdamage());

                if(b.gethp()>0)

                {

                    a.attacked(b.getdamage());

                    if(a.gethp()<=10)

                    {

                        a.escape();

                        a.display();

                        flag=false;

                         

                    }

                    elseif(a.gethp()<5*a.getrank())

                        a.restore();

                }

                else

                {

                    a.win(b.getmoney(),b.getexp());

                    a.upgrade();

                    

                    flag=false;

                }

             

                 

            }//endwhileflag

                i++;

                if(a.gethp()<=10)break;

             a.display();

        }//endwhilen

         

    }//endwhilet

    return0;

}

 

四、实验结论:

根据你完成的每个实验要求,给出相应的实验结果图,并结合图来解析整个运行过程

类实现

先输入t表示有t个测试实例,接着t行输入奥特曼和怪兽的等级,每个实例输出4行结果,头两行是奥特曼和怪兽的初始状态,第3行是战斗结果,第4行是奥特曼的最终状态,结果跟要求的一样

类应用

第1行输入t表示有t个测试实例,对于每个测试实例,首行先输入奥特曼等级,接着下一行输入n,表示怪兽数量接着n行输入怪兽的等级和类型,输出奥特曼和每个怪兽的战斗结果,发现结果和要求的一样

五、实验体会:

(根据自己情况填写)

类定义和应用整体来说并不难,但需要注意一些内容,如private中的数据并不能直接使用,得应用get函数,同时类函数里面并不能够直接使用另一个类里面的数据,也就是说类与类之间是独立的,并不依靠另外的。

注:

“指导教师批阅意见”栏请单独放置一页

指导教师批阅意见:

成绩评定:

指导教师签字:

年月日

备注:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1