欢迎来到天天文库
浏览记录
ID:1521037
大小:567.00 KB
页数:31页
时间:2017-11-12
《图书馆管理系统程序设计方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、图书馆管理系统程序设计方案.系统分析2.1数据需求本系统主要是某图书馆的图书信息简单管理的系统。需要向系统输入图书的信息,例如:图书名、编号、作者、图书类别、出版社、图书定价、图书简介。2.2功能需求本系统需要有添加,删除,查询,修改,循环显示主菜单,保存信息功能,读取信息,可以按书名实现模糊查询,可以按类别统计图书数量,可以统计图书总数。2.3性能需求在运行本程序时只要按照正确的操作方法不会出现无法运行的情况,系统稳定性好,安全,可靠。3.总体设计3.1功能模块设计根据分析整个系统主要划分为8个功能模块,分别执
2、行要求中的功能。该系统需要有删除,修改,添加,查询,保存信息功能,按类图书别统计,统计总数,模糊查询。功能模块如图1所示。31图1功能模块图(1)添加图书信息模块添加图书基本信息:图书编号、图书名、作者、图书类别、出版社、图书定价、图书简介。(2)修改图书信息模块对会图书内部信息的修改,修改图书的基本信息:图书名、图书编号、作者、图书类别、出版社、图书定价、图书简介。(3)查询图书信息模块对图书内部信息的查询包括通过书名查询和按类别查询。查询的结果显示为图书名、图书编号、作者、图书类别、出版社、图书定价、图书简介
3、。(4)删除图书信息模块可以删除图书的所有基本信息。(5)按类别统计模块可将图书按类别统计其图书个数。(6)统计总数模块对图书总数进行统计。31(7)图示借阅模块可实现对图书的借阅,需输入学生信息。(8)图书归还模块归还图书,增加图书的现存量。(9)读取模块读取储存的图书基本信息。3.2系统设计方案(1)菜单设计一个总菜单,1添加图书信息,2根据书名查找图书,3修改图书信息,4删除图书信息,5图书归还,6图书总数统计,7图书借阅,8储存,9按类别查询图书,10读取图书信息,基本功能的实现都将体现在菜单选项中。(2
4、)数据结构建立结构体如下:structbook{longdigit;//图书编号charname[50];//书名charauthor[20];//作者chargategory[20];//图书类别charphouse[20];//出版社longprice;//定价charsynopsis[20];//图书简介structbook*next;//structbook类型的结构体成员}*head;//定义一个指向结构体的指针根据模块需要本系统需要用到链表结构。(3)函数定义了12个函数,都实现以下功能:voidme
5、nu();//主菜单voidprint();//输出voidcreat();//创建31voidsearch_name()//按姓名查询;voidsearchgategory();//按类别查询voidmodify();//修改voiddel();//删除voidl();//按类别统计voidw();//统计总数voidMH(structbook*p,chara[])//;模糊查询voidsave();//储存voidread()//读取4.详细设计和实现4.1创建模块创建模块:分为2个部分1输出、2创建。(1)
6、输出部分流程图:如图2所示。31图2输出流程图输出部分创建一个结构体structbook结构体内有成员7个:编号,名字,作者,类别,出版社,价格简介。输出程序流程如图2所示。(2)创建部分如图3所示。31图3创建模块流程图31所谓创建是指在程序执行过程中从无到有地建立起一个链表,即一个一个地开辟结点和输入各结点数据,并建立起前后相链的关系。设3个指针变量:head、P1、P2它们都是用来指向structbook类型数据的。先用malloc函数开辟第一个结点,并使P1P2,它们都用来指向它。然后从键盘读入一个图书的
7、数据给p1所指的第一个结点。我们设定编号不能为0如果输入图书编号为0,则表示链表建立的过程完成,该结点不应该连接到链表中。先使head的值为NULL,这是链表为空的情况。当建立第一个结点的时候head指向该结点。如果输入的p1->num不等于0则输入第一个结点数据(n=1),令head=p1,即把p1的值赋给head,也就是使head也指向新开辟的结点。然后在开辟另一个结点并使p1指向它,接着输入该结点的数据。如果输入的p1->num!=0,则应链入第二个结点(n=2),由于n!=1,则将p1的值赋给p2->ne
8、xt,此时p2指向第一个节点,因此执行“p2->next=p1”就将新结点的地址赋给第一个结点的next成员,使第一个结点的next成员指向第二个结点。接着使p2=p1,也就是使p2指向刚才建立的结点。接着在开辟一个结点并使p1指向它,并输入该结点的数据。在第三次循环中,由于n=3(n!=1),又将p1的值赋给p2->next,也就是将第三个结点连接到第二个结点之后,并使
此文档下载收益归作者所有