《C语言图书管理系统代码.pdf》由会员分享,可在线阅读,更多相关《C语言图书管理系统代码.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、K2MG-E专业技术人员绩效管理与业务能力提升练习与答案#include#include#includestruct bookint num;char bname50;char wname20;char press50;char sort50;int time;float price;struct book*next;struct book*creatbook();/创建链表struct book*addbook(struct book*head);/添加图书int yanzheng(struct book*head,int m);/验证新添加的图书编码是否已存在void deletebook
2、(struct book*head);/删除图书void fprint(struct book*head);/将链表写入文件struct book*load();/从文件中读取信息并建成链表void print_book(struct book*head);/将链表信息输出void chaxun(struct book*head);/查询图书信息void num_chaxun(struct book*head);/按图书编号查询图书void wname_chaxun(struct book*head);/按作者名查询图书void sort_chaxun(struct book*head);/按
3、类别查询图书void time_chaxun(struct book*head);/按出版时间查询图书void bname_chaxun(struct book*head);/按图书名查询图书void xiugai(struct book*head);/修改图书信息void paixu(struct book*head);/对图书进行排序void num_paixu(struct book*head);/按图书编号排序void time_paixu(struct book*head);/按图书出版时间排序void price_paixu(struct book*head);/按图书价格排序vo
4、id bname_paixu(struct book*head);/按图书名排序void wname_paixu(struct book*head);/按作者名排序int main()int choice,n,x,y=1,c,c1=1234;char a,d,b10,b110=yjk;struct book*head=NULL;while(y)system(cls);printf(nnnnnnn);printf(*欢迎光临*nn);printf(*图书信息管理系统*nnn);printf(nn);printf(=1-用户登录=n);1K2MG-E专业技术人员绩效管理与业务能力提升练习与答案pr
5、intf(=0-退出系统=n);printf(请输入您的选择:);scanf(%d,&n);printf(n);getchar();switch(n)case 0:y=0;break;case 1:printf(请输入您的用户名:);gets(b);printf(n);printf(请输入您的密码:);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)
6、;getchar();x=1;while(x)system(cls);printf(-n);printf(*图书信息管理系统*n);printf(-nn);printf(*nn);printf(*nn);printf(|1-添加图书2-删除图书|nn);printf(|3-图书列表4-图书排序|nn);printf(|5-查询图书6-修改图书|nn);printf(|7-录入数据0-退出系统|nn);printf(*nn);printf(*nn);printf(请输入所选择的序号:);scanf(%d,&choice);getchar();system(cls);switch(choice)2
7、K2MG-E专业技术人员绩效管理与业务能力提升练习与答案case 0: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();switch(a)case n:break;case y:fprint(head);printf(保存成功!n);getchar();break;break;case 2:head=load()
8、;if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsedeletebook(head);getchar();break;break;case 3:head=load();if(head=NULL)printf(文件为空,请先录入数据!n);3K2MG-E专业技术人员绩效管理与业务能力提升练习与答案getchar();break;elseprint_book(head);getchar();break;case 4:head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break
9、;elsepaixu(head);getchar();break;case 5:head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsechaxun(head);getchar();break;case 6:head=load();if(head=NULL)printf(文件为空,请先录入数据!n);getchar();break;elsexiugai(head);getchar();break;break;case 7:4K2MG-E专业技术人员绩效管理与业务能力提升练习与答案printf(注意:输入图书编码为 0
10、 时结束!n);head=creatbook();printf(是否将输入的信息保存到文件以覆盖文件中已存在的信息?(y/n)n);getchar();scanf(%c,&a);getchar();switch(a)case n:break;case y:fprint(head);printf(保存成功!n);getchar();break;break;default:printf(您的输入有误,请重新输入!n);getchar();break;break;default:printf(您的输入有误!请重新输入!n);getchar();break;/录入数据并形成链表struct book*
11、creatbook()struct book*head,*tail,*p;int num,time,n;char bname50,wname20,press50,sort50;float price;int size=sizeof(struct book);head=tail=NULL;printf(请输入图书编号:);scanf(%d,&num);printf(请输入图书名:);scanf(%s,bname);getchar();5K2MG-E专业技术人员绩效管理与业务能力提升练习与答案printf(请输入作者名:);scanf(%s,wname);getchar();printf(请输入出
12、版社:);scanf(%s,press);getchar();printf(请输入类别:);scanf(%s,sort);getchar();printf(请输入出版时间:);scanf(%d,&time);getchar();printf(请输入价格:);scanf(%f,&price);getchar();while(1)p=(struct book*)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);strcpy(p-press,press);strcpy(p-sort,sort);p-time=time
13、;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;elseprintf(请输入图书名:);scanf(%s,bname);getchar();6K2MG-E专业技术人员绩效管理与业务能力提升练习与答案printf(请输入作者名:);scanf(%s,wname);g
14、etchar();printf(请输入出版社:);scanf(%s,press);getchar();printf(请输入类别:);scanf(%s,sort);getchar();printf(请输入出版时间:);scanf(%d,&time);getchar();printf(请输入价格:);scanf(%f,&price);getchar();return head;/插入结点,并且插入后仍按一定顺序struct book*addbook(struct book*head)struct book*ptr,*p1,*p2,*p;char bname50,wname20,press50,so
15、rt50;int size=sizeof(struct book);int num,time,n=1;float price;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();printf(请输入出版社:);scanf(%s,press);7K2MG-E专业技术人员绩
16、效管理与业务能力提升练习与答案getchar();printf(请输入类别:);scanf(%s,sort);getchar();printf(请输入出版时间:);scanf(%d,&time);getchar();printf(请输入价格:);scanf(%f,&price);getchar();p=(struct book*)malloc(size);p-num=num;strcpy(p-bname,bname);strcpy(p-wname,wname);strcpy(p-press,press);strcpy(p-sort,sort);p-time=time;p-price=price
17、;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;return head;/验证添加的图书编号是否已存在int yanzheng(struct book*head,int m)struct book*p;p=head;while(p!=NULL)if(p-num=m)break;8K2MG-E专业技术人员绩效管理与业务能力提升练习与答案
18、p=p-next;if(p=NULL)return 0;elsereturn 1;/将新链表写入文件中void fprint(struct book*head)FILE*fp;char ch=1;struct book*p1;if(fp=fopen(f1.txt,w)=NULL)printf(File open error!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);
19、fclose(fp);/从文件中读取图书信息struct book*load()FILE*fp;char ch;struct book*head,*tail,*p1;head=tail=NULL;if(fp=fopen(f1.txt,r)=NULL)printf(File open error!n);exit(0);ch=fgetc(fp);if(ch=1)while(!feof(fp)p1=(struct book*)malloc(sizeof(struct book);fscanf(fp,%d%s%s%s%s%d%fn,&p1-num,p1-bname,p1-wname,p1-press,
20、p1-sort,&p1-time,&p1-price);if(head=NULL)head=p1;else9K2MG-E专业技术人员绩效管理与业务能力提升练习与答案tail-next=p1;tail=p1;tail-next=NULL;fclose(fp);return head;elsereturn NULL;/将整个链表的信息输出void print_book(struct book*head)struct book*ptr;if(head=NULL)printf(n 没有信息!n);return;printf(图书信息列表如下n);printf(=n);printf(编号图书名作者名出版
21、社类别出版时间价格n);for(ptr=head;ptr;ptr=ptr-next)printf(%d%s%s%s%s%d%.2fn,ptr-num,ptr-bname,ptr-wname,ptr-press,ptr-sort,ptr-time,ptr-price);printf(=n);/删除图书信息void deletebook(struct book*head)int a;char b,ch=1;struct book*p1,*p2;FILE*fp;printf(请输入要删除的图书编号:);scanf(%d,&a);p1=head;if(p1-num=a&p1-next=NULL)/对于
22、文件中只有一组数据printf(是否清空文件!(y/n)n);getchar();scanf(%c,&b);getchar();switch(b)case n:break;10K2MG-E专业技术人员绩效管理与业务能力提升练习与答案case y:if(fp=fopen(f1.txt,w)=NULL)printf(File open error!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=NU
23、LL;printf(是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);switch(b)case n:break;case y:fprint(head);printf(删除成功!n);getchar();break;elseprintf(没有找到要删除的数据!n);getchar();else if(p1=head)head=p1-next;printf(是否确定从文件中彻底删除该图书?(y/n)n);getchar();scanf(%c,&b);switch(b)11K2MG-E专业技术人员绩效管理与业务能力提升练习与答案case n:break;
24、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);printf(删除成功!n);getchar();break;/图书查询void chaxun(struct book*head)int a;printf(=n);printf(*1-按图书编号查询2-按图书名查询*n);printf(*3-按图书类别查询4-按作者
25、名查询*n);printf(*5-按出版时间查询0-退出查询*n);printf(=n);printf(请输入所选择的编号:);scanf(%d,&a);getchar();switch(a)case 0:break;case 1:num_chaxun(head);12K2MG-E专业技术人员绩效管理与业务能力提升练习与答案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;defau
26、lt:printf(您的输入有误!n);break;/按编号查询图书信息void num_chaxun(struct book*head)int a;struct book*p;printf(请选择您要查询的图书编号:);scanf(%d,&a);getchar();p=head;while(p!=NULL)if(p-num=a)break;p=p-next;if(p=NULL)printf(没有找到该编号的图书!n);elseprintf(你所查询的图书信息如下n);printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);printf(*%d%s%s%s%s%d%
27、.2f*n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);printf(=n);/按图书名查询图书信息13K2MG-E专业技术人员绩效管理与业务能力提升练习与答案void bname_chaxun(struct book*head)char a50;int flag=0;struct book*p;printf(请选择您要查询的图书名:);gets(a);p=head;while(p!=NULL)if(strcmp(p-bname,a)=0)flag=1;break;p=p-next;if(flag=0)printf(没有找到该图书名
28、的图书!n);elseprintf(你所查询的图书信息如下n);printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);while(p!=NULL)if(strcmp(p-bname,a)=0)printf(*%d%s%s%s%s%d*n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);p=p-next;printf(=n);/按作者名查询图书信息void wname_chaxun(struct book*head)char a50;int flag=0;struct book*p;printf(请选择您要查
29、询的图书作者名:);gets(a);p=head;while(p!=NULL)if(strcmp(p-wname,a)=0)flag=1;%.2f14K2MG-E专业技术人员绩效管理与业务能力提升练习与答案break;p=p-next;if(flag=0)printf(没有找到该图书名的图书!n);elseprintf(你所查询的图书信息如下n);printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);while(p!=NULL)if(strcmp(p-wname,a)=0)printf(*%d%s%s%s%s%d*n,p-num,p-bname,p-wname,p
30、-press,p-sort,p-time,p-price);flag=1;p=p-next;printf(=n);/按图书类别查询图书信息void sort_chaxun(struct book*head)char a50;int flag=0;struct book*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);%.2f15K2MG-
31、E专业技术人员绩效管理与业务能力提升练习与答案printf(=n);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);/按图书出版时间查询图书信息void time_chaxun(struct book*head)int a,flag=0;struct book*p;printf(请选择您要查询的图书
32、出版时间:);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(*%d%s%s%s%s%d*n,p-num,p-bname,p-wname,p-press,p-sort,p-time,p-price);flag=1;p=p-nex
33、t;printf(=n);%.2f16K2MG-E专业技术人员绩效管理与业务能力提升练习与答案/修改图书信息void xiugai(struct book*head)int a,b;char c;struct book*p;printf(请输入要修改的图书编号:);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
34、);printf(*7-价格8-修改全部0-放弃修改*n);printf(=n);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(请输入新作者名:);gets(p-wname);printf(修改成功!n);break;17K2MG-E专业技术人员绩效
35、管理与业务能力提升练习与答案case 4:printf(请输入新出版社:);gets(p-press);printf(修改成功!n);break;case 5:printf(请输入新类别:);gets(p-sort);printf(修改成功!n);break;case 6:printf(请输入新出版时间:);scanf(%d,&p-time);printf(修改成功!n);getchar();break;case 7:printf(请输入新价格:);scanf(%f,&p-price);printf(修改成功!n);getchar();break;case 8:printf(请输入新图书编号:
36、);scanf(%d,&p-num);printf(请输入新图书名:);scanf(%s,p-bname);getchar();printf(请输入新作者名:);scanf(%s,p-wname);getchar();printf(请输入新出版社:);scanf(%s,p-press);getchar();printf(请输入新类别:);scanf(%s,p-sort);getchar();printf(请输入新出版时间:);scanf(%d,&p-time);getchar();printf(请输入新价格:);scanf(%f,&p-price);getchar();printf(修改成功!
37、n);getchar();break;18K2MG-E专业技术人员绩效管理与业务能力提升练习与答案case 0:break;default:printf(您的输入有误!n);break;printf(是否将修改后的信息保存到文件中?(y/n)n);scanf(%c,&c);getchar();switch(c)case n:break;case y:fprint(head);printf(保存成功!n);getchar();break;/图书排序void paixu(struct book*head)int a;printf(=n);printf(*1-按图书编号排序2-按出版时间排序*n);
38、printf(*3-按图书价格排序4-按图书名排序*n);printf(*5-按作者名排序0-取消排序操作*n);printf(=n);printf(请输入您选择的编号:);scanf(%d,&a);getchar();switch(a)case 0:break;case 1:num_paixu(head);break;case 2:time_paixu(head);break;case 3:price_paixu(head);break;case 4:19K2MG-E专业技术人员绩效管理与业务能力提升练习与答案bname_paixu(head);break;case 5:wname_paix
39、u(head);break;default:printf(您的输入有误!n);break;/按图书编号排序void num_paixu(struct book*head)struct book*a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;inumnum)index=i;temp=aindex;aindex=ak;ak=temp;printf(排序成功!n);printf(是否显示排序结果?(
40、y/n)n);scanf(%s,&b);getchar();switch(b)case n:break;case y:printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf(=n);break;default:printf(您的输入有误!n);break;/按出版时间排序void time_paixu(struct book*head)struct book*a1000,*p,*p1,*temp;int i,k,index
41、,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;itimetime)index=i;temp=aindex;aindex=ak;ak=temp;printf(排序成功!n);printf(是否显示排序结果?(y/n)n);scanf(%s,&b);getchar();switch(b)case n:break;case y:printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);for(i=0;inum,ai-bname,ai-w
42、name,ai-press,ai-sort,ai-time,ai-price);%.2f21K2MG-E专业技术人员绩效管理与业务能力提升练习与答案printf(=n);break;default:printf(您的输入有误!n);break;/按图书价格排序void price_paixu(struct book*head)struct book*a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1
43、;ipriceprice)index=i;temp=aindex;aindex=ak;ak=temp;printf(排序成功!n);printf(是否显示排序结果?(y/n)n);scanf(%s,&b);getchar();switch(b)case n:break;case y:printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf(=n);break;%.2f22K2MG-E专业技术人员绩效管理与业务能力提升练习与答
44、案default:printf(您的输入有误!n);break;/按图书名排序void bname_paixu(struct book*head)struct book*a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;ibname,ai-bname)0)index=i;temp=aindex;aindex=ak;ak=temp;printf(排序成功!n);printf(是否显示排序结果?(y/
45、n)n);scanf(%s,&b);getchar();switch(b)case n:break;case y:printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf(=n);break;default:%.2f23K2MG-E专业技术人员绩效管理与业务能力提升练习与答案printf(您的输入有误!n);break;/按作者名排序void wname_paixu(struct book*head)struct book*
46、a1000,*p,*p1,*temp;int i,k,index,n=0;char b;p1=head;for(p=head;p;p=p-next)n+;for(i=0;inext;for(k=0;kn-1;k+)index=k;for(i=k+1;iwname,ai-wname)0)index=i;temp=aindex;aindex=ak;ak=temp;printf(排序成功!n);printf(是否显示排序结果?(y/n)n);scanf(%s,&b);getchar();switch(b)case n:break;case y:printf(=n);printf(*编号图书名作者名出版社类别出版时间价格*n);for(i=0;inum,ai-bname,ai-wname,ai-press,ai-sort,ai-time,ai-price);printf(=n);break;default:printf(您的输入有误!n);%.2f24K2MG-E专业技术人员绩效管理与业务能力提升练习与答案break;25K2MG-E专业技术人员绩效管理与业务能力提升练习与答案世上没有一件工作不辛苦,没有一处人事不复杂。不要随意发脾气,谁都不欠你的26