#pragma once
class Library
{
Publication* publications[100]; //所有馆藏,假设馆藏上限为 100
int total; //实际馆藏数
public:
Library();
void add(Publication& p); //添加新馆藏(此函数需完成)
void show();// //输出所有馆藏的相应信息
};
//此函数可用于输出所有馆藏的相应信息
// 如: C++ zhengli
// Thames 2010/1/1
// DuZhe 2011/5/1 第 10 期
//注意不同种类出版物会输出不同种类的信息。
Library::Library():total(0)
{
fill(publications, publications+100, nullptr);
}
void Library::add(Publication& p)
{
publications[total++] = &p;
}
void Library::show()
{
for (int i = 0; i < total; i++)
publications[i]->print();
cout << endl;
}
#pragma once
class Publication
{
public:
virtual ~Publication() {};
virtual void print() = 0;
};
#pragma once
class Book :public Publication
{
private:
string name;
string authorName;
public:
Book();
Book(string _n, string _an = "Unknown");
~Book();
void print();
};
Book::Book() :name("Unknown"), authorName("Unknown"){}
Book::Book(string _n, string _an ) :name(_n), authorName(_an){}
Book::~Book(){}
void Book::print()
{
cout << name << ' ' << authorName << endl;
}
#pragma once
class Newspaper :public Publication
{
private:
string name;
string publishTime;
public:
Newspaper();
Newspaper(string _n, string _pt = "Unknown");
~Newspaper();
void print();
};
Newspaper::Newspaper() :name("Unknown"), publishTime("Unknown") {}
Newspaper::Newspaper(string _n, string _pt ) :name(_n), publishTime(_pt) {}
Newspaper::~Newspaper() {}
void Newspaper::print()
{
cout << name << ' ' << publishTime << endl;
}
#pragma once
class Magzine :public Publication
{
private:
string name;
string publishTime;
string number;
public:
Magzine();
Magzine(string _n, string _pt = "Unknown", string _nm = "Unknown");
~Magzine();
void print();
};
Magzine::Magzine() :name("Unknown"), publishTime("Unknown"), number("Unknown") {};
Magzine(string _n, string _pt , string _nm )
:name(_n), publishTime(_pt), number(_nm)
{}
Magzine::~Magzine(){}
void Magzine::print()
{
cout << name << ' ' << publishTime << ' ' << number << endl;
}
#include<iostream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
#include"Publication.h"
#include"Book.h"
#include"Newspaper.h"
#include"Magzine.h"
#include"Library.h"
int main()
{
}