求打赏求收藏求转发!
提供PDF资源
https://download.csdn.net/download/weixin_43781565/12429074
(审核后可供下载)
Peace and love
信控学院专业课实验报告
图书管理系统的控制台实现
目录
①问题描述与需求分析....................................................................... 1
②程序功能抽象................................................................................... 1
五、设计/开发解决方案............................................................................ 1
1.class Data 数据基类.......................................................................... 2
2.class Book 书籍派生类.......................................................................2
3.class Journal 派生期刊类................................................................... 3
4.class Reader 借书人类....................................................................... 3
图 3-2 借书人用户创建与信息显示..................................................8
图 3-3 借书数量超过限制(5 本).........................................................8
图 3-4 借书人当前借阅书籍信息展示..............................................8
七、实验分析及结论................................................................................. 8
一、实验名称 模拟图书管理系统的控制台指令实现 二、实验目的
本次实验旨在主要对前期学习的有关 C++面向对象部分的有关类的继承 (inheritance)相关知识的实践与应用。
在理论方面主要体现了:
1. 提升由面向过程向面向对象的思维转变;
2. 对继承关系的分析和实践应用;
3. 对函数参数列表(parameter list)的实践应用;
4. 加强对对象的创建和成员函数的书写能力; 在实际操作方面,本次试验重点训练了:
1. 继承关系的创建,与相关成员函数之间的调用关系;
2. 函数参数列表的赋值方式;
3. 对字符数组(Character array)的创建和使用; 三、实验平台
IDE :CodeBlocks16.1 (Core:VC++6.0) Language Standard : C++14 四、问题分析
①问题描述与需求分析 在图书馆的日常使用当中,每天都会发生类似"借阅""归还"和"借阅信息管理"
等操作,且随着规模的扩大,每天产生的信息流相当巨大。因此,我们需要利用相关 的软件进行对应信息的管理,"图书管理系统"应运而生。
此次的"图书管理系统",是基于当前学习的有关 C++面向对象中的类的继承 知识基础上构建的,其中需要完成对图书馆运营过程中的部分基础操作进行实现, 并做到对相关信息的查阅和管理。具体包括:
1.对各类书籍进行分类存储,并能做到对书籍进行"增,删,改,查";
2.对借阅人的相关信息进行管理,包括借阅人个人的信息,以及当前所借阅的 书籍,并同时能对人员进行"增,删,改,查"
3.能加入对人员借阅书籍的数量进行一定的限制;
②程序功能抽象 对于图书管理系统在实现部分功能时,通过需求分析可知,我们需要多个类去
管理和存储对应的相关信息,从大体上分为:书籍类(Books)与借阅人类(Reader)。 1.对于类的设计 对于"对各类书籍进行分类存储",我们可以首先设立一个信息量相对较少的
基类数据类(Data),之后利用相关的继承知识,对多个不同书籍种类设置派生类,如 普通书籍类(Books),而对于类似报纸杂志等具有特殊属性的书籍种类,我们可以继 续派生,如派生出的期刊类(Journal),以用来简化相关的代码冗余。
在借阅人类(Reader)中,我们可以实现需求中的有关人员管理的相关功能,例 如"姓名","借书卡号"以及"当前借阅书籍"等相关内容。
2.对于类之间的联系 在相关类设计完成之后,我们应该考虑通过某种机制将两个类即书籍类
(Books)与借阅人类(Reader)关联起来,处于不破坏面向对象的封装性的特点,特别 的使用在 Reader 类中创建 Books 类对象的方式,是两个类中的成员函数和数据成 员进行交互访问。
五、设计/开发解决方案
1
根据需求的分析,首先得到图书管理系统的程序类关系,类图表示如下:
图 2-1
并参考需求分析中的要求,并结合相关内容,确定出上图类中的成员函数和数 据成员,图书管理系统代码片段如下:
备注:已将部分代码数量较少的函数直接写入类中,未在外部进行编写。 1.class Data 数据基类
1.classData //数据基类 2.{
3.public:
4. Data() //初始化数据
5. {
6. strcpy(Name,"");
7. Id=0;
8. }
9. Data(char*name,longid) //设置数据信息 10. {
11. strcpy(Name,name);
12. Id=id; 13. }
14. longGetCode() 15. {
16. returnId; 17. }
18. voidShow() //显示数据信息 19. {
20. cout<<"数据:"<<Name<<'\t'<<Id<<endl; 21. }
22.protected:
23. charName[40]; //名称
24. longId; //ID
25.};
2.class Book 书籍派生类
26.classBook:publicData