内存:128  时间:1

题目描述

鼠标双击不同的图标产生不同的效果,比如双击文档(document)文件,则打开文档文件;双击图形(graphics)文件,则显示图形;双击视频(video)文件,则播放视频。下面程序是鼠标的双击三种文档、图形和视频类型文件的程序。

注:本题只需要提交修改和完善部分的代码,请按照C++方式提交。

#include <string>
#include <iostream>
using namespace std;
/* 修改和完善该部分代码
class Filetype
{
public:

    void DoubleClick() =0;
    virtual Filetype(string name)
    {
        Filename = name;
    }
    string getFilename()
    {
        return Filename;
    }
    virtual ~Filetype() {}
private:
    string Filename;
};
*/
class Documenttype:public Filetype
{
public:
    void DoubleClick()
    {
        cout<<"Document file :"<< getFilename()<<endl;
    }
    Documenttype(string name):Filetype(name)
    {
    }
};
class Graphicstype:public Filetype
{
public:
    void DoubleClick()
    {
        cout<<"Graphics file :"<< getFilename()<<endl;
    }
    Graphicstype(string name):Filetype(name)
    {
    }
};
class Videotype:public Filetype
{
public:
    void DoubleClick()
    {
        cout<<"Video file :"<< getFilename()<<endl;
    }
    Videotype(string name):Filetype(name)
    {
    }
};
int main()
{
    string name;
    Filetype *ptype;
    cin>>name;
    ptype=new Documenttype(name);
    ptype->DoubleClick();
    delete ptype;
    cin>>name;
    ptype=new Graphicstype(name);
    ptype->DoubleClick();
    delete ptype;
    cin>>name;
    ptype=new Videotype(name);
    ptype->DoubleClick();
    delete ptype;
    return 0;
}

输入

输入有3行
第一行是一个文档文件名,第二行是一个图形文件名,第三行是一个视频文件名

输出

第一行输出Document file :文档文件名
第二行输出Graphics file :图形文件名
第三行输出Video file :视频文件名

样例输入

a.txt
b.bmp
c.mp4

样例输出

Document file :a.txt
Graphics file :b.bmp
Video file :c.mp4

提示

代码如下


#include <string>
#include <iostream>
using namespace std;
class Filetype
{
public:

    virtual void DoubleClick() =0;
    Filetype(string name)
    {
        Filename = name;
    }
    string getFilename()
    {
        return Filename;
    }
    virtual ~Filetype() {}
private:
    string Filename;
};

class Documenttype:public Filetype
{
public:
    void DoubleClick()
    {
        cout<<"Document file :"<< getFilename()<<endl;
    }
    Documenttype(string name):Filetype(name)
    {
    }
};
class Graphicstype:public Filetype
{
public:
    void DoubleClick()
    {
        cout<<"Graphics file :"<< getFilename()<<endl;
    }
    Graphicstype(string name):Filetype(name)
    {
    }
};
class Videotype:public Filetype
{
public:
    void DoubleClick()
    {
        cout<<"Video file :"<< getFilename()<<endl;
    }
    Videotype(string name):Filetype(name)
    {
    }
};
int main()
{
    string name;
    Filetype *ptype;
    cin>>name;
    ptype=new Documenttype(name);
    ptype->DoubleClick();
    delete ptype;
    cin>>name;
    ptype=new Graphicstype(name);
    ptype->DoubleClick();
    delete ptype;
    cin>>name;
    ptype=new Videotype(name);
    ptype->DoubleClick();
    delete ptype;
    return 0;
}

代码来源于互联网,仅供参考!