图书管理信息系统的设计与实现Word文件下载.docx

上传人:b****5 文档编号:16014420 上传时间:2022-11-17 格式:DOCX 页数:27 大小:43.20KB
下载 相关 举报
图书管理信息系统的设计与实现Word文件下载.docx_第1页
第1页 / 共27页
图书管理信息系统的设计与实现Word文件下载.docx_第2页
第2页 / 共27页
图书管理信息系统的设计与实现Word文件下载.docx_第3页
第3页 / 共27页
图书管理信息系统的设计与实现Word文件下载.docx_第4页
第4页 / 共27页
图书管理信息系统的设计与实现Word文件下载.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

图书管理信息系统的设计与实现Word文件下载.docx

《图书管理信息系统的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理信息系统的设计与实现Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。

图书管理信息系统的设计与实现Word文件下载.docx

书号

书名

指针1

作者

指针2

出版社

指针3

分类

藏书量

借出数

1

1021

数据库

小云

人民邮电

8

2

1014

小洋

中国科学

013

6

3

1106

操作系统

许海平

1

7

4

1108

清华大学

5

1203

程序设计

2201

2360

0030

a)图书主索引文件

链头地址

长度

b)书名索引链头文件c)作者索引链头文件d)出版社索引链头文件

二、设计容

设计一个计算机管理系统完成图书管理基本业务。

(1)每种书的登记容包括书号、书名、著作者、现存量和库存量;

(2)对书号建立索引表(线性表)以提高查找效率;

(3)采编入库:

新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,

则只将库存量增加;

(4)借阅:

如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和还

期限,改变现存量;

(5)归还:

注销对借阅者的登记,改变该书的现存量。

三、概要设计:

确定所需模块及模块间调用关系

分析:

首先应该定义借书人的结构体信息和图书结构体信息,为了便于查找图书和借书人,分别对其建立单链表。

然后定义buy(),SearchByNum(),SearchByName(),borrow(),return()五个函数分别实现图书采编入库的功能,按书号查询的功能,按书名查找的功能,借书功能和还书功能。

.根据任务的要求,先定义头文件。

然后写出借书人和图书的结构体信息。

为了便

于查找图书和存储借书人的信息,分别对借书人和图书采用链表的形式存放。

//头文件的声明

#include<

stdio.h>

string.h>

stdlib.h>

#defineMAXSIZE100//最大值定义为100

#defineLIST_INIT_SIZE100//图书证使用者最大值定义为100

//借书人的结构体

typedefstructBoro//借书记录

{

charBNum[20];

//所借书的书号

charBorDate[8];

//借书日期

charRetDate[8];

//归还日期

structBoro*next;

}Bor;

typedefstructLinkBook

Bor*next;

//该图书证的借书记录

charCNum[20];

//图书证号

intTotal;

//借书的数量

}lend[LIST_INIT_SIZE];

//借书人数组

//图书的结构体信息

typedefstructLNode

charCardNum[20];

structLNode*next;

}LinkList;

//借书人

typedefstructbook

{//每种图书需要登记的容包括书号、书名、作者、出版社、总库存量和现库量。

charnum[20];

//书号

charname[20];

//书名

charauth[20];

//作者

charpub[20];

//出版社

intTotNum;

//总库存

intNowNum;

//现库存

LinkList*next;

//借了该书的人}ook;

1、新图书采编入库的设计方案

采编入库:

新购入一种书,如果该书在图书账目中已经存在,则将其库存量增加(包

括总库存量和现库存量),如果该书不存在,则在图书账目中增加一种书,总库存量和现库存量均为1。

为了便于查找,另外定义了一个专门用于查找的函数BinarySearch(),使用的是折半查找法。

(1)折半查找法查找书号

intmid=0;

//外部函数mid,用来返回查找到的位置

intBinarySearch(ookboo,charSearchNum[])//二分法查找比较书号

{由于函数不能有两个返回值,所以设置一个外部变量mid,用来返回查找到的位置

intlow=0,high=total-1;

intfound=0;

while(low<

=high)

{

mid=(low+high)/2;

//中间点

if(strcmp(boo[mid].num,SearchNum)==0)//书号相同

found=1;

returntrue;

}//查找成功

if(strcmp(boo[mid].num,SearchNum)!

=0)//书号不同

high=mid-1;

elselow=mid+1;

}

if(found==0)

returnfalse;

//查找失败

}

2.新图书采编入库

voidBuy(ook&

boo,charBuyNum[])

if(BinarySearch(boo,BuyNum))//如果书库中有此书

boo[mid].TotNum++;

//总库存加1

boo[mid].NowNum++;

//现库存加1

printf("

入库成功.\n"

);

已更改书库中该书的信息。

编号%s的书%s作者是%s,出版社是%s,

目前的总库存是%d,现库存是%d。

\n"

boo[mid].num,boo[mid].name,boo[mid].auth,boo[mid].pub,boo[mid].TotNum,boo[mid].NowNum);

if(!

BinarySearch(boo,BuyNum))

inti;

for(i=total;

i>

mid&

&

total;

i--)//插在适合位置保持有序

boo[i]=boo[i-1];

//空出插入位置

该书在书库中不存在。

设立新书目,请补全书的详细信息。

strcpy(boo[i].num,BuyNum);

该书购入的数量是:

"

scanf("

%d"

&

boo[i].NowNum);

boo[i].TotNum=boo[i].NowNum;

该书的名字是:

%s"

boo[i].name);

该书的作者是:

boo[i].auth);

该书的出版社是:

boo[i].pub);

//补全信息

boo[i].next=NULL;

total++;

//总量+1

已增加该书的信息。

编号%s的书%s作者是%s,出版社是%s,目前

的总库存是%d,现库存是%d。

boo[i].num,boo[i].name,boo[i].auth,boo[i].pub,boo[i].TotNum,boo[i].NowNum);

3、查找图书的设计方案

为了更便于查找,这里设计了两种查找方案,按书号查找和按书名查找。

在按书号

查找中使用了折半查找法的查找函数。

按书号查找方案中都显示图书的所有状态,包括是在库还是借出,如果借出,并显示何人借走。

(1).按书号查找

voidSearchByNum(ook&

boo,charSeaNum[])

{//BYNUM根据书号查找

LinkList*p;

p=boo[mid].next;

if(BinarySearch(boo,SeaNum)==false)printf("

对不起,未找到您想查找的书。

//二分查找没找到

else//找到了的话

printf("

┃书号┃书名┃作者┃出版社┃现库存┃总库存┃\n"

-------------------------------------------------------------------------------\n"

┃%10s┃%10s┃%10s┃%10s┃%10d┃%10d┃\n"

boo[mid].num,boo[mid].name,boo[mid].auth,boo[mid].pub,boo[mid].NowNum,boo[mid].TotNum);

if(boo[mid].next!

=NULL)

{printf("

┃已借该书的┃\n"

┃图书证号┃\n"

while(p)

┃%14s┃\n"

p->

CardNum);

p=p->

next;

%s"

//在按书号查找的函数里也显示借了这本书

的借阅者的证号

\n"

}//显示查找的书籍的信息

}

(2).按书名查找

voidSearchByName(ook&

boo)

{//BYNAME根据书名查找

charSeaName[20];

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

当前位置:首页 > 人文社科 > 文学研究

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

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