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 + -
显示快捷键?