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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书管理系统设计报告 个人部分解析文档格式.docx

1、6)查询图书信息 7)查询读者信息 可查询读者姓名书证号,借了几本书,都是什么书和还书日期,还可以借几本书。8)退出 退出读书管理系统并保存读者和图书信息。四、主体内容 图书管理系统总体情况如下图:这个系统主要有四大模块,图书管理模块、读者管理模块、借阅操作模块、查询操作模块。每个模块下又有几个分支模块。1.问题分析 主菜单模块需要设计一个可供选择的界面,在界面中通过选择不同的按键来实现不同的功能。登记读者模块需要可以记录学生的书证号以及学生的姓名。借书模块中学生可以通过书证号和所需要借的书的编号来借书,借书完成后图书数量减少。查询读者模块需要随着读者借书、还书不断变化,总是能显示出当前读者的

2、准确信息。2.数据结构结构体定义 图书文件: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 char borrow_book_num10;定义借阅图书编号以 char limit_date8;及还书日期 BO;数据记录 读者文件:typedef struct reader char rea

3、der_num10;定义读者书证号以 char reader_name10;及读者姓名 int right;BO borrowMax;借书最大数量 struct reader*next;定义读者结构体 RD;数据记录 3.算法设计及程序流程图 进入系统后,显示功能列表,可选择任意系统。主菜单:程序流程图:源程序:int Menu()/*主菜单*/int dm;printf(ntt 图书管理系统主菜单n);printf(=n);printf(*t0-退出系统 n);printf(*t1-采编入库 n);printf(*t2-登记读者 n);printf(*t3-借阅登记 n);printf(*t

4、4-还书管理 n);printf(*t5-查询图书信息 n);printf(*t6-查询读者信息 n);printf(请选择相应的代码:);for(;)scanf(%d,&dm);/dm 输入的数字 if(dm6)printf(n 错误!请重新输入:else break;return dm;void Menu_select()/*主菜单选择函数*/for(;)switch(Menu()/*功能选择*/case 0:system(cls);Save();printf(nnt 文件保存成功!n);printf(nnt 欢迎下次使用本系统!getch();exit(0);case 1:Insert_

5、New_Book();break;case 2:add_reader();case 3:Borrow_Book();case 4:Return_Book();case 5:Print_book();case 6:Print_reader();default:printf(n 错误!登记读者:void add_reader()/*添加读者*/RD*p0;int i;printf(n 读者初始化开始,请输入读者信息.n 包括书证号.姓名.n);p0=(RD*)malloc(sizeof(RD);/*申请新结点存储空间*/h_reader=p0;printf(n 请输入读者的信息:printf(读者

6、书证号:scanf(%s,p0-reader_num);printf(读者姓名:scanf(%s,p0-reader_name);p0-right=0;for(i=0;iborrowi.borrow_book_num,0);/*所借图书直接置为(即没有借书)*/strcpy(p0-borrowi.limit_date,0);p0-next=NULL;printf(n 读者信息初始化完毕!按任意键继续下一步操作.n);借阅图书:否 是 否 否 是 是 否 是 否 源程序:void Borrow_Book()/*借书模块*/BK*p0;RD*p1;char bo_num10,rea_num10,l

7、im_date8;p0=h_book;p1=h_reader;printf(n 借书模块.n);printf(n 请输入借书的读者书证号:scanf(%s,rea_num);while(p1-next!=NULL&strcmp(rea_num,p1-reader_num)!=0)p1=p1-next;if(p1-next=NULL&=0)printf(n 此读者编号不存在!按任意键返回.n);goto END;printf(n 请输入你要借的书的编号:scanf(%s,bo_num);while(strcmp(bo_num,p0-book_num)!=0&p0-next!=NULL)p0=p0

8、-next;if(p0-next=NULL&strcmp(bo_num,p0-book_num)!=0)printf(n 此图书编号不存在!else if(p0-book_xyrightMax|p1-right=Max)printf(n 不好意思,借书数目已满!不能借书!n 按任意键返回.);else if(strcmp(p1-borrow0.borrow_book_num,0)!=0)for(i=0;iborrowi.borrow_book_num,bo_num)=0)printf(n 抱歉!同一个读者不能同借两本相同的书!n按任意键返回.);else if(strcmp(p1-borrow

9、i.borrow_book_num,0)=0)printf(n 请输入你要归还图书的日期:scanf(%s,lim_date);strcpy(p1-borrowp1-right+.borrow_book_num,bo_num);strcpy(p1-borrowp1-right-1.limit_date,lim_date);p0-book_xy-;p0-book_kc-;printf(n 读者编号%s 借书完毕!按任意键继续下步操作.,p1-reader_num);else printf(n 请输入你要归还图书的日期:END:查询读者:程序流程图:否 源程序:void Print_reader(

10、)/*查询读者信息*/RD*p;p=h_reader;printf(n 读者信息如下:nn);printf(读者书证号tt 读者姓名n);printf(n);while(p!=NULL)printf(t%stt%s,p-reader_num,p-reader_name);iborrowi.borrow_book_num);printf(tt%s,p-borrowi.limit_date);p=p-next;printf(n 读者信息打印完毕!按任意键继续下一步操作.);4.运行结果和调试分析 同一本新书入库的运行结果图 不同的新书采编入库 采编入库后查询图书信息的运行结果图 登记读者信息 借书

11、 借书后查询图书信息的运行结果图 借同一本书的运行结果图 借不同的书 借两本书后查询读者信息的运行结果图 还书运行结果图 还书之后再查询读者信息的运行结果图 还书后查询图书信息 退出 5.附录 void Login()进入界面函数 int Menu()主菜单函数 void Init()初始化函数 void Init_book()初始化图书信息函数 void Menu_select()主菜单选择函数 void Find_Book()查找图书函数 void Insert_New_Book()新书入库函数 void add_reader()添加读者函数 void Print_reader()查询读者

12、信息函数 void Print_book()查询图书信息函数 void Borrow_Book()借书函数 void Return_Book()还书函数 void Save()保存信息函数 void Save_Book()保存图书信息函数 vo id Save_Reader()保存读者信息函数 void Load()加载信息函数 void Load_Reader()加载读者信息 void Load_Book()加载图书信息 参考文献:C 语言程序设计(何钦铭版)数据结构(耿国华版)数据结构课程设计(苏仕华版)六、心得体会 本次课程设计,使我对数据结构这门课程有了更深入的理解。数据结构是一门实践

13、性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。刚开始做这个程序的时候,感到完全无从下手,甚至让我觉得完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献,之后便开始着手写程序,写完运行时有很多问题,通过同学间的帮助最终基本解决问题。但是其中还有写瑕疵无法去除,可能是我的水平还不够好,还需要更多的实践操作才能写的更好吧。通过这段时间的课程设计,我认识到数据结构是一门比较难的课程。需要多花时间上机练习。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。总的来说,这次课程设计让我获益匪浅,对数据

14、结构也有了进一步的理解和认识。图书管理系统源程序#include#include#include#include#define Max 4 typedef struct book char book_num10;char book_writer10;char book_cbs10;int book_xy;BK;char limit_date8;BO;char reader_name10;int right;struct reader*next;RD;BK*h_book;RD*h_reader;void Login();int Menu();void Init();void Init_book(

15、);void Menu_select();void Insert_New_Book();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()system(cls);printf(nnntt*n);printf(nn

16、nttt 欢迎使用图书管理系统n);printf(nntt 程序制作人 王攀圆 李柱柱 nntt 学号:1060313014042 1060313014047);printf(nnntt 按任意键进入系统.);/*dm 输入的数字*/if(dm6)printf(n 错误!void Init()/*初始化*/BK*p0;p0=(BK*)malloc(sizeof(BK);/*分配一个 sizeof(BK)大小的空间,并且把该空间的地址赋给 BK指针类型的 p0*/h_book=p0;printf(n 请输入图书信息:printf(图书编号:/*输入图书编号(唯一)*/scanf(%s,p0-bo

17、ok_num);printf(图书名称:/*输入图书名称*/scanf(%s,p0-book_name);printf(图书作者:/*输入图书作者*/scanf(%s,p0-book_writer);printf(图书出版社:scanf(%s,p0-book_cbs);printf(图书数量:/*输入图书数量*/scanf(%d,&p0-book_kc);p0-book_xy=p0-book_kc;/*开始时图书现有量和库存量相等*/p0-next=NULL;printf(n 图书信息初始化完毕!void Insert_New_Book()/*新书入库*/BK*p,*p0,*p1;p=p1=h

18、_book;printf(n 新书入库模块.n);printf(n 请输入新书信息.n包括书号.书名.数量.出版社.n);scanf(%s,p0-book_num);while(strcmp(p0-book_num,p1-book_num)!p1-next!=NULL)p1=p1-next;if(strcmp(p0-book_num,p1-book_num)=0)/*此处分两种情况,若图书编号存在,则直接进库,只须输入书的数量*/printf(n 此编号图书已存在!直接入库!scanf(%d,&p1-book_kc+=p0-book_kc;p1-book_xy+=p0-book_kc;else

19、/*若不存在,则需要输入其他的信息,然后在进行插入操作*/printf(图书名称:scanf(%s,p0-book_name);scanf(%s,p0-book_writer);/*库存数量*/while(p-next)p=p-next;if(h_book=NULL)h_book=p0;/*此处分两种情况,链表中没有数据,head 直接指向p0 处*/else p-next=p0;/*此处分两种情况,链表中有数据,链表中最后元素的 next 指向 p0处*/p0-next=NULL;printf(n 新书入库完毕!/*所借图书直接置为 0(即没有借书)*/strcpy(p0-borrowi.limit_date,0);strcmp(rea_num,p1-reader_num)=0)p1=p1-next;p0-next=NULL)p0=p0-next;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;printf(n 还书模块.n);printf(n 请输入要还书的读者编号:scanf(%s,return_reader_num);while(q-next!st

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

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