C图书管理系统.docx

上传人:b****1 文档编号:230140 上传时间:2022-10-07 格式:DOCX 页数:36 大小:451.88KB
下载 相关 举报
C图书管理系统.docx_第1页
第1页 / 共36页
C图书管理系统.docx_第2页
第2页 / 共36页
C图书管理系统.docx_第3页
第3页 / 共36页
C图书管理系统.docx_第4页
第4页 / 共36页
C图书管理系统.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

C图书管理系统.docx

《C图书管理系统.docx》由会员分享,可在线阅读,更多相关《C图书管理系统.docx(36页珍藏版)》请在冰豆网上搜索。

C图书管理系统.docx

学号:

《面向对象程序设计》大作业

题目

图书管理系统

学院

信息工程学院

专业

通信工程

班级

姓名

ZXY

指导教师

鄢红国

2015

12

20

一、需求分析

图书馆管理系统是我国大部分院校或其它部门不可缺少的部分,书籍是人类精神食粮,尤其对一些学校,图书馆来说,非常重要。

在软件开发中,以计算机图书为主,称“计算机图书管理系统”。

计算机图书管理系统能够为用户实现借阅图书、管理等,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对图书资源信息进行管理,具有着手工管理所无法比拟的优点.例如:

查阅迅速、安全性高、可靠性高、存储量大、保密性好、成本低等。

这些优点能够极大地提高图书馆管理的效率。

因此,开发这样一套管理软件是很有必要.

并且,通过此课题,能使我们熟练掌握文件、数组、指针的各种操作,以及一些算法思想的应用。

(一)系统总体功能需求

图书馆可以为借阅者提供借还书、查询书目等服务。

借阅者每次最多能借5本书。

借书员主要负责借还及新增更改书目读者,查询等工作,图书管理员负责图书信息的增减及读者信息的维护。

所有人员都可以浏览和查询图书信息。

经过初步分析,图书馆管理系统应该具有以下几个模块:

1)借书模块

2)还书模块

3)图书维护模块

4)读者维护模块

5)统计分析模块

6)提示

7)离开

(二)图书借书模块功能分析

图书借阅功能需要完成借阅者对相应图书的借阅。

借阅者的借阅数量是有限定的,系统会自动检查是超过限定借阅的数量,若超过限定数量则不允许借阅。

若当前要借阅的图书已经被其他人预约,读者也无法完成借阅。

输出:

是否允许借阅

处理:

系统进行分析比较借阅数量及是否预约

输入:

借阅者的编号及图书的编号

输入:

图书的编号

(三)图书还书模块功能分析

图书归还功能需要完成图书的归还工作。

(四)图书维护模块功能的需求

实现对图书的描述,图书的编号,书名,借出,还入等,需要实现的功能为:

图书编目,图书注册,更新书目,图书删除。

1、图书的新增:

首先给图书编号,在给图书编号之前先判断是否有图书为该编号,如果有则编号不成功重新输入编号,如果没有则编号成功,继续添加图书的其他信息,包括书名、作者、出版社、出版时间、价格等信息。

2、图书的删除:

输入图书的编号,删除该编号图书的所有信息,并提示删除成功信息,若输入无效的编号则提示删除不成功。

3、图书的查找:

输入要查找图书的编号,输出该编号图书的所有信息,若输入无效的编号则提示查找失败。

4、图书的显示:

按照出版时间的先后顺序输出图书馆所有书籍的信息。

5、图书的全删:

删除图书馆所有书籍的所有信息。

(五)读者维护模块功能的需求

对读者信息描述,建立读者个人资料,借阅者管理需要实现的功能包括:

借阅者注册,借阅者信息更新,借阅者注销,借阅者信息的查询。

1、读者的新增:

先给读者编号,如果该编号已经有人,则提示错误,否则继续输入读者的其他信息,包括读者的名字和初始密码输出添加成功提示。

2、读者的更改:

输入读者的编号,更改读者的名字,若输入的编号无效则更该失败。

3、读者的删除:

输入要删除读者的编号,判断该编号是否有人,有则删除该读者的所有信息,没有则提示删除失败。

4、读者的查找:

输入要查找的读者编号,编号正确则输出读者的信息,否则查找失败。

5、读者的显示:

显示图书馆里所有读者的信息。

6、读者的删除:

删除图书馆里所有读者的信息。

(六)统计分析功能

随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态。

(七)提示功能

当出现库存查无此书或读者时,给予相应提示。

(八)离开功能

实现管理后的系统退出。

二、总体设计

1.基本思路:

采用面向对象分析方法,把一个系统分成多个类进行处理。

主要是运用到类和对象,还有带参数的构造函数以及析构函数以及数组来实现本程序,并在主函数对各个功能模块就行调用。

即:

1)读者类,实现对读者信息的描述2)读者库类,实现建立读者的个人资料3)图书类,实现对图书的描述,图书的编号,书名,借出,还入等4)图书库类,实现对图书的维护,查找,删除等最后用main函数做界面的引导。

4.读者维护

3.图书维护

0.离开

2.还书

1.借书

2.遇到的问题及解决方法

1)用户密码验证的问题:

怎么让用户在输入密码时用号覆盖密码

解决办法:

通过翻阅之前的C语言教材,发现书中有类似的例子,即getch()输入密码时屏幕上不显示,然后用putch('*')就可以输出*覆盖密码。

2)用getch()函数编译时出现问题。

解决办法:

通过仔细检查代码,发现忘记添加头文件conio.h。

添加后,即可编译。

3)问题三:

指针的操作问题:

如果定义chara[4]={'1','2','3','4'};char*p=a;然后输出p指向的字符串,cout<

解决办法:

通过查找相关的书籍,发现当指针p指向没有串结束符的字符串时,就会

输出乱码,所以要在字符串的后面加一个串结束符'\0'。

4)初次编译时,错误较多。

解决方法:

一个一个错误耐心改正,遇到不会的,通过翻书或者上网查资料解决。

其中很多是很简单的语法错误,如:

忘加分号,左右括号不对称……下次写程序时需细心。

3.完成本次大作业的完整过程

1)选题:

通过查看老师提供的参考题目,由于大一时已经用C语言做过“班级通讯录”和“学生成绩管理系统”的选题,这次决定做点不一样的,将“图书管理系统”作为本次大作业的选题。

2)类的确定:

“类”是对具有相同数据结构和相同操作的一类对象的描述。

经过思考,本次大作业需要完成借阅管理、读者管理、图书管理、统计分析的功能,所以将其分为读者类、读者库类、图书类、图书库类。

3)每个类代码的编写

4)main函数的编写。

5)编译,修改,完善。

6)撰写实验报告。

三、详细设计

1.读者类,实现对读者信息的描述

函数清单:

char*getname()获取姓名,intgettag()获取删除标记,intgetno()获取读者编号,voidsetname(charna[])设置姓名,voiddelbook()设置删除标记1:

已删0:

未删,char*getmima()获取读者的密码,voidaddreader(intn,char*na,char*mi)增加读者[形参分别为编号,姓名,密码],voidborrowbook(intbookid)借书操作[形参为图书编号],intretbook(intbookid)还书操作[形参为图书编号],voiddisp()显示函数。

2.读者库类,实现建立读者的个人资料

函数清单:

RDatabase()构造函数,将reader.txt读到read[]中,voidclear()//删除所有读者信息,intaddreader(intn,char*na,char*mi)//添加读者时先查找是否存在[形参分别为编号,姓名,密码],Reader*query(intreaderid)//按编号查找,voiddisp()//输出所有读者信息,voidreaderdata();//读者库维护

读者库维护函数流程图:

N

Y

输出“该读者不存在”

r==Null?

输入读者编号

Case2/3/4

0.退出

6.全删

5.显示

4.查找

3.删除

2.更改

1.新增

Case2:

输入新的姓名

Case3:

r->delbook();

Case4:

输出读者信息

break

3.图书类,实现对图书的描述,图书的编号,书名,借出,还入等

函数清单:

char*getname()//获取姓名,intgetno()//获取图书编号,intgettag()//获取删除标记,voidsetname(charna[])//设置书名,char*Book:

:

getwriter()//获取书籍作者,char*Book:

:

getconcem(){returnconcem;}//获取书籍出版社,char*Book:

:

gettime(){returnTime;},floatBook:

:

getprice(){returnprice;}//获取书籍价格,voiddelbook()//删除图书,voidBook:

:

addbook(intn,char*na,char*wri,char*con,char*tm,floatpr)//增加图书[形参为书名,编号,作者,出版社,出版时间,价格],intborrowbook()//借书操作,voidretbook()//还书操作,voiddisp()//输出图书。

4.图书库类,实现对图书的维护,查找,删除等

函数清单:

BDatabase()//构造函数,将book.txt读到book[]中,voidclear()//全删,ntBDatabase:

:

addbook(intn,char*na,char*wri,char*con,char*tm,floatpr)//增加图书[形参为书名,编号,作者,出版社,出版时间,价格],Book*BDatabase:

:

query(intbookid)//查找图书[形参为图书编号],intBDatabase:

:

qname(char*nm),voidbookdata();//图书库维护,voiddisp()显示函数。

四、程序运行结果测试与分析

运行结果:

分析:

由于时间有限,程序在显示上仍有小问题,待改进。

五、程序源代码

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

constintMaxr=100;//最多的读者

constintMaxb=100;//最多的图书

constintMaxbor=5;//每位读者最多借五本书

/****************读者类,实现对读者信息的描述****************/

classReader

{

private:

inttag;

intno;

charname[10];//读者姓名

intborbook[Maxbor];

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1