C++ 出版公司(继承)

题目描述

一个出版公司,同时销售书籍和磁带。创建一个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;							// 返回值, 返回操作系统
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值