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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书管理系统.docx

1、图书管理系统/*1简易图书管理系统(线性表、查找、排序)图书管理系统的设计主要是实现对图书的管理和相关操作。基本功能如下:(1)图书信息录入、添加功能:包括书号(即ISBN号,不可重复)、书名(多书可重名)、作者、出版社名称、存馆数量、定价等。(2)图书信息查询功能:按书名进行查询。按作者名进行查询。按出版社进行查询。(3)排序:按书号的升序进行排序;按作者的升序进行排序,作者相同时按书号的升序再进行排序(4)图书的修改、删除功能:按书号进行图书的修改、删除按书名进行图书的修改、删除(同样的书名多于1本书时,再指定具体修改和删除的书号)。(5)图书借阅、归还功能:如果一种书的现存量大于0,可以

2、借出,借出相应数量后改存馆数量;归还时改变该书的存馆数量。*/#include#include#include#include#define max 10 /添加图书种类最多为10种/定义结构点数据信息typedef struct int ISBN;/书号 char name110;/书名 int name2;/作者 char name310;/出版社名称 int num;/存馆数量 这个问题有待解决 float price;/价格ElemType;/定义双链表结构typedef struct Book ElemType data; struct Book *prior; struct Boo

3、k *next;LinkList;int ListLength(LinkList *L)/求线性表长度,没动 LinkList *p=L;int n=0; while(p-next!=NULL) n+; p=p-next; return(n);void Lintlist(LinkList *&L)/初始化双链表 L=(LinkList *)malloc(sizeof(LinkList); L-next=L-prior=NULL;void AddList(LinkList *&L)/图书信息的添加 LinkList *p,*q; LinkList *t=L-next; p=(LinkList *

4、)malloc(sizeof(LinkList); int n; do printf(请输入您要添加图书的信息!n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); scanf(%d %s %d %s %d %f,&p-data.ISBN,p-data.name1,&p-data.name2,p-data.name3,&p-data.num,&p-data.price); if(t=NULL)/添加第一个 p-next=L-next; p-prior=L; L-next=p; printf(图书已成功添加到馆中!n); return; else/不是添加第一个 while(

5、t!=NULL) if(t-data.ISBN=p-data.ISBN) printf(该书号已存在,请确认后重新输入!n); n=1; break; else n=0; q=t; t=t-next; while(n=1); p-next=q-next; p-prior=q; q-next=p; printf(图书已成功添加到馆中!n); printf(n);void ChaXun1(LinkList *L)/按书名进行查询/书名相同只能为一种 char name110; LinkList *s=L-next; printf(请输入您要查找的书名:); scanf(%s,name1); whi

6、le(s!=NULL) if(strcmp(name1,s-data.name1)=0) printf(您查找的书详细信息如下:n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); printf(%d %s %d %s %d %5.0fn,s-data.ISBN,s-data.name1,s-data.name2,s-data.name3,s-data.num,s-data.price); printf(n); return; else s=s-next; if(s=NULL) printf(图书馆中无此种书!n); printf(n); void ChaXun2(Link

7、List *L)/按作者名进行查询/作者相同的可能有多种书 int name; int n=0;/表示判断是否存在此作者的书 LinkList *s=L-next; printf(请输入您要查找的作者名:); scanf(%d,&name); printf(您查找的书详细信息如下:n); while(s!=NULL) if(name=s-data.name2) printf(书号 书名 作者 出版社名称 存馆数量 定价n); printf(%d %s %d %s %d %5.0fn,s-data.ISBN,s-data.name1,s-data.name2,s-data.name3,s-dat

8、a.num,s-data.price); printf(n); n=1; s=s-next; if(n=0) printf(图书馆中无与此作者相关的书!n); printf(n); void ChaXun3(LinkList *L)/按出版社进行查询/出版社相同的可能有多种书 char name10; int n=0;/表示判断是否存在此出版社的书 LinkList *s=L-next; printf(请输入您要查找的出版社名:); scanf(%s,name); while(s!=NULL) if(strcmp(name,s-data.name3)=0) printf(您查找的信息如下:n)

9、; printf(书号 书名 作者 出版社名称 存馆数量 定价n); printf(%d %s %d %s %d %5.0fn,s-data.ISBN,s-data.name1,s-data.name2,s-data.name3,s-data.num,s-data.price); printf(n); n=1; s=s-next; if(n=0) printf(图书馆中无与此出版社相关的书!n); printf(n); void ChaXun(LinkList *L)/总的查询 if(L-next=NULL) printf(图书馆中没有藏书!n); printf(n); return; whi

10、le(1) printf(n); printf(1、按书名进行查询n); printf(2、按作者名进行查询n); printf(3、按出版社进行查询n); printf(4、返回主菜单n); printf(请输入你要进行操作的选择项:); int n; scanf(%d,&n); switch(n) case 1:ChaXun1(L);break; case 2:ChaXun2(L);break; case 3:ChaXun3(L);break; case 4:return; default:printf(您输入有误!n); /*void BubbleSort(RecType R,int n

11、) int i,j; RecType tmp; for(i=0;ii;j-) if(Rj.keynext,*s; ElemType temp; LinkList *r=L-next; while(inext!=NULL) s=n; while(jnext!=NULL) if(s-data.ISBNs-next-data.ISBN) temp=s-data; s-data=s-next-data; s-next-data=temp; t=0; s=s-next; j+; while(t!=0) break; s=L-next;/还原s的初值为L-next,继续循环 j=0;/还原j以便执行大循环

12、 p-; i+; printf(排序后书显示如下:n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); while(r!=NULL) printf(%d %s %d %s %d %5.0fn,r-data.ISBN,r-data.name1,r-data.name2,r-data.name3,r-data.num,r-data.price); r=r-next; printf(n);void Paixu2(LinkList *&L)/按作者的升序进行排序,作者相同时按书号的升序再进行排序 int i,j,p,t=1; p=ListLength(L); LinkList *n

13、=L-next,*s; ElemType temp; while(inext!=NULL) s=n; while(jnext!=NULL) if(s-data.name2s-next-data.name2) temp=s-data; s-data=s-next-data; s-next-data=temp; t=0; else if(s-data.name2=s-next-data.name2) if(s-data.ISBNs-next-data.ISBN) temp=s-data; s-data=s-next-data; s-next-data=temp; t=0; s=s-next; j+

14、; while(t!=0) break; s=L-next;/还原s的初值为L-next,继续循环 j=0;/还原j以便执行大循环 p-; i+; LinkList *r=L-next; printf(排序后显示如下:n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); while(r!=NULL) printf(%d %s %d %s %d %5.0fn,r-data.ISBN,r-data.name1,r-data.name2,r-data.name3,r-data.num,r-data.price); r=r-next; printf(n);void Paixu(Li

15、nkList *&L)/总的排序 if(L-next=NULL) printf(图书馆没有藏书!n); return ; while(1) printf(n); printf(1、按书号升序进行排序n); printf(2、按作者进行排序(作者名相同按书号进行排序)n); printf(3、返回主菜单n); printf(请输入您要进行操作的选项号:); int n; scanf(%d,&n); switch(n) case 1:Paixu1(L);break; case 2:Paixu2(L);break; case 3:return ; default:printf(您的输入有误!n);

16、void XiuGai(LinkList *&L)/按书号进行图书的修改 int n; if(L-next=NULL) printf(图书馆中没有藏书!n); printf(n); return; LinkList *s=L-next; printf(请输入您要查找的书号:); scanf(%d,&n); while(s!=NULL) if(n=s-data.ISBN) printf(您查找的书详细信息如下:n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); printf(%d %s %d %s %d %5.0fn,s-data.ISBN,s-data.name1,s-d

17、ata.name2,s-data.name3,s-data.num,s-data.price); printf(请选择您要修改的项(1、书号 2、书名 3、作者 4、出版社名称 5、存馆数量 6、定价 7、全部修改):); int n; scanf(%d,&n); switch(n) case 1: LinkList *t=L-next; int j; int P; do printf(请输入新的书号:); scanf(%d,&P); while(t!=NULL) if(t-data.ISBN=P) printf(该书号已存在,请确认后重新输入!n); j=1; break; else j=0

18、; t=t-next; while(j=1); s-data.ISBN=P; printf(修改成功!n); printf(n); break; case 2:printf(请输入新的书名:); scanf(%s,s-data.name1); printf(修改成功!n); printf(n); break; case 3:printf(请输入您要新的作者:); scanf(%d,&s-data.name2); printf(修改成功!n); printf(n); break; case 4:printf(请输入您要新的出版社:); scanf(%s,s-data.name3); printf

19、(修改成功!n); printf(n); break; case 5:printf(请输入您要新的存馆数量:); scanf(%d,&s-data.num); printf(修改成功!n); printf(n); break; case 6:printf(请输入新的价格:); scanf(%f,&s-data.price); printf(修改成功!n); printf(n); break; case 7:printf(书号 书名 作者 出版社名称 存馆数量 定价n); scanf(%d %s %d %s %d %f,&s-data.ISBN,s-data.name1,&s-data.name

20、2,s-data.name3,&s-data.num,&s-data.price); printf(修改成功!n); printf(n); break; case 8:return; default:printf(您的输入有误!n); return; else s=s-next; if(s=NULL) printf(图书馆中无此种书!n); printf(n); void ShanChu(LinkList *&L)/按书号进行图书的删除 if(L-next=NULL) printf(图书馆无藏书!n); printf(n); return ; int n; LinkList *s=L; pri

21、ntf(请输入您要删除的书号:); scanf(%d,&n); for(int i=0;inext; if(n=s-data.ISBN) printf(您即将删除书详细信息如下:n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); printf(%d %s %d %s %d %5.0fn,s-data.ISBN,s-data.name1,s-data.name2,s-data.name3,s-data.num,s-data.price); printf(确认删除请输入1、否请输入2:); int m; scanf(%d,&m); if(m=1) if(ListLength(

22、L)=1)/该结点为头结点 L-next=NULL; free(s); printf(该书已删除!n); printf(n); return; else/不为头结点 if(iprior-next=s-next; s-next-prior=s-prior; free(s); printf(该书已删除!n); printf(n); return; else if(i=ListLength(L)-1) s-prior-next=NULL; free(s); printf(该书已删除!n); printf(n); return; if(m=2) printf(删除操作已取消!n); printf(n)

23、; return; if(i=ListLength(L) printf(图书馆中无此种书!n); printf(n); void JieYue(LinkList *&L)/借阅图书,以书名借阅 char name110; if(L-next=NULL) printf(图书馆中没有藏书!n); printf(n); return; LinkList *s=L-next; printf(请输入您要借阅的书名:); scanf(%s,name1); while(s!=NULL) if(strcmp(name1,s-data.name1)=0) printf(您查找的书详细信息如下:n); printf(书号 书名 作者 出版社名称 存馆数量 定价n); printf(%d %s %d %s %d %5.0fn,s-data.ISBN,s-data.name1,s-data.name2,s-data.name3,s-data.num,s-data.price); if(s-data.num0) s-data.num-; printf(您已借阅此书,请注意使用,保护图书!n); printf(n); else

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

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