图书管理信息系统的设计与实现_第1页
图书管理信息系统的设计与实现_第2页
图书管理信息系统的设计与实现_第3页
图书管理信息系统的设计与实现_第4页
图书管理信息系统的设计与实现_第5页
已阅读5页,还剩15页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图书管理信息系统的设计与实现图书管理信息系统的设计与实现图书管理信息系统的设计与实现图书管理信息系统的设计与实现编制仅供参考审核批准生效日期地址: 电话:传真: 邮编:数据结构课程设计报告设计题目:图书管理信息系统的设计与实现专 业 通信工程(物联网) 班 级 学 生 学 号 指导教师 起止时间 2012-8-20至2012-9-11湖北师范学院 2012 年 下 学期一、设计题目十七、图书管理信息系统的设计与实现【问题描述】图书信息所表示的就是一个数据库文件。图书管理一般包括:图书采编、图书编目、图书查询及图书流通(借、还书)等。要求设计一个图书管理信息系统,用计算机实现上述系统功能。【基本

2、要求】建立一个图书信息数据库文件,输入若干种书的记录,建立一个以书号为关键字的索引文件;在主数据库文件中建立以书名、作者及出版社作为次关键字的索引以及对应的索引链头文件,如图所示;建立关于书号、书名、作者及出版社的图书查询;实现图书的借还子系统,包括建立读者文件、借还文件、读者管理及图书借还等相关的处理。记录号书号书名指针1作者指针2出版社指针3分类藏书量借出数11021数据库0李小云0人民邮电00218021014数据结构0刘小洋0中国科学00136031106操作系统0许海平0人民邮电10247041108数据结构2孙一0清华大学00135051203程序设计0李小云1中国科学203560

3、62201数据库1许海平3清华大学40216072360数据结构4李小云5人民邮电30135080030程序设计5刘小洋2清华大学603570a)图书主索引文件书名链头地址长度作者链头地址长度出版社链头地址长度数据库62李小云73人民邮电73数据结构73刘小洋82中国科学52操作系统31许海平62清华大学83程序设计82孙一41b)书名索引链头文件 c) 作者索引链头文件 d)出版社索引链头文件 二、设计内容设计一个计算机管理系统完成图书管理基本业务。 (1)每种书的登记内容包括书号、书名、著作者、现存量和库存量; (2)对书号建立索引表(线性表)以提高查找效率; (3)采编入库:新购一种书,

4、确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; (4)借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和还期限,改变现存量; (5)归还:注销对借阅者的登记,改变该书的现存量。三、概要设计:确定所需模块及模块间调用关系分析:首先应该定义借书人的结构体信息和图书结构体信息,为了便于查找图书和借书人,分别对其建立单链表。然后定义buy(),SearchByNum (),SearchByName(), borrow(),return()五个函数分别实现图书采编入库的功能,按书号查询的功能,按书名查找的功能,借书功能和还书功能。 .根据任务的要求,先定义头文件。然后写出

5、借书人和图书的结构体信息。为了便于查找图书和存储借书人的信息,分别对借书人和图书采用链表的形式存放。 um,SearchNum)=0) um,SearchNum)!=0)图书采编入库 void Buy(ook &boo, char BuyNum) if(BinarySearch(boo,BuyNum) otNum+; owNum+; n); printf(已更改书库中该书的信息。编号 %s 的书 %s 作者是 %s ,出版社是 %s ,目前的总库存是 %d ,现库存是 %d 。n,boomid.num,,boomid.auth,boomid.pub,boomid.TotN

6、um,boomid.NowNum); if(!BinarySearch(boo,BuyNum) int i; for(i=total;imid&total;i-) um,BuyNum); printf(该书购入的数量是:); scanf( %d,&booi.NowNum); booi.TotNum=booi.NowNum; printf(该书的名字是:); scanf( %s,&); printf(该书的作者是:); scanf( %s,&booi.auth); printf(该书的出版社是:); scanf( %s,&booi.pub);ext=NULL; total+;u

7、m,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); printf(入库成功.n); 3、查找图书的设计方案 为了更便于查找,这里设计了两种查找方案,按书号查找和按书名查找。在按书号查找中使用了折半查找法的查找函数。按书号查找方案中都显示图书的所有状态,包括是在库还是借出,如果借出,并显示何人借走。 (1).按书号查找 void SearchByNum(ook &boo,char SeaNum) ext; if(BinarySearch(boo,SeaNum)=false)printf(对不起,未找到您想查找的书。n);um,boom

8、,boomid.auth,boomid.pub,boomid.NowNum,boomid.TotNum); if(boomid.next!=NULL) printf( 已借该书的 n); printf( 图书证号 n); while(p) printf(%14sn,p-CardNum); p=p-next; while(p) printf( %s ,p-CardNum);书名查找 void SearchByName(ook &boo) ame)=0)um,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); owNum0)

9、owNum-;ext=NULL) ext=m;ext; while(m-next) Num,CaNum)ext; while(p-next)p=p-next;n); break; Num,CaNum); ext=p; strcpy(p-BNum,BorrowNum); printf(输入归还日期:); scanf( %s,&p-RetDate); p-next=NULL; Retotal+; n); else printf(借阅失败.该书现在库存为0.n); 5、归还图书的设计方案 定义了一个return函数,当进行还书时,在借阅者表里查找借阅者,注销对借阅者的登记。在图书链表中改变该书的现存

10、量,把现存量增加。 void Return(ook &boo,lend &Lin,char ReturnNum,char BorrowerNum) Bor *p,*q; LinkList *m,*n; int flag=0;n); if(BinarySearch(boo,ReturnNum) ext; if(!strcmp(m-CardNum,BorrowerNum) owNum+; ext=m-next; owNum+; Num,BorrowerNum) ext; if(!strcmp(p-BNum,ReturnNum) ext=p-next; n); flag=1; break; else

11、 n); flag=1; break; p=p-next; for(int k=0;kRetotal;k+) if(!Link.next) int j; for(j=k;j0)otNum+; owNum+; n); printf(已更改书库中该书的信息。编号 %s 的书 %s 作者是 %s ,出版社是 %s ,目前的总库存是 %d ,现库存是 %d 。n,boomid.num,,boomid.auth,boomid.pub,boomid.TotNum,boomid.NowNum); if(!BinarySearch(boo,BuyNum) int i=0,j=0; whi

12、le(booi.numj!=0) i+; um,BuyNum); printf(该书购入的数量是:); scanf( %d,&booi.NowNum); booi.TotNum=booi.NowNum; printf(该书的名字是:); scanf( %s,&); printf(该书的作者是:); scanf( %s,&booi.auth); printf(该书的出版社是:); scanf( %s,&booi.pub);ext=NULL; total+;um,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); prin

13、tf(入库成功.n); void Borrow(ook boo,lend &Lin,char BorrowNum,char CaNum) owNum0) owNum-;ext=NULL) ext=m;ext; while(m-next) Num,CaNum)ext; n); break; Num,CaNum); ext=p; strcpy(p-BNum,BorrowNum); printf(输入借书日期:); scanf( %s,&p-BorDate); printf(输入归还日期:); scanf( %s,&p-RetDate); p-next=NULL; Retotal+; n); els

14、e printf(借阅失败.该书现在库存为0.n); void Return(ook boo,lend &Lin,char ReturnNum,char BorrowerNum) n); if(BinarySearch(boo,ReturnNum) ext; if(!strcmp(m-CardNum,BorrowerNum) owNum+; ext=m-next; owNum+; Num,BorrowerNum) ext; if(!strcmp(p-BNum,ReturnNum) ext=p-next; n); flag=1; break; else n); flag=1; break; p=p-next; for(int k=0;kRetotal;k+) if(!Link.next) int j; for(j=k;jCardNum); p=p-next; while(p) printf( %s ,p-CardNum);ame)=0)um,,booi.auth,booi.pub,booi.TotNum,booi.NowNum); umj=0; printf(-欢 迎 进 入 图 书 管 理 系 统!-nn); int choice=5; int SearchCho=5,ViewCho=10; whi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论