exam3.cpp
来自「C++语言程序设计题典」· C++ 代码 · 共 90 行
CPP
90 行
#include <iostream.h>
#include <string.h>
class Database
{
char author[10]; //作者
char title[20]; //名称
char date[10]; //年份
public:
Database(char *,char *,char *);
virtual void disp();
};
class Painting:public Database
{
int width,height; //画的宽度与高度
public:
Painting(char *,char *,char *,int,int);
virtual void disp();
};
class Music:public Database
{
char key[10]; //音乐曲调
public:
Music(char *,char *,char *,char *);
virtual void disp();
};
class Chamber:public Music
{
int n; //室内曲首数
public:
Chamber(char *,char *,char *,char *,int);
virtual void disp();
};
Database::Database(char *a,char *t,char *d)
{
strcpy(author,a);
strcpy(title,t);
strcpy(date,d);
}
void Database::disp()
{
cout << " 作者:" << author << endl;
cout << " 名称:" << title << endl;
cout << " 日期:" << date << endl;
}
Painting::Painting(char *a,char *t,char *d,int w,int h)
:Database(a,t,d)
{
width=w;height=h;
}
void Painting::disp()
{
Database::disp();
cout << " 类型:绘画" << endl;
cout << " 尺寸:宽度=" << width << ",高度=" << height << endl;
}
Music::Music(char *a,char *t,char *d,char *k):Database(a,t,d)
{
strcpy(key,k);
}
void Music::disp()
{
Database::disp();
cout << " 类型:音乐" << endl;
cout << " 曲调:" << key << endl;
}
Chamber::Chamber(char *a,char *t,char *d,char *k,int s)
:Music(a,t,d,k)
{
n=s;
}
void Chamber::disp()
{
Music::disp();
cout << " 其他:室内乐" << n << "首" << endl;
}
void printdata(Database &d)
{
d.disp();cout << endl;
}
void main()
{
Music m("贝多芬","第9交响曲","1824","D小调");
Painting p("达芬奇","蒙娜丽莎","1503",24,36);
Chamber c("莫扎特","费加罗的婚礼","1786","D大调",4);
cout << "输出结果:" << endl;
printdata(m);
printdata(p);
printdata(c);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?