数据结构课程设计图书管理系统Word文档下载推荐.docx

上传人:b****5 文档编号:15956514 上传时间:2022-11-17 格式:DOCX 页数:23 大小:162.79KB
下载 相关 举报
数据结构课程设计图书管理系统Word文档下载推荐.docx_第1页
第1页 / 共23页
数据结构课程设计图书管理系统Word文档下载推荐.docx_第2页
第2页 / 共23页
数据结构课程设计图书管理系统Word文档下载推荐.docx_第3页
第3页 / 共23页
数据结构课程设计图书管理系统Word文档下载推荐.docx_第4页
第4页 / 共23页
数据结构课程设计图书管理系统Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据结构课程设计图书管理系统Word文档下载推荐.docx

《数据结构课程设计图书管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计图书管理系统Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

数据结构课程设计图书管理系统Word文档下载推荐.docx

e)

}ADTLinearList

2、ADTString{

  数据对象:

D={ai|ai∈CharacterSet,i=1,2,…,n;

n≧0}

 数据关系:

R={<

ai-1,ai〉|ai-1,ai∈D,i=2,…,n;

 基本操作:

(1)StrAsign(S,chars)

(2)StrInsert(S,pos,T)

(3)StrDelete(S,pos,len)

(4)StrCopy(S,T)

(5)StrEmpty(S)

(6)StrCompare(S,T)

(7)StrLength(S)

(8)StrClear(S)

(9)StrCat(S,T)

(10)SubString(Sub,S,pos,len)

(11)StrIndex(S,pos,T)

(12)StrReplace(S,T,V)

(13)StrDestroy(S)

}ADTString

●系统中的子程序和功能说明:

InitBo(Book&

boo);

初始化图书信息

InitRe(lend &Lin);

初始化借阅者信息

BinarySearch(Bookboo,char SearchNum[]);

二分法查找比较书号

Buy(Book&boo,charBuyNum[]);

新书采编入库系统

Delete(Book&

boo,charDeleteNum[]);

清除图书信息系统

Borrow(Book&boo,lend&

Lin,charBorrowNum[],charCaNum[]);

借阅图书处理系统

Return(Book&

boo,lend&Lin,charReturnNum[],charBorrowerNum[]);

归还图书系统

SearchByNum(Book &boo,charSeaNum[]);

按书号查找系统

SearchByName(Book&boo);

按书名查找系统

SearchByAuth(Book&boo);

按作者查询系统

Menu();

主菜单显示系统

Search();

查询系统子菜单

main();

主函数

●系统程序功能结构图

三详细设计

●功能实现过程

bool BinarySearch(Bookboo,char SearchNum[])//二分法查找比较书号

{

while(low<

=high)

{

ﻩ计算中间点;

ﻩﻩif(查找到书号相同的)

ﻩﻩ返回值true;

ﻩﻩ}

ﻩif(查找书号不相同)

ﻩ用二分法进一步进行查找;

ﻩ}

if(库中没有所要查找的书)

ﻩ 返回值false;

 void Buy(Book&

boo,char BuyNum[])/*采编入库*/

 if(书库中有此书)

 总库存加1;

 现库存加1;

if(书库中无此书)

for(i=total;

i〉mid&&total;

i——)/*将新采购的书插在适合位置,保持有序*/

 空出插入位置;

  输入新购书籍的相关信息:

书号、书名、作者、出版社;

boo[i].next=NULL;

total++;

/*总量加1*/

voidDelete(Book&

boo,charDeleteNum[])/*清除图书信息*/

 if(书库中没有此书)

输出“无此书”;

if(书库中有此书)

strcpy(连续两本书的相关信息);

现存量减1;

库存量减1;

}

else输出“此书已有借阅者,无法删除!

”;

voidBorrow(Book &

boo,lend&

Lin,charBorrowNum[],char CaNum[])/*借阅图书信息*/

 if(没有找到此书)输出“书库中无此书!

  if(书库中有此书)

借出一本书后,该书的现存量减1;

并在借阅记录链表中插入该条记录;

再对应读者信息记录链表,如果已有该读者证号信息,直接在该链表中插入此次借阅记录;

如果无该读者证号信息,申请新单链表存放借阅记录.

else 输出“该书现存量为0”;

voidReturn(Book &boo,lend&Lin,char ReturnNum[],charBorrowerNum[])/*归还图书信息*/

if(书库中无此书)

输出“无此书记录”;

if(书库中有此书)

查找图书文件,修改图书的现存量;

查找记录借阅信息的单链表,填入还书日期,删除借阅信息;

查找记录读者信息的单链表,删除证号信息。

voidSearchByNum(Book&boo,charSeaNum[])/*按书号查找*/

if(书库中无此书信息)/*用二分法查找*/

  输出“无此书”;

 else/*书库中有此书信息*/

 输出与此书有关的相关信息;

voidSearchByName(Book&

boo)/*按书名查找*/

输入想要查找书的书名;

用顺序查找法查找;

if(查找到需要查找的书)

输出与此书相关的信息;

建议画出主要模块流程图。

四 设计与调试分析

1、这个程序设计中要注意定义两个结构体:

图书结构体、借阅人结构体。

其中定义数组存放图书信息,申请链表存放借阅记录和读者信息记录。

2、程序中运用到大多的插入与删除,所以申请链表比较方便插入与删除。

但应前期需求分析的准备工作不充分,导致程序运行功能不全,比如查找时关于此书的信息不能全部显示出来,并且添加删除时库存的变化不能直接显示出来。

程序的健壮性不能达到预期的结果,这些都是需要改进的.

3、在程序中的函数调用是个非常重要的部分,也是经常需要用到的,在编写程序过程中,因为函数调用不准确,使得循环进不去,后来改变函数的调用关系,才达到了预期结果。

4、程序中还定义了全局变量,之前没定义全局变量,在下面的编写过程,同样性质的地方需要重复定义,比较麻烦,定义全局变量使得程序比较简明一点。

五用户手册

【使用说明】

1、进入图书馆管理系统主页面

2、若有新书要新编入库,选择1,进入新书入库系统,输入入库书的书号,若书库中无该书,则设立新书目,输入新书信息。

若书库中已有该书,则输入新信息覆盖修改原书库中该书号对应书的信息。

3、若有书籍信息需要删除,选择2,进入清空库存系统,输入想要删除书的书号,则此书信息就已删除.

4、若要借阅图书,选择3,进入图书借阅系统,输入需要借阅书的书号以及读者证号,并输入还书日期,则借书成功。

5、若要归还图书,选择4,进入图书归还系统,输入需要归还图书的书号以及读者证号,则还书成功。

6、若要查找信息,选择5,进入查找信息子系统。

若要按书号查找,则选择子系统中的1,输入需要查找的书的书号,若按书名查找,则选择子系统中的2,输入需要查找的书名,若按作者查找,输入需要查找书的作者进行查找,若查找结束,则按0退出.

7、若系统使用结束,按0退出.

【 程序中的头文件 】

#include〈stdio.h〉

#include<

string.h>

#include <stdlib.h>

#defineMAXSIZE100

#defineLIST_INIT_SIZE 100

intRetotal;

/*定义的全局变量*/

inttotal;

六 测试成果

1、采编入库

2、清空库存

3、图书借阅

4、图书归还

5、图书查找

七附录(源程序清单)

#include<

stdio。

h〉

#include<

string。

#include<

stdlib。

#defineMAXSIZE 100

#defineLIST_INIT_SIZE 100

typedefstructBoro

char BNum[20];

 charRetDate[8];

 struct Boro *next;

}Bor;

typedefstructLinkBook

{ 

Bor *next;

charCNum[20];

intTotal;

}lend[LIST_INIT_SIZE];

typedef struct LNode

ﻩcharCardNum[20];

ﻩstruct LNode *next;

}LinkList;

typedefstructbook

charnum[20];

charname[20];

charauth[20];

ﻩcharpub[20];

ﻩintTotNum;

ﻩintNowNum;

LinkList*next;

}Book[MAXSIZE];

intRetotal;

inttotal;

voidInitBo(Book&

boo)

for(int i=0;

i<MAXSIZE;

i++)

ﻩ{

ﻩboo[i].NowNum=0;

ﻩboo[i].TotNum=0;

ﻩboo[i].next=NULL;

ﻩ}

void InitRe(lend&Lin) 

ﻩfor(inti=0;

i<

LIST_INIT_SIZE;

ﻩLin[i]。

next=NULL;

int mid=0;

boolBinarySearch(Bookboo,charSearchNum[]) 

ﻩintlow=0,high=total;

ﻩintfound=0;

ﻩwhile(low〈=high)

mid=(low+high)/2;

ﻩﻩif(strcmp(boo[mid].num,SearchNum)==0)

ﻩ{

ﻩfound=1;

ﻩreturn true;

}

ﻩif(strcmp(boo[mid]。

num,SearchNum)!

=0)

ﻩﻩhigh=mid—1;

ﻩﻩelse

ﻩlow=mid+1;

if(found==0)

returnfalse;

void Buy(B

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

当前位置:首页 > 医药卫生 > 药学

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

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