图书管理管理系统语言程序的设计书.docx
- 文档编号:2448056
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:19
- 大小:60.82KB
图书管理管理系统语言程序的设计书.docx
《图书管理管理系统语言程序的设计书.docx》由会员分享,可在线阅读,更多相关《图书管理管理系统语言程序的设计书.docx(19页珍藏版)》请在冰豆网上搜索。
图书管理管理系统语言程序的设计书
图书管理管理系统语言程序设计书
1、问题定义
图书信息包括:
编号、书名、作者名、分类号、出版单位、出版时间、库存数量,价格等。
试设计一图书信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)图书信息录入功能(图书信息用文件保存)
(3)图书信息浏览功能
(4)图书信息查询功能
查询方式:
可以按书名,按作者名,按出版单位,按出版时间进行查询。
(5)图书信息的删除与修改
在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。
2、系统设计
2.1总体设计
采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。
需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。
可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。
图2.1图书管理系统功能模块图
本图书管理系统要求采用单链表实现,如图2.1所示,它由如下四大功能模块组成:
●借书模块。
通过输入读者的编号和图书的编号,查找到要该借的书,完成借书这一项任务
●还书模块。
通过输入读者的编号和图书的编号,查找到要该还的书,完成还书这一项任务
●图书维护模块。
完成对图书信息的维护。
在此图书管理系统中,它实现了对图书信息的新曾、更改、删除、查找和显示操作,并将追加后的数据存入源数据文件。
●读者维护模块。
一是实现对读者记录的存盘,即将读者信息写入数据文件中;
2.2详细设计
2.2.1借书模块
通过输入读者的信息和要借的书的编号。
系统显示相应的内容,若该文件中没有数据,系统会提示单链表为空,没有任何读者记录或图书操作,此时,用户应选择调用create()函数,进行读者记录的输入,即完成在单链表1中添加记录的操作。
值得一提的是,这里的字符串和数值的输入分别采用了函数来实现,在函数中完成输入数据任务,并对数据进行条件判断,直到满足条件为止,这样一来,大大减少了代码的重复和冗余,符合模块化程序设计的特点。
2.2.2还书模块
还书模块主要实现了在单链表中按读者和图书的编号查找满足相关条件的借书记录。
在用户选择4,调用查询函数search()中,为指向保存了读者信息的单链表的首地址的指针变量。
为了遵循模块化编程的原则,我们将在单链表中进行的指针定位操作,设计一个
intretbook(intbookid)
{
for(inti=0;i { if(borbook[i]==bookid) { borbook[i]=0; return1; } } return0; } //读出读者信息 voiddisp() { cout< ["; for(inti=0;i if(borbook[i]! =0) cout< cout<<"]"< } }; 若没有该记录,则显示无此记录,返回到上一操作。 2.2.3图书维护模块 此模块主要实现了对图书记录的新增、更改、删除、查找和显示操作。 因为图书记录是以单链表的结构形式存储的,所以这些操作都在单链表中完成。 下面分别介绍着4个功能模块。 新增记录。 该操作需要对单链表中目标节点的数据域中的值进行追加新增要输入图书的编号和书名, intaddbook(intn,char*na) { Book*p=query(n); if(NULL==p) { top++; book[top].addbook(n,na); return1; } return0; } 更改系统。 该操作可以将原本错误的图书记录更改,将之改为正确的记录。 首先输入原来的记录的图书的编号,在此之后输入新的记录的书名。 ③删除系统。 该操作可以将原本记录得图书信息,在不用之后选择将此删除的一种方法,在弹出的窗口输入原来的图书的编号,就可以将之删除。 ④查找系统。 该操作可以帮助读者快速找到将要借的图书,只要输入图书的编号,如果有这本书,就将显示出。 反之就会显示不存在。 Book*query(intbookid) { for(inti=0;i<=top;i++) if(book[i].getno()==bookid&&book[i].gettag()==0) { return&book[i]; } returnNULL; } 显示系统。 该操作可以显示出图书现在的信息。 cout<<"输入图书编号: "< cin>>bookid; cout<<"输入图书书名: "< cin>>bname; addbook(bookid,bname); break; case'2': cout<<"输入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } cout<<"输入新的书名: "< cin>>bname; b->setname(bname); break; case'3': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } b->delbook(); break; case'4': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } b->disp(); break; case'5': disp(); break; case'6': clear(); break; default: cout<<"输入错误,请从新输入: "; } } }cout<<"输入图书编号: "< cin>>bookid; cout<<"输入图书书名: "< cin>>bname; addbook(bookid,bname); break; case'2': cout<<"输入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } cout<<"输入新的书名: "< cin>>bname; b->setname(bname); break; case'3': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } b->delbook(); break; case'4': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } b->disp(); break; case'5': disp(); break; case'6': clear(); break; default: cout<<"输入错误,请从新输入: "; } } }cout<<"输入图书编号: "< cin>>bookid; cout<<"输入图书书名: "< cin>>bname; addbook(bookid,bname); break; case'2': cout<<"输入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } cout<<"输入新的书名: "< cin>>bname; b->setname(bname); break; case'3': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } b->delbook(); break; case'4': cout<<"读入图书编号: "< cin>>bookid; b=query(bookid); if(b==NULL) { cout<<"该图书不存在"< break; } b->disp(); break; case'5': disp(); break; case'6': clear(); break; default: cout<<"输入错误,请从新输入: "; } } 3、系统实现 3.1编码 3.1.2主函数main()include #include #include //输入/输出文件流类 #include usingnamespacestd; //最多的读者 constintMaxr=100; //最多的图书 constintMaxb=100; //每位读者最多借五本书 constintMaxbor=5; //图书库类,实现对图书的维护,查找,删除等 classBDatabase { private: //图书记录指针 inttop; //图书记录 Bookbook[Maxb]; public: //构造函数,将book.txt读到book[]中 BDatabase() { Bookb; top=-1; fstreamfile("book.txt",ios: : in); while (1) { file.read((char*)&b,sizeof(b)); if(! file)break; top++; book[top]=b; } file.close(); } //全删 voidclear() { top=-1; } //增加图书 intaddbook(intn,ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 语言 程序 设计