ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:180.25KB ,
资源ID:20763354      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20763354.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书馆管理系统程序Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书馆管理系统程序Word下载.docx

1、可查询读者姓名书证号,借了几本书,都是什么书和还书日期, 还可以借几本书。h.退出:退出读书管理系统并保存读者和图书信息。设计的的初步思路:主要采取定义结构体,定义两个结构体分别为图书结构体和阅读者的结构体,将其数据存储到字符串中,然后逐个 构建单链表,将其数据存储到单链表结点的数据域中,然后进行图书文件的读取或者可以选择图书的初始化,输入 图书的编号,作者,书名,数量和一定的库存和现存量。新书入库创造新结点,定义指针,此处分两种情况 ,若图书编号存在,则直接进库,只须输入书的数量,通过字符串的比较来判定,同理阅读者的添加是增加阅读者的单链表的 结点,同时一个读者规定只能借阅 5本书存储到数据

2、域的字符串中。分别定义还书和借书的函数,用字符串的比较 功能判断读者借书不能同一种书借两次, 同时采编新书要求如果书号相同只需要直接输入采编的本数和如果没有书时会返回等待新书到来,包括索书号以及读者的学号输入出现不存在会返回错误, 还书函数也是通过字符串中存储的库存量和现存量增加,同时读者借书数量 right减少。最后将图书的单链表和阅读者的单链表读写到文件中。三、问题求解的整体框架结构围绕求解目标给岀具体的模块。定义菜单函数,包括图书借阅的各种功能,包括:1采编入库图书 void In it_book();2登记读者 void add_reader();3借阅登记图书 void Borrow

3、_Book();4还书管理 void Return_Book();5查询读者信息 void Print_reader();通过读者文件读取读者信息单链表6查询图书信息 void Print_book();通过 图书文件读取图书单链表的信息0 退岀系统 void Prin t_book();1图书录入流程图:登记读者程图:读入图书文件数据读入读者文件数据输入图书信息,将图书信息存储到字符串中输入读者信息,将图书信息存储到字符串中,并且标记读者借书情况建立图书单链表,输入数据文件建立读者单链表,输入数据文件N 是否完成是否完成Y关闭数据文件,保存yM3增添图书录入流程图:输入查询条件N4还书管理流

4、程图:输入借阅者信息while(p1- n ext!二NULL&strcmp(rea_ num,p1-reader_ num)!=O),读者是否存在?输入所要借阅的图书信息while(strcmp(bo_ nu m,p 0-book_ nu m)!=0&p0-next!=NULL),图书是否存在?读者借书数目是否已满?图书是否为空?采用strcmp判断strcpy(p1-borrowp1-right+.borrow_book_ num,bo_ num);strcp y(p1-right-1.limit_date,lim_date);pO-book_xy-;book_kc-;通过读者结点存储借书

5、结构体信息。借阅完成打印读者图书信息:四、 主要算法要求用自然语言描述算法。(1)首先首先定义图书, 阅读者,借书结构体 ;typedef struct book;typedef struct borrow;typedef struct reader;定义好各种说需要的数据:typedef struct book char book_num10; 图书编号char book_name20; 图书名称char book_writer10; 图书的作者 int book_xy; 现有量int book_kc; 库存struct book *next;BK;typedef struct borrow

6、char borrow_book_num10;/ 借书的总数char limit_date8;/ 还书日期BO;typedef struct readerchar reader_num10;char reader_name10;int right;/ 读者所借的书的本数BO borrowMax;struct reader *next;RD;( 1) 定义实现功能所需要的函数,包括图书的登记,读者的登记,图书 的录用,以及读者的借阅,图书,读者信息的保存和读音等功能。 int Menu();void Init();void Login();void Init_book();void Insert

7、_New_Book();void Menu_select();void Find_Book();void add_reader();void Print_reader();void Print_book();void Borrow_Book();void Return_Book();void Save();void Save_Book();void Save_Reader();void Load();void Load_Reader();void Load_Book();void Login()(3)通过字符串存储读者和图书的信息,然后进行图书文件的读取或者可以选择图书的初始化,输入图书的编号

8、, 作者,书名,数量和一定的库存和现存量。新书入库创造新结点,定义指针,此处分两种情况 ,若图书编号存在 ,则直接进库 ,只须输入书的数量, 通过字符串的比较来判定, 同理阅读者的添加是增加阅读者的单链表的结点, 同时一 个读者规定只能借阅 5 本书存储到数据域的字符串中。 分别定义还书和借书的函数, 用字符串的比较功能判断读者 借书不能同一种书借两次, 同时采编新书要求如果书号相同只需要直接输入采编的本数和如果没有书时会返回等待 新书到来, 包括索书号以及读者的学号输入出现不存在会返回错误, 还书函数也是通过字符串中存储的库存量和现 存量增加,同时读者借书数量 right 减少。void I

9、nsert_New_Book()/* 新书入库 */ BK *p,*p0,*p1;p=p1=h_book;printf(n 新书入库模块 .n);n 请输入图书信息 .n 包括书号 .书名 .数量 .n p0=(BK *)malloc(sizeof(BK); 图书编号 : scanf(%s,p0-book_num);while(strcmp(p0-book_num,p1-book_num)!=NULL) p1=p1-next;if(strcmp(p0-book_num)=0) /* 此处分两种情况 ,若图书编号存在 ,则直接进库 ,只须输入书的数量 */ printf(n 此编号图书已存在 !

10、 直接入库 !n 图书数量 :scanf(%d,&p0-book_kc); p1-book_kc+=p0-book_kc;book_xy+=p0- else printf( 图书名称 :book_name); printf( 图书作者 :book_writer);/ 库存数量while(p-next) p=p- if(h_book=NULL) h_book=p0;else p-next=p0;next=NULL; p0-book_xy=p0-n 新书入库完毕 ! 按任意键继续下一步操作 .ngetch();system(clsvoid add_reader()/* 添加读者 */ RD *p0

11、;int i;n 读者初始化开始 ,请输入读者信息 .n 包括书证号 .姓名 .np0=(RD*)malloc(sizeof(RD);h_reader=p0;n 请输入读者的信息 : 读者书证号 :reader_num); 读者姓名 :reader_name);right=0;for(i=0;iborrowi.borrow_book_num,0 strcpy(p0-borrowi.limit_date, p0-n 读者信息初始化完毕 !void Borrow_Book() /* 借书模块 */ BK *p0; RD *p1;char bo_num10,rea_num10,lim_date8;p

12、0=h_book; p1=h_reader;n 借书模块 .nn 请输入借书的读者书证号 :,rea_num);while(p1-=NULL&strcmp(rea_num,p1-reader_num)!=0)p1=p1-if(p1-next=NULL&n 此读者编号不存在 ! 按任意键返回 .ngoto END;n 请输入你要借的书的编号 :,bo_num); while(strcmp(bo_num,p0-=NULL)p0=p0- if(p0-strcmp(bo_num,p0-n 此图书编号不存在 !else if(p0-book_xyrightMax|p1-right=Max)n 不好意思

13、, 借书数目已满 ! 不能借书 !else if(strcmp(p1-borrow0.borrow_book_num,)! for(i=0; if(strcmp(p1-borrowi.borrow_book_num,bo_num)=0)n 抱歉 ! 同一读者不能同借两本相同的书 !)=0)n 请输入你要归还图书的日期 :,lim_date);right+.borrow_book_num,bo_num); strcpy(p1-n 读者编号 %s 借书完毕 !按任意键继续下步操作 .,p1-elseright-1.limit_date ,lim_date ); 按任意键继续下步操作 . END:

14、system( void Return_Book() /* 还书模块 */ BK *p; RD *q;int i,j,find=0;char return_book_num10,return_reader_num10;p=h_book; q=h_reader;n 还书模块 .nn 请输入要还书的读者编号 :,return_reader_num);while(q-strcmp(return_reader_num,q-=0) q=q-if(q- find=2;goto end;n 请输入读者还书的编号 :,return_book_num);strcmp(return_book_num,p-=0)

15、p=p-if(p-n 错误 !此图书编号不存在 !按任意键返回 .nif(strcmp(return_book_num,q-borrowi.borrow_book_num)=0) /* 如果此读者借了此书 */ find=1;for(j=i;jborrowj.borrow_book_num,q-borrowj+1.borrow_book_num);strcpy(q-borrowj.limit_date,q-borrowj+1.limit_date); strcpy(q-borrowMax-1.borrow_book_num,borrowMax-1.limit_date,p-book_xy+;b

16、ook_kc+;q-right-;n编号%s的读者已完毕!按任意键继续下步操作.if(find=0)n 错误!此读者未借此书 !end: getch();void Print_book() /* 查询图书信息 */BK *p;n 图书信息如下 :nn图书编号t图书名称t图书作者t现有tt库存nwhile(p!%stt%stt%stt%dtt%dn,p-book_num,p-book_name,p-book_writer,p-book_xy,p- p=p-n 图书信息打印完毕 !按任意键继续下一步操作 .void Print_reader() /* 查询读者信息 */RD *p;p=h_read

17、er;n 读者信息如下 : 读者书证号 tt 读者姓名 nt%stt%sreader_num,p-printf( 图书编号 ,i+1);t 还书日期 t%sborrowi.borrow_book_num);tt%sborrowi.limit_date);p=p-n 读者信息打印完毕 !void Save() /* 保存信息 */Save_Reader();Save_Book();void Save_Reader() /* 保存读者信息 */( 2) 通过创建文件将图书和读者的单链表和图书的单链表输入到文件 里,再读取文件,关闭文件。FILE *fp_reader;RD *p,*p0;if(fp

18、_reader=fopen(Reader.txt,wb)=NULL) /* 创建文件 ,进行保存 */n 文件保存失败 !n 请重新启动本系统 .nexit(0);while(p! if(fwrite(p,sizeof(RD),1,fp_reader)!=1) /* 将链表中的信息写入文件中 */n 写入文件失败 !n 请重新启动本系统 !p0=p;free(p0); /* 释放所有结点 */h_reader=NULL;fclose(fp_reader);void Save_Book() /* 保存图书信息 */FILE *fp_book; /* 创建文件型指针 */BK *p,*p0;if(

19、fp_book=fopen(Book.txt if(fwrite(p,sizeof(BK),1,fp_book)!h_book=NULL;fclose(fp_book);void Load() /* 加载信息 */Load_Reader();Load_Book();void Load_Reader() /* 加载读者信息 */ RD *p1,*p2,*p3;FILE *fp;fp=fopen(book.txtrb /* 打开文件 */ p1=(RD *)malloc(sizeof(RD);fread(p1,sizeof(RD),1,fp);h_reader=p3=p2=p1;while(! feof(fp) /* 读出信息 ,重新链入链表 */ p1=(RD *)malloc(sizeof(RD); fread(p1,sizeof(RD),1,fp); p2-next=p1;p3=p2;p2=p1; p3-free(p1);fclose(fp);void Load_Book() /* 加载图书信息 */BK *p1,*p2,*p3; /* 打开文件 */ p1=(BK *)malloc(sizeof(BK); fread(p1,sizeof(BK),1,fp);h_book=p3=p2=p1; feof(fp) /* 读

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

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