题目描述
一个出版公司,同时销售书籍和磁带。创建一个Publication类存储出版物的标题title(字符串类型)和价格price(float类型)。从这个类派生出两个类:一个是Book类,含有表示页数page(int类型)的数据成员;另一个是Tape类,含有一个数据成员表示以分钟为单位的播放时间playTime(float类型)。这3个类都有一个可以通过键盘获得数据的函数GetData( ),和一个显示数据的函数Show()。编写一个main( )程序,通过创建Book类和Tape类的对象来测试这两些类,然后调用GetData( )向其中加入数据,并调用Show()显示这些数据。
输入样例
**************键盘输入***************
读者文摘
12
白鹿原
35
256
爱如潮水
20
60
输出样例
出版物信息:
标题:读者文摘
价格:12元
书籍信息:
标题:白鹿原
价格:35元
页数:256
磁带信息:
标题:爱如潮水
价格:20元
播放时间:60分钟
程序代码
#include<iostream>
#include<string>
using namespace std;
class Publication{ // Publication类
protected:
string title; // 标题
float price; // 价格
public:
void SetPublication(string new_title) {
title = new_title;
}
void SetPublication(float new_price) {
price = new_price;
}
string GetTitle() const {
return title;
}
float GetPrice() const {
return price;
}
void show() const;
void GetData();
Publication();
};
Publication::Publication(){
title = "";
price = 0;
}
void Publication::show() const{ // 显示数据的函数Show()
cout << "标题:" << title << endl;
cout << "价格:" << price << "元" << endl;
}
void Publication::GetData() { // 通过键盘获得数据的函数GetData( )
cin >> title >> price;
}
class Book : public Publication{ // Book类
private:
int page;
public:
void SetPage(int pg) {
page = pg;
}
int Getpage() const {
return page;
}
void show() const;
void GetData();
Book();
};
Book::Book(){
page = 0;
}
void Book::show() const{ // 显示数据的函数Show()
cout << "标题:" << title << endl;
cout << "价格:" << price << "元" << endl;
cout << "页数:" << page << endl;
}
void Book::GetData() { // 通过键盘获得数据的函数GetData( )
cin >> title >> price >> page;
}
class Tape : public Publication{ // Tape类
private:
float playTime;
public:
void SetplayTime(float new_playTime) {
playTime = new_playTime;
}
float GetplayTime() const {
return playTime;
}
void show() const;
void GetData();
Tape();
};
Tape::Tape(){
playTime = 0;
}
void Tape::GetData() { // 通过键盘获得数据的函数GetData( )
cin >> title >> price >> playTime;
}
void Tape::show() const{ // 显示数据的函数Show()
cout << "标题:" << title << endl;
cout << "价格:" << price << "元" << endl;
cout << "播放时间:" << playTime << "分钟" << endl;
}
int main(){
Publication *p = new Publication(); // 定义对象
p -> GetData(); // 输入相关信息
cout << "出版物信息:" << endl; // 输入提示
p -> show(); // 输出相关信息
Book *b = new Book(); // 定义对象
b -> GetData(); // 输入相关信息
cout << "书籍信息:" << endl; // 输入提示
b -> show(); // 输出相关信息
Tape *t = new Tape(); // 定义对象
t -> GetData(); // 输入相关信息
cout << "磁带信息:" << endl; // 输入提示
t -> show(); // 输出相关信息
delete t;
delete b;
delete p;
return 0; // 返回值, 返回操作系统
}