Experiment 3: Design a Series of Classes : Library
内容:
创建一个Book类,该类应包含表示ISBN号、书名、作者和版权日期以及表示是否已经借出的成员。创建能返回这些成员的值的函数,以及借书和还书的函数。对于输入Book对象的数据进行简单的有效性检查,例如只接受n-n-n-x形式的ISBN号,其中n是一个整数,x是一个数字或一个字母。
为图书馆创建一个Patron类,包含读者姓名、图书证号及借阅费(如果欠费的话)。创建访问这些成员的函数和设定借书费的函数,定义一个辅助函数,返回一个布尔值,表示读者是否欠费。
创建一个Library类,包含一个Book向量和一个Patron向量。定义一个名为Transaction的struct,包含一个Book对象、一个Patron对象和一个第九章中定义的Date对象,表示借阅记录。在Library类中定义一个Transaction向量。定义向图书馆添加图书、添加读者以及借出书籍的函数。当一个读者借出一本书时,保证Library对象中有此读者和这本书的记录,否则报告错误。然后检查读者是否欠费,如果欠费就报告一个错误,否则创建一个Transaction对象,将其放入Transaction向量中。定义一个返回包含所有欠费读者姓名的向量的函数。
写一个 main 函数来测试所写的 Library 类的所有相关操作,注意:包括正常操作和异常操作。