Architecture Overview

  • 首先,本次大作业的目的是锻炼同学们写工程的能力。无论是高中的OI系列竞赛,还是大学ACM/ICPC比赛,甚至是现在的机考,都锻炼的是同学们写单个文件的能力。而对于多个类的继承,互相调用,训练得比较少。

  • 助教为大家设计好了框架,你可以选择是否使用。如果不用我们的框架,可以直接跳过这些,去看CLI Standard 和[Testing and Grading]

  • 其次,我们需要了解一下该project的结构。 project包括被管理的对象,管理者。 其中被管理的对象分为四类:

1. Kind

同一类书有相同的书名,ISBN号,作者等信息。不同类书ISBN号必然不同。注意:Kind类只是书的类别,并不指代特定的一本书。

2. Book

图书馆中同一类书可能会有若干本,这里的Book类指代特定的一本书,同时它还将记录该本书相关的读者信息等等。

3. Admin

图书馆中的管理员,虽然说是管理员,但是从project的角度来看,依然是被管理对象。

4. Reader

图书馆的广大用户,用户分多个类别。

  • 在该project中,管理者为Manager design Pattern,它负责从外部文件读入被管理对象信息,并存入内存中;将内存中的被管理对象信息写入外部文件中。 需要说明的是,每个被管理对象都对应一个管理者,例如Book的管理者为BookManager。
个人工具