数据结构课程设计图书借阅管理系统Word文档格式.docx

上传人:b****1 文档编号:4297458 上传时间:2023-05-03 格式:DOCX 页数:24 大小:258KB
下载 相关 举报
数据结构课程设计图书借阅管理系统Word文档格式.docx_第1页
第1页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第2页
第2页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第3页
第3页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第4页
第4页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第5页
第5页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第6页
第6页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第7页
第7页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第8页
第8页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第9页
第9页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第10页
第10页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第11页
第11页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第12页
第12页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第13页
第13页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第14页
第14页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第15页
第15页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第16页
第16页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第17页
第17页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第18页
第18页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第19页
第19页 / 共24页
数据结构课程设计图书借阅管理系统Word文档格式.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据结构课程设计图书借阅管理系统Word文档格式.docx

《数据结构课程设计图书借阅管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计图书借阅管理系统Word文档格式.docx(24页珍藏版)》请在冰点文库上搜索。

数据结构课程设计图书借阅管理系统Word文档格式.docx

(6)通信录管理结束后,能够正常退出图书借阅管理程序。

2技术要求

(1)每个借阅者记录至少包括如下信息:

姓名、学号、姓别等。

每本图书记录至少包括如下信息:

编号、书名、作者、价格等。

(2)图书、借阅者信息以磁盘文件的形式存储,存储位置、文件名、文件格式由设计者确定。

(3)对于图书借阅系统功能中数据输入、显示、查询、修改、删除、保存等功能,要求编写功能独立的函数或主控函数予以实现,其所属的各项功能尽量由独立的函数实现。

(4)以菜单式实现功能选择控制。

(5)本图书借阅管理程序能够实现100条记录的管理。

3案分析

此题是设计一个图书借阅管理系统,根据需要应包含图书管理和会员管理。

其中对图书和会员的增加、查询和删除都是基本操作。

在图书管理中对图书的借阅和归还是重点,这两个操作也是整个系统关键。

在会员管理中增加了会员借书信息的查询和对到期书的催还信息。

实现这些操作的关键在于建立的两个带头结点的单链,分别用于存储图书和会员的基本信息。

在这两个链表之间还应建立起相互的联系,便于查询的操作的实现。

另外,在美观面,需要设计一个操作界面供用户选择使用。

三、概要设计

通过需求分析,设计出本程序的总体功能设计框图。

分为七个面:

1、选择检查类型;

2、编辑图书的信息;

3、查询图书的信息;

4、编辑读者的信息;

5、查询读者的信息;

6、借阅书刊;

7、还书。

连线之间说明了他们之间的相互联系以及设计时的要求。

4.2.2图书管理系统简略功能框图

五、详细设计与程序代码:

#include<

stdlib.h>

stdio.h>

iostream.h>

#defineNULL0

typedefstructBookInfo{/////图书结构

intb_Code;

////图书编号

charb_Name[20];

/////名称

intb_Total;

/////总数

intb_Out;

///借出数

BookInfo*nextbook;

//////下一类图书

}BookInfo;

typedefstructMemberInfo{///会员结构

longm_Code;

/////会员编号

charm_Name[20];

////会员名字

intl_Codes[6];

/////以借书的编号,最多5

MemberInfo*nextmember;

////下一会员

}MemberInfo;

typedefstructSystem{///管理系统结构

BookInfo*BI;

MemberInfo*MI;

intBookTotal;

////图书类库存量

intMemberTota;

/////会员数量

}System;

System*InitSystem();

/////

voidAddBook(System*);

////增加图书

BookInfo*SearchBook(System*,int);

////查询图书信息

voidDelBook(System*);

/////删除图书

voidBrrowBook(System*);

///////借书处理

voidTurnBackBook(System*);

////还书处理

voidAddMember(System*);

/////添加会员

voidDelMember(System*);

////删除会员

MemberInfo*SearchMember(System*,int);

/////查询会员信息

voidStoreData(System*);

voidLoadData(System*);

voidExitSystem();

voidmain()

{

System*S=InitSystem();

intsel;

do{

cout<

<

"

\n\t\t\t\t图书管理系统"

endl;

\t\t\t******************************"

\t\t\t1.增加图书.\t2.查询图书.\n\t\t\t3.删除图书.\t4.借书处理.\n\t\t\t5.还书处理.\n\t\t\t6.添加会员.\t7.删除会员.\n\t\t\t8.查询会员.\t9.载入数据.\n\t\t\t10.保存数据.\t11.退出程序.\n"

;

请选择:

cin>

>

sel;

if(sel>

=1&

&

sel<

=11)break;

选择错误!

\n重新输入:

}while

(1);

switch(sel){

case1:

AddBook(S);

break;

case2:

SearchBook(S,-1);

case3:

DelBook(S);

case4:

BrrowBook(S);

case5:

TurnBackBook(S);

case6:

AddMember(S);

case7:

DelMember(S);

case8:

SearchMember(S,-1);

case9:

LoadData(S);

case10:

StoreData(S);

default:

ExitSystem();

}

}

System*InitSystem()

System*S=(System*)malloc(sizeof(System));

S->

BI=(BookInfo*)malloc(sizeof(BookInfo));

BookTotal=0;

BI->

nextbook=NULL;

MI=(MemberInfo*)malloc(sizeof(MemberInfo));

MemberTota=0;

MI->

nextmember=NULL;

returnS;

voidAddBook(System*S)

intTempcode;

charsel;

BookInfo*p=S->

BI;

BookInfo*t;

BookInfo*m;

intnum;

输入图书编号:

Tempcode;

if(m=SearchBook(S,Tempcode)){

这类书以有库存.\n输入图书的入库量:

num;

m->

b_Total+=num;

else{

t=(BookInfo*)malloc(sizeof(BookInfo));

t->

b_Code=Tempcode;

输入图书的名称:

t->

b_Name;

输入图书的入库量:

b_Total;

b_Out=0;

nextbook=p->

nextbook;

p->

nextbook=t;

BookTotal++;

添加完毕!

还要添加吗?

(Y/N)"

if(sel=='

n'

||sel=='

N'

){

结束添加"

return;

BookInfo*SearchBook(System*S,intcode){

BookInfo*bi=S->

intbookcode;

if(code==-1){

请输入要查询的图书编号:

bookcode;

elsebookcode=code;

while(bi&

bi->

b_Code!

=bookcode)bi=bi->

if(!

bi)cout<

没找到你所要的图书."

else{

图书编号为:

b_Code<

图书名称为:

b_Name<

图书库存量为:

b_Total<

图书借出量为:

b_Out<

returnbi;

voidDelBook(System*S){

BookInfo*bi;

BookInfo*pl=S->

MemberInfo*memi;

inttempcode;

inti;

pl=S->

bi=pl->

memi=S->

nextmember;

请输入要删除的图书的编号:

tempcode;

while(bi){

if(bi->

b_Code==tempcode)break;

pl=bi;

bi=bi->

if(bi==0)cout<

没有找到要删除的图书"

pl->

nextbook=bi->

BookTotal--;

while(memi){

for(i=1;

i<

=memi->

l_Codes[0];

i++){

if(memi->

l_Codes[i]==tempcode)break;

if(i<

l_Codes[0]){

for(;

memi->

i++)memi->

l_Codes[i]=memi->

l_Codes[i+1];

memi->

l_Codes[0]--;

memi=memi->

free(bi);

还有图书要删除吗?

删除图书结束"

voidBrrowBook(System*S)

BookInfo*p;

intmemcode;

MemberInfo*mp;

输入要借出的书号:

p=SearchBook(S,tempcode);

p){

没有找到要借出的图书."

此书的现存量为"

(p->

b_Total-p->

b_Out)<

b_Out))cout<

没有足够的书了,外借失败."

请输入会员编号:

memcode;

mp=SearchMember(S,memcode);

mp)cout<

会员编号输入错误,外借失败"

if(mp->

l_Codes[0]==5)cout<

借书量不能超过5本"

b_Out++;

mp->

l_Codes[++mp->

l_Codes[0]]=tempcode;

外借成功."

\n还有图书要借出吗?

外借操作结束."

voidTurnBackBook(System*S)

intmembercode;

输入归还书号:

书号输入错误."

membercode;

(mp=SearchMember(S,membercode)))cout<

会员编号输入错误,归还失败"

b_Out--;

=mp->

while(i<

mp->

l_Codes[i]=mp->

i++;

归还成功."

还有要归还的图书吗?

归还结束."

voidAddMember(System*S)

MemberInfo*p=S->

MI;

MemberInfo*t;

输入会员编号:

t=(MemberInfo*)malloc(sizeof(MemberInfo));

m_Code=Tempcode;

输入会员姓名:

m_Name;

l_Codes[0]=0;

nextmember=p->

nextmember=t;

MemberTota++;

MemberInfo*SearchMember(System*S,intcode)

MemberInfo*bi=S->

请输入要查询的会员编号:

elsemembercode=code;

m_Code!

=membercode)bi=bi->

没找到指定会员."

会员编号为:

m_Code<

名称为:

m_Name<

已借的图书有:

l_Codes[0]<

本."

=bi->

i++)

l_Codes[i]<

'

'

voidDelMember(System*S)

MemberInfo*bi;

MemberInfo*pl;

BookInfo*book;

bi=S->

请输入要删除的会员的编号:

m_Code==tempcode)break;

没有找到要删除的会员编号."

nextmember=bi->

MemberTota--;

(book=SearchBook(S,bi->

l_Codes[i]))){

删除会员出错!

book->

b_Total--;

还有会员要删除吗?

删除会员结束"

voidStoreData(System*S){

FILE*fp;

(fp=fopen("

BookSys"

"

wb"

))){

打开文件BookSys失败!

exit(0);

fwrite(&

(S->

BookTotal),sizeof(int),1,fp);

fwrite(bi,sizeof(BookInfo),1,fp);

MemberInfo*mi=S->

MemberTota),sizeof(int),1,fp);

while(mi){

fwrite(mi,sizeof(MemberInfo),1,fp);

mi=mi->

fclose(fp);

voidLoadData(System*S){

rb"

打开文件BookSys失败"

BookInfo*tempbi;

fread(&

for(inti=1;

=S->

BookTotal;

tempbi=(BookInfo*)malloc(sizeof(BookInfo));

fread(tempbi,sizeof(BookInfo),1,fp);

bi->

nextbook=tempbi;

bi=tempbi;

MemberInfo*tempmi;

MemberTota;

tempmi=(MemberInfo*)malloc(sizeof(MemberInfo));

fread(tempmi,sizeof(MemberInfo),1,fp);

mi->

nextmember=tempmi;

mi=tempmi;

voidExitSystem(){

charselect;

警告:

程序结束后未存储的数据将消失."

确定要退出吗?

select;

if(select=='

y'

||select=

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2