C语言图书管理系统代码_第1页
C语言图书管理系统代码_第2页
C语言图书管理系统代码_第3页
C语言图书管理系统代码_第4页
C语言图书管理系统代码_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、/创建链表/添加图书/验证新添加的图书编码是否已存在/删除图书/将链表写入文件/ 从文件中读取信息并建成链表/将链表信息输出/查询图书信息/按图书编号查询图书/按作者名查询图书/按类别查询图书/按出版时间查询图书/按图书名查询图书/修改图书信息/对图书进行排序/按图书编号排序/按图书出版时间排序/按图书价格排序/按图书名排序/按作者名排序#include<stdio.h>#include<stdlib.h>#include<string.h>structbookintnum;charbname50;charwname20;charpress50;charso

2、rt50;inttime;floatprice;structbook*next;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*hea

3、d);voidwname_chaxun(structbook*head);voidsort_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_pa

4、ixu(structbook*head);voidwname_paixu(structbook*head);intmain()intchoice,n,x,y=1,c,c1=1234;chara,d,b10,b110="yjk"structbook*head=NULL;while(y)system("cls");printf("nnnnnnn");printf("printf("*欢迎光临*nn");图书信息管理系统*nnn");printf("nn");printf(&quo

5、t;=1-用户登录=n");printf("=0-退出系统=n");printf("请输入您的选择:");scanf("%d",&n);printf("n");getchar();switch(n)case0:y=0;break;case1:printf("请输入您的用户名:");gets(b);printf("n");printf("请输入您的密码:");scanf("%d",&c);printf("

6、;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");n");* 图书信息管理系统*n");nn");2-删除图书4-图书排序6-修改图书p

7、rintf("printf("printf("printf("*nn");printf("*nn");printf("|1-添加图书|nn");printf("|3-图书列表|nn");printf("|5-查询图书|nn");printf("|7-录入数据0-退出系统|nn");printf("*nn");printf("*nn");printf("请输入所选择的序号:");scanf

8、("%d",&choice);getchar();system("cls");switch(choice)case0:x=0;break;case 1:head=load();if(head=NULL)printf("文件为空,请先录入数据!n");getchar();break;elsehead=addbook(head);printf("添加成功!n");printf("是否将新信息保存到文件?(y/n)n");scanf("%c",&a);getchar

9、();switch(a)case'n':break;case'y':fprint(head);printf("保存成功!n");getchar();break;break;case 2:head=load();if(head=NULL)printf("文件为空,请先录入数据!n");getchar();break;elsedeletebook(head);getchar();break;break;case 3:head=load();if(head=NULL)printf("文件为空,请先录入数据!n"

10、;);getchar();break;elseprint_book(head);getchar();break;case 4:head=load();if(head=NULL)printf("文件为空,请先录入数据!n");getchar();break;elsepaixu(head);getchar();break;case 5:head=load();if(head=NULL)printf("文件为空,请先录入数据!n");getchar();break;elsechaxun(head);getchar();break;case 6:head=loa

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

12、case'y':fprint(head);printf("保存成功!n");getchar();break;break;default:printf("您的输入有误,请重新输入!n");getchar();break;break;default:printf("您的输入有误!请重新输入!n");getchar();break;/录入数据并形成链表structbook*creatbook()structbook*head,*tail,*p;intnum,time,n;charbname50,wname20,press50

13、,sort50;floatprice;intsize=sizeof(structbook);head=tail=NULL;printf("请输入图书编号:");scanf("%d",&num);printf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s"

14、;,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=num;strcpy(p->bname,bname);

15、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("您输入的编号已存在,请重新输

16、入!n");while(1);if(num=0)break;elseprintf("请输入图书名:");scanf("%s",bname);getchar();printf("请输入作者名:");scanf("%s",wname);getchar();printf("请输入出版社:");scanf("%s",press);getchar();printf("请输入类别:");scanf("%s",sort);getchar()

17、;printf("请输入出版时间:");scanf("%d",&time);getchar();printf("请输入价格:");scanf("%f",&price);getchar();returnhead;/插入结点,并且插入后仍按一定顺序structbook*addbook(structbook*head)structbook*ptr,*p1,*p2,*p;charbname50,wname20,press50,sort50;intsize=sizeof(structbook);intnum,

18、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",wname);getchar();p

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

20、>num=num;strcpy(p->bname,bname);strcpy(p->wname,wname);strcpy(p->press,press);strcpy(p->sort,sort);p->time=time;p->price=price;p2=head;ptr=p;while(ptr->num>p2->num)&&(p2->next!=NULL)p1=p2;p2=p2->next;if(ptr->num<=p2->num)if(head=p2)head=ptr;elsep1

21、->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=p->next;if(p=NULL)return0;elsereturn1;/将新链表写入文件中voidfprint(structbook*head)FILE*fp;charch='1'structbook*p1;if

22、(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);/从文件中读取图书信息structbook*load

23、()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-&g

24、t;bname,p1->wname,p1->press,p1->sort,&p1->time,&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(

25、"图书信息列表如下n");printf("=n");printf("编号图书名作者名出版社类别出版时间价格n");%dfor(ptr=head;ptr;ptr=ptr->next)printf("%d%s%s%s%s%.2fn",ptr->num,ptr->bname,ptr->wname,ptr->press,ptr->sort,ptr->time,ptr->price);printf("=n");)删除图书信息voiddeletebook(st

26、ructbook*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();scanf("%c",&b);getchar();switch(b)case'n':br

27、eak;case'y':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("是否确定从

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

29、canf("%c",&b);switch(b)case'n':break;case'y':fprint(head);printf("删除成功!n");getchar();break;elsep2->next=p1->next;printf("是否确定从文件中彻底删除该图书?(y/n)n");getchar();scanf("%c",&b);switch(b)case'n':break;case'y':fprint(head)

30、;printf("删除成功!n");getchar();break;)图书查询voidchaxun(structbook*head)(inta;printf("An");printf("*1-按图书编号查询2-按图书名查询*n");printf("*3-按图书类别查询4-按作者名查询*n");printf("*5-按出版时间查询0-退出查询*n");printf("n");printf("请输入所选择的编号:");scanf("%d",

31、&a);getchar();switch(a)case0:break;case 1:num_chaxun(head);break;case 2:bname_chaxun(head);break;case 3:sort_chaxun(head);break;case 4:wname_chaxun(head);break;case 5:time_chaxun(head);break;default:printf("您的输入有误!n");break;)/按编号查询图书信息voidnum_chaxun(structbook*head)inta;:");你所查询的图

32、书信息如下n");structbook*p;printf("请选择您要查询的图书编号scanf("%d",&a);getchar();p=head;while(p!=NULL)if(p->num=a)break;p=p->next;)if(p=NULL)printf("没有找到该编号的图书)elseprintf("printf("=n");printf("*编号图书名作者名出版社类别出版时间价格*n");printf("* *%d%s%s%s%s%d%.2f*n&q

33、uot;,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=head;while(p!=NULL)if(strcmp(p->bname,a)=0)flag=1;break;)p=p->next

34、;)if(flag=0)printf("没有找到该图书名的图书!n");)elseprintf("你所查询的图书信息如下n");printf("=n");printf("*编号图书名作者名出版社类别出版时间价格*n");while(p!=NULL)if(strcmp(p->bname,a)=0)printf("* *%d%s%s%s%s%d%.2f*n",p->num,p->bname,p->wname,p->press,p->sort,p->time,

35、p->price);)p=p->next;)printf("=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");)elseprint

36、f("你所查询的图书信息如下n");printf("=n");printf("*编号图书名作者名出版社类别出版时间价格*n");while(p!=NULL)if(strcmp(p->wname,a)=0)printf("* *%d%s%s%s%s%d%.2f*n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;)p=p->next;)printf("=n"

37、);)/按图书类别查询图书信息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;)p=p->next;)if(flag=0)printf("没有找到该图书名的图书!n");)elseprintf("你所查询的图书信息如下n");printf("=n");

38、printf("*编号图书名作者名出版社类别出版时间价格*n");while(p!=NULL)if(strcmp(p->sort,a)=0)printf("* *%d%s%s%s%s%d%.2f*n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;)p=p->next;)printf("=n");)/按图书出版时间查询图书信息voidtime_chaxun(structbook*head)int

39、a,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("*编号图书名作者名出版社类别出版时间价格

40、*n");while(p!=NULL)if(p->time=a)printf("* *%d%s%s%s%s%d%.2f*n",p->num,p->bname,p->wname,p->press,p->sort,p->time,p->price);flag=1;)p=p->next;)printf("=n");)修改图书信息voidxiugai(structbook*head)(inta,b;charc;structbook*p;printf("请输入要修改的图书编号:")

41、;scanf("%d",&a);p=head;while(p!=NULL)if(p->num=a)break;p=p->next;)if(p=NULL)printf("没有找到该编号的图书!n");getchar();)elseprintf("n);printf("*1-编号2-图书名3-作者名*n");printf("*4-出版社5-类别6-出版时间*n");printf("*7-价格8-修改全部0-放弃修改*n");printf("=n");

42、printf("请选择你要修改的信息编号:”);scanf("%d",&b);getchar();switch(b)case 1:printf("请输入新编号:");scanf("%d",&p->num);printf("修改成功!n");getchar();break;case 2:printf("请输入新图书名:");gets(p->bname);printf("修改成功!n");break;case 3:printf("请

43、输入新作者名:");gets(p->wname);printf("修改成功!n");break;case 4:printf("请输入新出版社:");gets(p->press);printf("修改成功!n");break;case 5:printf("请输入新类别:");gets(p->sort);printf("修改成功!n");break;case 6:printf("请输入新出版时间:");scanf("%d",&

44、;p->time);printf("修改成功!n");getchar();break;case 7:printf("请输入新价格:");scanf("%f",&p->price);printf("修改成功!n");getchar();break;case 8:printf("请输入新图书编号:");scanf("%d",&p->num);printf("请输入新图书名:");scanf("%s",p-&

45、gt;bname);getchar();printf("请输入新作者名:");scanf("%s",p->wname);getchar();printf("请输入新出版社:");scanf("%s",p->press);getchar();printf("请输入新类别:");scanf("%s",p->sort);getchar();printf("请输入新出版时间:");scanf("%d",&p->t

46、ime);getchar();printf("请输入新价格:");scanf("%f",&p->price);getchar();printf("修改成功!n");getchar();break;case0:break;default:printf("您的输入有误!n");break;printf("是否将修改后的信息保存到文件中?(y/n)n");scanf("%c",&c);getchar();switch(c)case'n':bre

47、ak;case'y':fprint(head);printf("保存成功!n");getchar();break;/图书排序voidpaixu(structbook*head)inta;printf("=n):printf("*1-按图书编号排序2-按出版时间排序printf("*3-按图书价格排序4-按图书名排序printf("*5-按作者名排序0-取消排序操作printf("=n);printf("请输入您选择的编号scanf("%d",&a);getchar();s

48、witch(a)case0:break;case 1:num_paixu(head);break;case 2:time_paixu(head);break;case 3:price_paixu(head);break;case 4:bname_paixu(head);break;case 5:wname_paixu(head);break;default:printf("您的输入有误!n");break;)按图书编号排序voidnum_paixu(structbook*head)(structbook*a1000,*p,*p1,*temp;inti,k,index,n=0

49、;charb;p1=head;for(p=head;p;p=p->next)n+;for(i=0;i<n;i+)ai=p1;p1=p1->next;)for(k=0;k<n-1;k+)index=k;for(i=k+1;i<n;i+)if(ai->num<aindex->num)index=i;)temp=aindex;aindex=ak;ak=temp;)printf("排序成功!n");printf("是否显示排序结果?(y/n)n");scanf("%s",&b);getc

50、har();switch(b)case'n':break;case'y':printf("An");printf("*图书名作者名出版社类别出版时间价格*n");for(i=0;i<n;i+)printf("*%d%s%s%s%s%d%.2f*n",ai->num,ai->bname,ai->wname,ai->press,ai->sort,ai->time,ai->price);)printf("=n");break;default:

51、printf("您的输入有误!n");break;)/按出版时间排序voidtime_paixu(structbook*head)structbook*a1000,*p,*p1,*temp;inti,k,index,n=0;charb;p1=head;for(p=head;p;p=p->next)n+;for(i=0;i<n;i+)ai=p1;p1=p1->next;)for(k=0;k<n-1;k+)index=k;for(i=k+1;i<n;i+)if(ai->time<aindex->time)index=i;)temp

52、=aindex;aindex=ak;ak=temp;)printf("排序成功!n");printf("是否显示排序结果?(y/n)n");scanf("%s",&b);getchar();switch(b)case'n':break;case'y':printf("An");printf("*图书名作者名出版社类别出版时间价格*n");for(i=0;i<n;i+)printf("*%d%s%s%s%s%d%.2f*n",ai-

53、>num,ai->bname,ai->wname,ai->press,ai->sort,ai->time,ai->price);)printf("=n");break;default:printf("您的输入有误!n");break;)/按图书价格排序voidprice_paixu(structbook*head)(structbook*a1000,*p,*p1,*temp;inti,k,index,n=0;charb;p1=head;for(p=head;p;p=p->next)n+;for(i=0;i<n;i+)ai=p1;p1=p1->next;)for(k=0;k<n-1;k+)index=k;for(i=k+1;i<n;i+)if(ai->price<aindex->price)index=i;)temp=aindex;aindex=ak;ak=temp;)printf("排序成功!n");printf("是否显示排序结果?(y/n)n");scanf("%s",&b);getchar();sw

温馨提示

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

评论

0/150

提交评论