12月测试题:4.书籍类设计与测试

要求在Date类基础上采用类组合的思想,
设计一个书籍类并测试之,该类包括出版日期(即一个日期类的对象)、书名等。涉及带参构造函数,能提供显示书籍信息的函数。

前置代码:

#include <iostream>
#include <string>
using namespace std;
class Date
{
private:
	int year,month,day;
public:
	Date(int y=0,int m=0,int d=0)
	{
		year=y;
		month=m;
		day=d;
	}
	void Show()
	{
		cout<<year<<"-"<<month<<"-"<<day<<endl;
	}
};
class Book
{
private:	
	Date dx;	
	string name;

后置代码:

int main()
{
   int a,b,c;
   cin>>a>>b>>c;
   Date dd(a,b,c);
   Book x(2018,9,1,"C++"),y(dd,"C");
   x.Show();
   y.Show();
   return 0;
}

难度较低,考点为类的组合
题解如下:

#include <iostream>
#include <string>
using namespace std;
class Date
{
private:
	int year,month,day;
public:
	Date(int y=0,int m=0,int d=0)
	{
		year=y;
		month=m;
		day=d;
	}
	void Show()
	{
		cout<<year<<"-"<<month<<"-"<<day<<endl;
	}
};
class Book
{
	private:	
		Date dx;	
		string name;
	public:
		Book(int a,int b,int c,const string &d):dx(a,b,c)
		{	//输入3个int一个string的book构造函数
		//这里用到的是组合的格式 
			name=d;
		}
		Book(Date &dd,const string &d)
		{//这是一个Date,一个string参数的book构造函数
		//同样是组合的形式 
			dx=dd;
			name=d;
		}
		void Show()
		{//调用Date中的show函数 
			dx.Show();
			cout<<name<<endl;
		}
};
	
int main()
{
   int a,b,c;
   cin>>a>>b>>c;
   Date dd(a,b,c);
   Book x(2018,9,1,"C++"),y(dd,"C");
   x.Show();
   y.Show();
   return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值