图书管理系统源代码(原创)_第1页
图书管理系统源代码(原创)_第2页
图书管理系统源代码(原创)_第3页
图书管理系统源代码(原创)_第4页
图书管理系统源代码(原创)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/创建链表/添加图书/验证新添加的图书编码是否已存在/删除图书/将链表写入文件/从文件中读取信息并建成链表/将链表信息输出/查询图书信息/按图书编号查询图书/按作者名查询图书/按类别查询图书/按出版时间查询图书/按图书名查询图书/修改图书信息/对图书进行排序/按图书编号排序/按图书出版时间排序/按图书价格排序/按图书名排序/按作者名排序n);|-n);#include#include#includestructbookintnum;charbname50;charwname20;charpress50;charsort50;inttime;floatprice;structbook*next;

2、structbook*creatbook();structbook*addbook(structbook*head);intyanzheng(structbook*head,intm);voiddeletebook(structbook*head);voidfprint(structbook*head);structbook*load();voidprint_book(structbook*head);voidchaxun(structbook*head);voidnum_chaxun(structbook*head);voidwname_chaxun(structbook*head);voi

3、dsort_chaxun(structbook*head);voidtime_chaxun(structbook*head);voidbname_chaxun(structbook*head);voidxiugai(structbook*head);voidpaixu(structbook*head);voidnum_paixu(structbook*head);voidtime_paixu(structbook*head);voidprice_paixu(structbook*head);voidbname_paixu(structbook*head);voidwname_paixu(str

4、uctbook*head);intmain()intchoice,n,x,y=1,c,c1=1;chara,d,b10,b110=1;structbook*head=NULL;while(y)system(cls);printf(nnnnn);printf(printf(-|-printf(-|登陆界面|-n);printf(n);printf(n);printf(=1-进入系统=n);printf(=0-退出系统=n);printf(n);printf(请输入选择:);scanf(%d,&n);printf(n);getchar();switch(n)case0:y=0;break;case

5、1:printf(请输入您的用户名(输入1即可):);gets(b);printf(n);printf(请输入您的密码(输入1即可):);scanf(%d,&c);printf(n);if(strcmp(b,b1)!=0|c!=c1)printf(验证失败,请重新输入!n);scanf(%c,&d);getchar();system(cls);elseprintf(验证通过!请按Enter键进入!n);scanf(%c,&d);getchar();x=1;while(x)system(cls);system(color1F);printf(nn);printf(-|图书信息管理系统|-nn);

6、printf(-|操作界面|-nn);printf(nn);printf(n);TOC o 1-5 h zprintf(|系统菜单选项|n);printf(n);printf(-|1-添加图书删除图书-2|-nn);printf(-|3-图书列表图书排序-4|-nn);printf(-|5-查询图书修改图书-6|-nn);printf(-|7-录入数据退出系统-0|-nn);printf(n);printf(nn);printf(请输入所选择的序号:);scanf(%d,&choice);getchar();system(cls);switch(choice)case0:x=0;break;h

7、ead=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsehead=addbook(head);printf(添加成功!n);printf(是否将新信息保存到文件?(y/n)n);scanf(%c,&a);getchar();switch(a)casen:break;casey:fprint(head);printf(保存成功!n);getchar();break;break;head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsedelete

8、book(head);getchar();break;break;head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elseprint_book(head);getchar();break;head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsepaixu(head);getchar();break;head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsechaxu

9、n(head);getchar();break;head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsexiugai(head);getchar();break;break;printf(注意:输入图书编码为0时结束!n);head=creatbook();printf(是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)n);getchar();scanf(%c,&a);getchar();switch(a)case0:break;casey:fprint(head);printf(保存成功!n);get

10、char();break;break;default:printf(输入有误,请重新输入!n);getchar();break;break;default:输入有误,请重新输入!n);printf(getchar();break;/录入数据并形成链表structbook*creatbook()structbook*head,*tail,*p;intnum,time,n;charbname50,wname20,press50,sort50;floatprice;intsize=sizeof(structbook);head=tail=NULL;printf(请输入图书编号:);scanf(%d,

11、&num);printf(请输入图书名:);scanf(%s,bname);getchar();printf(请输入作者名:);scanf(%s,wname);getchar();printf(请输入出版社:);scanf(%s,press);getchar();printf(请输入类别:);scanf(%s,sort);getchar();printf(请输入出版时间:);scanf(%d,&time);getchar();printf(请输入价格:);scanf(%f,&price);getchar();while(1)p=(structbook*)malloc(size);p-num=n

12、um;strcpy(p-bname,bname);strcpy(p-wname,wname);strcpy(p-press,press);strcpy(p-sort,sort);p-time=time;p-price=price;p-next=NULL;if(head=NULL)head=p;elsetail-next=p;tail=p;doprintf(请输入图书编号:);scanf(%d,&num);n=yanzheng(head,num);if(n=0)break;elseprintf(您输入的编号已存在,请重新输入!n);while(1);if(num=0)break;elseprin

13、tf(请输入图书名:);scanf(%s,bname);getchar();printf(请输入作者名:);scanf(%s,wname);getchar();printf(请输入出版社:);scanf(%s,press);getchar();printf(请输入类别:);scanf(%s,sort);getchar();printf(请输入出版时间:);scanf(%d,&time);getchar();printf(请输入价格:);scanf(%f,&price);getchar();returnhead;/插入结点,并且插入后仍按一定顺序structbook*addbook(struct

14、book*head)structbook*ptr,*p1,*p2,*p;charbname50,wname20,press50,sort50;intsize=sizeof(structbook);intnum,time,n=1;floatprice;doprintf(请输入图书编号:);scanf(%d,&num);n=yanzheng(head,num);if(n=0)break;elseprintf(您输入的编号已存在,请重新输入!n);while(1);printf(请输入图书名:);scanf(%s,bname);getchar();printf(请输入作者名:);scanf(%s,w

15、name);getchar();printf(请输入出版社:);scanf(%s,press);getchar();printf(请输入类别:);scanf(%s,sort);getchar();printf(请输入出版时间:);scanf(%d,&time);getchar();printf(请输入价格:);scanf(%f,&price);getchar();p=(structbook*)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);strcpy(p-press,press);strcpy(p-sort

16、,sort);p-time=time;p-price=price;p2=head;ptr=p;while(ptr-nump2-num)&(p2-next!=NULL)p1=p2;p2=p2-next;if(ptr-numnum)if(head=p2)head=ptr;elsep1-next=ptr;p-next=p2;elsep2-next=ptr;p-next=NULL;returnhead;/验证添加的图书编号是否已存在intyanzheng(structbook*head,intm)structbook*p;p=head;while(p!=NULL)if(p-num=m)break;p=

17、p-next;if(p=NULL)return0;elsereturn1;/将新链表写入文件中voidfprint(structbook*head)FILE*fp;charch=1;structbook*p1;if(fp=fopen(f1.txt,w)=NULL)printf(Fileopenerror!n);exit(0);fputc(ch,fp);for(p1=head;p1;p1=p1-next)fprintf(fp,%d%s%s%s%s%d%fn,p1-num,p1-bname,p1-wname,p1-press,p1-sort,p1-time,p1-price);fclose(fp)

18、;/从文件中读取图书信息structbook*load()FILE*fp;charch;structbook*head,*tail,*p1;head=tail=NULL;if(fp=fopen(f1.txt,r)=NULL)printf(Fileopenerror!n);exit(0);ch=fgetc(fp);if(ch=1)while(!feof(fp)p1=(structbook*)malloc(sizeof(structbook);fscanf(fp,%d%s%s%s%s%d%fn,&p1-num,p1-bname,p1-wname,p1-press,p1-sort,&p1-time,

19、&p1-price);if(head=NULL)head=p1;elsetail-next=p1;tail=p1;tail-next=NULL;fclose(fp);returnhead;elsereturnNULL;)/将整个链表的信息输出voidprint_book(structbook*head)(structbook*ptr;if(head=NULL)printf(n没有信息!n);return;)printf(图书信息列表如下n);printf(=n);printf(编号图书名作者名出版社类别出版时间价格n);for(ptr=head;ptr;ptr=ptr-next)printf(

20、%3d%-12s%-8s%-14s%-2s%-4d%.2fn,ptr-num,ptr-bname,ptr-wname,ptr-press,ptr-sort,ptr-time,ptr-price);printf(=n);)删除图书信息voiddeletebook(structbook*head)inta;charb,ch=1;structbook*p1,*p2;FILE*fp;printf(请输入要删除的图书编号:);scanf(%d,&a);p1=head;if(p1-num=a&p1-next=NULL)/对于文件中只有一组数据printf(是否清空文件!(y/n)n);getchar();

21、scanf(%c,&b);getchar();switch(b)casen:break;casey:if(fp=fopen(f1.txt,w)=NULL)printf(Fileopenerror!n);exit(0);fclose(fp);printf(文件已清空!n);elsewhile(p1-num!=a&p1-next!=NULL)p2=p1;p1=p1-next;if(p1-next=NULL)if(p1-num=a)p2-next=NULL;printf(是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);switch(b)casen:bre

22、ak;casey:fprint(head);printf(删除成功!n);getchar();break;elseprintf(没有找到要删除的数据!n);getchar();elseif(p1=head)head=p1-next;printf(是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);switch(b)casen:break;casey:fprint(head);printf(删除成功!n);getchar();break;elsep2-next=p1-next;printf(是否确定从文件中彻底删除该图书?(y/n)n);getchar(

23、);scanf(%c,&b);switch(b)casen:break;casey:fprint(head);printf(删除成功!n);getchar();break;图书查询voidchaxun(structbook*head)inta;printf(=n);*n);*n);*n);printf(*1-按图书编号查询2-按图书名查询printf(*3-按图书类别查询4-按作者名查询printf(*5-按出版时间查询0-退出查询printf(=n);printf(请输入所选择的编号:);scanf(%d,&a);getchar();switch(a)case0:break;num_chax

24、un(head);break;bname_chaxun(head);break;sort_chaxun(head);break;wname_chaxun(head);break;time_chaxun(head);break;default:printf(您的输入有误!n);break;/按编号查询图书信息voidnum_chaxun(structbook*head)inta;structbook*p;printf(请选择您要查询的图书编号:);scanf(%d,&a);getchar();p=head;while(p!=NULL)if(p-num=a)break;p=p-next;if(p=

25、NULL)printf(没有找到该编号的图书!n);elseprintf(printf(你所查询的图书信息如下n);n);printf(编号图书名作者名出版社类别出版时间价格n);printf(%3d%-12s%-8s%-14s%-2s%-4d%.2fn,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);printf(=n);/按图书名查询图书信息voidbname_chaxun(structbook*head)chara50;intflag=0;structbook*p;printf(请选择您要查询的图书名:);gets(a);p=he

26、ad;while(p!=NULL)if(strcmp(p-bname,a)=0)flag=1;break;p=p-next;if(flag=0)printf(没有找到该图书名的图书!n);elseprintf(你所查询的图书信息如下n);printf(=n);printf(编号图书名作者名出版社类别出版时间价格n);while(p!=NULL)if(strcmp(p-bname,a)=0)printf(%3d%-12s%-8s%-14s%-2s%-4d%.2fn,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);p=p-next;prin

27、tf(=n);)/按作者名查询图书信息voidwname_chaxun(structbook*head)(chara50;intflag=0;structbook*p;printf(请选择您要查询的图书作者名:);gets(a);p=head;while(p!=NULL)if(strcmp(p-wname,a)=0)flag=1;break;)p=p-next;)if(flag=0)printf(没有找到该图书名的图书!n);)elseprintf(你所查询的图书信息如下n);printf(=n);printf(编号图书名作者名出版社类别出版时间价格n);while(p!=NULL)if(st

28、rcmp(p-wname,a)=0)printf(%3d%-12s%-8s%-14s%-2s%-4d%.2fn,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);flag=1;)p=p-next;)printf(=n);)/按图书类别查询图书信息voidsort_chaxun(structbook*head)(chara50;intflag=0;structbook*p;printf(请选择您要查询的图书类别:);gets(a);p=head;while(p!=NULL)if(strcmp(p-sort,a)=0)flag=1;break

29、;)p=p-next;)if(flag=0)printf(没有找到该图书名的图书!n);)elseprintf(你所查询的图书信息如下n);printf(=n);printf(编号图书名作者名出版社类别出版时间价格n);while(p!=NULL)if(strcmp(p-sort,a)=0)printf(%3d%-12s%-8s%-14s%-2s%-4d%.2fn,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);flag=1;)p=p-next;)printf(An);)/按图书出版时间查询图书信息voidtime_chaxun(str

30、uctbook*head)(inta,flag=0;structbook*p;printf(请选择您要查询的图书出版时间:);scanf(%d,&a);getchar();p=head;while(p!=NULL)if(p-time=a)flag=1;break;)p=p-next;)if(flag=0)printf(没有找到该图书名的图书!n);)elseprintf(你所查询的图书信息如下n);printf(=n);出版printf(编号图书名作者名出版社类别时间价格n);while(p!=NULL)if(p-time=a)printf(%3d%-12s%-8s%-14s%-2s%-4d%.2fn,p-num,p-bname,p-wname,p-press,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论