1、学 号: 面向对象程序设计大作业题 目图书管理系统学 院信息工程学院专 业通信工程班 级姓 名ZXY指导教师鄢红国2015年12月20日一、需求分析 图书馆管理系统是我国大部分院校或其它部门不可缺少的部分,书籍是人类精神食粮,尤其对一些学校,图书馆来说,非常重要。在软件开发中,以计算机图书为主,称“计算机图书管理系统”。计算机图书管理系统能够为用户实现借阅图书、管理等,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有着手工管理所无法比拟的优点.例如:查阅迅
2、速、安全性高、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提高图书馆管理的效率。因此,开发这样一套管理软件是很有必要. 并且,通过此课题,能使我们熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。(一) 系统总体功能需求 图书馆可以为借阅者提供借还书、查询书目等服务。借阅者每次最多能借5本书。借书员主要负责借还及新增更改书目读者,查询等工作,图书管理员负责图书信息的增减及读者信息的维护。所有人员都可以浏览和查询图书信息。经过初步分析,图书馆管理系统应该具有以下几个模块:1)借书模块2)还书模块3)图书维护模块4)读者维护模块5)统计分析模块6)提示7)离开(二)图书借书
3、模块功能分析 图书借阅功能需要完成借阅者对相应图书的借阅。借阅者的借阅数量是有限定的,系统会自动检查是超过限定借阅的数量,若超过限定数量则不允许借阅。若当前要借阅的图书已经被其他人预约,读者也无法完成借阅。 输出:是否允许借阅处理:系统进行分析比较借阅数量及是否预约输入:借阅者的编号及图书的编号输入:图书的编号 (三)图书还书模块功能分析图书归还功能需要完成图书的归还工作。(四)图书维护模块功能的需求实现对图书的描述,图书的编号,书名,借出,还入等,需要实现的功能为:图书编目,图书注册,更新书目,图书删除。1、图书的新增:首先给图书编号,在给图书编号之前先判断是否有图书为该编号,如果有则编号不
4、成功重新输入编号,如果没有则编号成功,继续添加图书的其他信息,包括书名、作者、出版社、出版时间、价格等信息。 2、图书的删除:输入图书的编号,删除该编号图书的所有信息,并提示删除成功信息,若输入无效的编号则提示删除不成功。3、图书的查找:输入要查找图书的编号,输出该编号图书的所有信息,若输入无效的编号则提示查找失败。 4、图书的显示:按照出版时间的先后顺序输出图书馆所有书籍的信息。 5、图书的全删:删除图书馆所有书籍的所有信息。(五) 读者维护模块功能的需求对读者信息描述,建立读者个人资料,借阅者管理需要实现的功能包括:借阅者注册,借阅者信息更新,借阅者注销,借阅者信息的查询。1、读者的新增:
5、先给读者编号,如果该编号已经有人,则提示错误,否则继续输入读者的其他信息,包括读者的名字和初始密码输出添加成功提示。 2、读者的更改:输入读者的编号,更改读者的名字,若输入的编号无效则更该失败。 3、读者的删除:输入要删除读者的编号,判断该编号是否有人,有则删除该读者的所有信息,没有则提示删除失败。 4、读者的查找:输入要查找的读者编号,编号正确则输出读者的信息,否则查找失败。 5、读者的显示:显示图书馆里所有读者的信息。 6、读者的删除:删除图书馆里所有读者的信息。(六)统计分析功能 随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态。(七) 提示功能当出现库存查无此书或读者时
6、,给予相应提示。(八) 离开功能实现管理后的系统退出。 二、总体设计1.基本思路:采用面向对象分析方法,把一个系统分成多个类进行处理。主要是运用到类和对象,还有带参数的构造函数以及析构函数以及数组来实现本程序,并在主函数对各个功能模块就行调用。即:1)读者类,实现对读者信息的描述 2)读者库类,实现建立读者的个人资料 3)图书类,实现对图书的描述,图书的编号,书名,借出,还入等 4)图书库类,实现对图书的维护,查找,删除等 最后用main函数做界面的引导。4.读者维护3.图书维护0.离开2.还书1.借书 2.遇到的问题及解决方法 1)用户密码验证的问题:怎么让用户在输入密码时用号覆盖密码解决办
7、法:通过翻阅之前的C语言教材,发现书中有类似的例子,即getch()输入密码时屏幕上不显示,然后用putch(*)就可以输出*覆盖密码。 2)用getch()函数 编译时出现问题。解决办法:通过仔细检查代码,发现忘记添加头文件 conio.h 。添加后,即可编译。 3)问题三:指针的操作问题:如果定义char a4=1,2,3,4;char *p=a; 然后输出p指向的字符串,coutdelbook();Case4:输出读者信息break3. 图书类,实现对图书的描述,图书的编号,书名,借出,还入等函数清单:char *getname()/获取姓名,int getno()/获取图书编号,int
8、 gettag()/获取删除标记,void setname(char na)/设置书名,char*Book:getwriter()/获取书籍作者,char*Book:getconcem() return concem; /获取书籍出版社,char* Book:gettime() return Time; ,float Book:getprice() return price; /获取书籍价格,void delbook()/删除图书,void Book:addbook(int n,char *na, char *wri, char *con, char* tm,float pr) /增加图书形参
9、为书名,编号,作者,出版社,出版时间,价格,int borrowbook()/借书操作,void retbook()/还书操作,void disp()/输出图书。4. 图书库类,实现对图书的维护,查找,删除等函数清单:BDatabase()/构造函数,将book.txt读到book中,void clear()/全删,nt BDatabase:addbook(int n,char *na, char *wri, char *con,char *tm, float pr) /增加图书形参为书名,编号,作者,出版社,出版时间,价格,Book* BDatabase:query(int bookid)/
10、查找图书形参为图书编号,int BDatabase:qname(char* nm),void bookdata();/图书库维护,void disp()显示函数。 四、程序运行结果测试与分析运行结果: 分析:由于时间有限,程序在显示上仍有小问题,待改进。五、程序源代码#include #include #include #include #include #include #includeusing namespace std;const int Maxr=100;/最多的读者const int Maxb=100;/最多的图书const int Maxbor=5;/每位读者最多借五本书/*读者类,实现对读者信息的描述*/class Readerprivate:int tag ;int no ;char name10 ;/读者姓名int borbookMaxbor;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1