图书管理系统(C++)(10页).doc
《图书管理系统(C++)(10页).doc》由会员分享,可在线阅读,更多相关《图书管理系统(C++)(10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-图书管理系统(C+)-第 10 页面向对象技术的应用图书管理系统(C+)学院: 专业: 摘要 图书管理系统将传统的图书管理方法彻底地解脱出来,大大提高了人们对图书的管理效率,减轻工作人员以往繁忙的工作,并且减小出错的概率。本文采用面向对象技术在VC上编写图书管理系统,充分阐述了OO技术在其中的应用,展现了该程序的进行分析,设计和实现的过程。关键词:图书管理系统 面向对象技术 VC一、课题背景面向对象(object-oriented,OO)技术充分体现了分解、抽象、模块化、信息隐蔽等思想,可以有效地提高软件生产率、缩短软件开发时间、提高软件质量,是控制软件复杂性的有效途径。传统的结构化方法的着
2、眼点在于一个信息系统需要什么样的方法和处理过程。以过程抽象来对待系统的需求,其主要思想就是对问题进行功能分解,如果分解后得到的功能过大,那么再对这些功能进行分解,直到最后分解得到的功能比较方便地处理和理解为止。所以结构化方法也称为功能分解法(functional decomposition)。与传统的结构化软件开发方法相比,面向对象软件开发方法在描述和理解问题域时采用截然不同的方法。其基本思想是,对问题域进行自然分割,以更接近于人类思维的方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,能适应用户需求的变化。在实际生活中,图书馆工作人员都面临着一个非常具体现实
3、的问题,即图书借阅的管理。当图书与读者数量不大时,工作人员可以根据相关纸质纪录进行定期检查与核对而清楚的掌握书籍与读者信息,并对其行修改与维护,但是现实生活中工作人员管理的数据数量庞大,不可能人工完成相关管理。为了迎合自动化办公的要求,现要求设计一个图书借阅管理系统完成对于图书相关信息的记录操作及添加、修改、更新等维护操作。 本次课程报告的题目是图书管理系统,主要目的是利用OO技术在VC上实现图书的管理工作。二、系统的主要功能1、进入系统身份验证:在进入系统的时候,避免非工作人员对信息进行修改,要进行账号和密码的验证;2、新增图书信息:通过输入编号,判断此图书是否存在,若不存在则提示用户添加一
4、本图书信息包括编号、书名、作者等;3、更改图书信息:通过输入编号,判断此图书是否存在,若不存在则提示用户重新输入图书编号。 4、删除图书信息:删除一本图书信息,提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书编号;5、查找图书信息:通过输入图书编号完成图书信息的查找,并在屏幕上显示;6、查询所有图书信息:显示所有图书信息包括编号、书名、作者等;7、清空所有信息:清空在TXT文件中的所有图书信息;8、退出系统:退出系统返回主菜单。如图1所示:图1三、结构设计主要声明了图书和管理两个类,通过管理员和图书的函数成员来实现新增,更改,删除,查找,显示,清空等操作,在图书的结构中,按键0键退
5、出管理系统,总体结构如图2所示:图2四、类的设计类是C+面向对象技术中的一个重要概念,它提供了抽象和封装机制,是一种较好的模块化编程手段。从面向对象的观点来看,客观世界就是由一个个独立的对象组成,在程序中,对象存储着数据和相应操作。类对具有共性的对象进行统一描述。在本图书管理系统中定义了两个类,一个是book类即图书类,另一个是Administer类即管理类。这里将对着两个类进行详细说明。1、Book类 图书具有的信息为图书编号booknum,图书名称name,图书作者writer,把这三项作为book类的私有成员。然后定义book类的共有成员,包括:构造函数Book(),获取图书编号函数ge
6、t_booknum(),获取删除标记函数get_delflag() ,设置书名函数set_name(char na),设置作者函数set_writer(char wr),删除图书函数delbook(),增加图书函数addbook(int n,char *na,char *wri),显示图书函数disp() 2、Administer类 管理员对图书进行管理需要正确的账号和密码,在管理的过程中需要对每一本图书进行操作,于是可以将工作员账号wkname,工作员密码wksecret,图书记录指针top,图书信息book等四项信息作为Administer类的私有成员。其成员函数有:类的构造函数Admin
7、ister(),验证用户信息函数Access(),增加图书函数addbook(int n,char *na,char *wri),查找图书指针函数*query(int bookid),图书记录的数据管理函数bookdata(),显示所有图书信息函数disp(),因为需要写入文本文件中,所以这里定义一个显视的析构函数Administer()在结束进程时将图书的信息写入到文本文件中。五、成员函数的实现成员函数是类中描述行为的成员,同时也是对封装的数据进行操作的惟一途径。从类的定义可知,一般在类中说明成员函数原型,在类外具体实现成员函数。如果成员函数以及在类中定义,则无须在类外实现。首先是在图书类B
8、ook中:1、get_booknum()与get_delflag()函数使用retur语句分别返回图书编号作与判断该图书是否存在的标记;2、delbook()是删除图书的函数,若该图书被删除,则令delflag等于1;3、set_name(char na)与set_writer(char wr)函数使用strcpy语句修改图书名name和图书作者writer;init(int n,char *na,char *wri)初始化图书函数,包括删除标记置为0,给予图书编号,图书名,图书作者赋值;4、disp()输出图书信息到屏幕显示。 然后是在管理类Administer中:5、构造函数Adminis
9、ter()有两个功能,第一个功能是定义一个Book类的临时变量b与指向每一本图书的标记变量top,打开根目录下的txt文件,增加top的值不断指向新的图书对象,并将其写入到book中。第二个功能是设置图书管理员的账号和密码,只允许后台操作,不能在程序运行中更改;6、在刚进入系统时,系统要求验证用户,这是使用Access()函数来实现的,用if判断语句,判断所输入的信息是否正确,匹配则返回1,不匹配则返回0,如下图3所示;图37、增加图书记录的操作利用函数addbook(),令标记变量top指向下一个图书对象,并用函数图书类中的初始化函数booktop.init(n,na,wri)对新增的图书进
10、行初始赋值,增加成功返回1,失败返回0;如图4所示图48、在执行查找某一本图书时,仅支持按编号查找,通过比较输入编号和文本中现有的编号,判断是否存在所要查找的图书编号,若存在返回该图书所存放位置的首地址,不存在返货NULL;如图5所示图59、显示所有图书只需用一个for循环遍历所有图书信息即可;如图6所示图610、删除图书是对图书对象的删除标记delflag置1操作,但并不是立即删除,而是在结束进程,写入文本的时候不予写入,这样在第二次进入的时候就完全清除了该图书信息。这样的好处是若对程序修改,增加对删除标记操作的函数,错误删除的图书还可以找回来,本程序暂无此功能;如图7所示图711、删除所有
11、图书控制标记变量top,其原理同删除图书类似;如图8所示图812、对所有图书,也就是图书库的操作使用函数bookdata(),用while语句实现死循环,用switch语句实现每一种操作的选择;13、将图书信息写入文本是在管理类的析构函数Administer()中实现,依次判断所有图书的删除标记是否为 0,若为0写入,反之不写入。六、结果分析 本程序总共涉及了两个类,满足了单方面对图书的管理要求。在设计局的过程中,建立了较为清晰的类层次,也利用了面对对象方法以及C+的编程思想来完成系统的涉及,做到了图书的增加,删除,查找等相关的功能。而且界面美观,容易操作。但并非完整的图书管理系统,应该还具有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 10
限制150内