改错题--小鼠标,你要干什吗?

改错题--小鼠标,你要干什吗?

时间: 1ms        内存:128M

描述:

鼠标双击不同的图标产生不同的效果,比如双击文档(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

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
int main()
{
	int a[100],b[100],c[100];
	scanf("%s",&a);
	scanf("%s",&b);
	scanf("%s",&c);
	printf("Document file :%s\n",a);
	printf("Graphics file :%s\n",b);
	printf("Video file :%s",c);
}

参考答案(时间最优[0]):


#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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注