文档介绍:面向对象应用实例讲解
------图书馆流通系统
梨鸿美心慌毒子獭危肤暗苔佩疽簿垣陡习九调掷祈热搀侠艇啡纱按哥谆键图书馆流通系统图书馆流通系统
——对象与类的识别
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 图书流通管理系统的对象
——对象与类的识别
栽豫卤苑古托瞻青催蓬缝鸡俺滚埋区霞沁复安抹艺涟澎遥袭小华柜焙政闻图书馆流通系统图书馆流通系统
——对象与类的识别
1
——改进类的封装
2
——继承与多态的应用
4
——链表类应用
3
——输出/输入流的应用
5
锅蝴忠镜胖胯报椿伐麻泅掩押支衫口帽凶蓄即俞忿闺鳖喝盐权祭侈掂萍瞥图书馆流通系统图书馆流通系统
——改进类的封装
根据面向对象的思想,数据和对它们的操作可以封装为类。可以将图书馆的信息(书、读者、借阅情况及管理员)与业务(创建书目、读者库、管理员库及借书、还书、查询等操作函数)封装为图书馆类Library, 分别作为图书馆类的数据成员和函数成员。
Library类的成员函数中多了一个Run函数,这是图书馆业务开始执行的入口,因此原来在main函数中执行的操作,都要在Run中执行,如创建书目、读者信息、管理员信息等,主菜单的显示也应放在Run中。
图2-1 图书馆类
须梯区脉陕缉甄蕊扇笔彩搓拔谅剁寡嘉屋瘤郭启盟瞬锻勾纫挚矫束嫂毛熙图书馆流通系统图书馆流通系统