图书管理信息系统的设计与实现Word文档格式.docx

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

图书管理信息系统的设计与实现Word文档格式.docx

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

图书管理信息系统的设计与实现Word文档格式.docx

指针1

作者

指针2

出版社

指针3

分类

藏书量

借出数

1

1021

数据库

李小云

人民邮电

021

8

2

1014

刘小洋

中国科学

013

6

3

1106

操作系统

许海平

1

024

7

4

1108

孙一

清华大学

5

1203

程序设计

035

2201

2360

0030

a)图书主索引文件

链头地址

长度

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

二、设计内容

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

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

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

(3)采编入库:

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

则只将库存量增加;

(4)借阅:

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

期限,改变现存量;

(5)归还:

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

三、概要设计:

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

分析:

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

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

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

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

为了便

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

um,SearchNum)==0)um,SearchNum)!

=0)图书采编入库

voidBuy(ook&

boo,charBuyNum[])

{

if(BinarySearch(boo,BuyNum))otNum++;

owNum++;

n"

);

printf("

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

编号%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--)um,BuyNum);

该书购入的数量是:

"

scanf("

%d"

&

boo[i].NowNum);

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

该书的名字是:

%s"

boo[i].name);

该书的作者是:

boo[i].auth);

该书的出版社是:

boo[i].pub);

ext=NULL;

total++;

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

入库成功.\n"

}

3、查找图书的设计方案

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

在按书号

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

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

(1).按书号查找

voidSearchByNum(ook&

boo,charSeaNum[])

{ext;

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

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

um,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"

书名查找

voidSearchByName(ook&

boo)

{ame)==0)um,boo[i].name,boo[i].auth,boo[i].pub,boo[i].TotNum,boo

[i].NowNum);

}owNum>

0)owNum--;

ext==NULL)ext=m;

ext;

while(m->

next)Num,CaNum))ext;

while(p->

next)p=p->

n"

break;

Num,CaNum);

ext=p;

strcpy(p->

BNum,BorrowNum);

输入归还日期:

p->

RetDate);

p->

next=NULL;

Retotal++;

elseprintf("

借阅失败.该书现在库存为0.\n"

5、归还图书的设计方案

定义了一个return函数,当进行还书时,在借阅者表里查找借阅者,注销对借阅者的登记。

在图书链表中改变该书的现存量,把现存量增加。

voidReturn(ook&

boo,lend&

Lin,charReturnNum[],charBorrowerNum[])

{Bor*p,*q;

LinkList*m,*n;

intflag=0;

if(BinarySearch(boo,ReturnNum))ext;

strcmp(m->

CardNum,BorrowerNum))owNum++;

ext=m->

Num,BorrowerNum))ext;

strcmp(p->

BNum,ReturnNum))ext=p->

flag=1;

elsen"

for(intk=0;

k<

Retotal;

k++)

Lin[k].next)

intj;

for(j=k;

j<

j++)

Lin[j]=Lin[j+1];

Num,"

"

6、定义主函数,在主函数中设计出主界面。

便于用户进入后能够根据提示方便操作。

并且在主函数中定义出要实现的基本功能,在分别另外去实现。

分别在主函数中定义有:

Buy(Bo,BNum);

SearchByNum(Bo,BNum);

SearchByName(Bo);

Borrow(Bo,Lin,BNum,CNum);

Return(Bo,Lin,BNum,CNum)五个函数。

四、算法描述:

给出各模块流程图及代码

图书管理系统的总体结构如

完整代码如下:

“”

的种类数

owNum=0;

boo[i].TotNum=0;

boo[i].next=NULL;

voidInitRe(lend&

Lin)ext=NULL;

intmid=0;

um,SearchNum)==0)um,SearchNum)>

0)otNum++;

编号%s的书%s作者是%s,出版社是%s,目前的总库存是%d,现库存是%d。

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

inti=0,j=0;

while(boo[i].num[j]!

=0)

{

i++;

}

um,BuyNum);

scanf("

printf("

voidBorrow(ookboo[],lend&

Lin,charBorrowNum[],charCaNum[])

{owNum>

输入借书日期:

BorDate);

voidReturn(ookboo[],lend&

{n"

if(BinarySearch(boo,ReturnNum))ext;

ext;

if(boo[mid].next!

ame)==0)um,boo[i].name,boo[i].auth,boo[i].pub,boo[i].TotNum,boo[i].NowNum);

}um[j]=0;

-----------------------欢迎进入图书管理系统!

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

intchoice=5;

intSearchCho=5,ViewCho=10;

while(choice!

=0)

{

请选择:

\n\n"

\t\t\t1.新图书采编入库\n\n\n"

\t\t\t2.按书号查找图书\n\n\n"

\t\t\t3.按书名查找图书\n\n\n"

\t\t\t4.借阅图书\n\n\n"

\t\t\t5.归还图书\n\n\n"

\t\t\t0.退出系统\n\n\n"

语言程序设计教程.

[2]朱战立等.数据结构(C语言版).

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

当前位置:首页 > 小学教育 > 小升初

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

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