文档介绍:面向对象应用实例讲解
------图书馆流通系统
——对象与类的识别
1
——改进类的封装
2
——继承与多态的应用
4
——链表类应用
3
——输出/输入流的应用
5
1、对象和类的识别
图书馆流通系统内,有书、读者、借书证、管理人员、借书还书行为等对象和事件,他们分别各是一个群体。
在图书流通系统内,有以下类:
读者(Reader)类
图书类(暂用Item款目表示)
图书借阅信息类(Loan)
管理人员类(Manager),是借书还书行为的操作人。
借书证对象只作为读者类的一个数据成员。
——对象与类的识别
2、对象属性的识别
每个对象的情况称为对象的属性。
图书类Item ,应包含书名Title、作者名Author、册数Number分类号IndexCode、条码号BarCode等属性。
读者类Reader ,包含姓名Name、职务Position、年龄Age、借书证编号Code等。一个读者允许借阅多本书,用一个Item的数组items保存借阅信息。定义一个计数的成员Counter统计读者所借书册数;
图书借阅信息类Loan ,包含所借书item、借书人reader、借书操作员manager等;
管理人员类Manager ,包含姓名Name、年龄Age、工号Code等;
——对象与类的识别
3、对象功能的确定
对象的功能指为了达到目的必须执行的动作,或是对象对所发生事件的反应。功能也可称为对象的操作。
图书类应包含为各属性赋值(Set…)的操作、读取条码(GetCode)和显示图书基本信息(Show)的操作,另外还定义了缺省构造函数和拷贝构造函数。
读者类,需定义为各属性赋值(Set…)的操作、读取借书证号的操作,借书和还书需要向所借书数组中添加或减少书,定义AddBook和DelBook两个操作,还有显示所借书的操作ShowBooks。
图1-1 对象与类的标记
——对象与类的识别
图1-2 图书流通管理系统中的类
——对象与类的识别
图1-3 图书流通管理系统的对象
若定义类的对象:Item item; Reader reader1;
Manager manager1; Loan loan1;
则下图可表示这些对象。
——对象与类的识别
定义了类和对象,它们之间就可以互相通讯,完成特定的功能了。图4表示了对象之间的相互通讯关系。
图1-4 图书流通管理系统的对象
——对象与类的识别
——改进类的封装
根据面向对象的思想,数据和对它们的操作可以封装为类。可以将图书馆的信息(书、读者、借阅情况及管理员)与业务(创建书目、读者库、管理员库及借书、还书、查询等操作函数)封装为图书馆类Library, 分别作为图书馆类的数据成员和函数成员。
Library类的成员函数中多了一个Run函数,这是图书馆业务开始执行的入口,因此原来在main函数中执行的操作,都要在Run中执行,如创建书目、读者信息、管理员信息等,主菜单的显示也应放在Run中。
图2-1 图书馆类