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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图书管理系统代码C语言.docx

1、图书管理系统代码C语言#include#include#includestruct book int 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

3、book *head); /按类别查询图书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(s

4、truct book *head); /按图书价格排序void bname_paixu(struct book *head); /按图书名排序void wname_paixu(struct book *head); /按作者名排序int main() int choice,n,x,y=1,c,c1=123456; char a,d,b10,b110=201102520116; struct book *head=NULL; while(y) system(cls); printf(nnnnnnn); printf( * 欢迎光临 *nn); printf( * 图书信息管理系统 *nnn);

5、printf(nn); printf( =1-用户登录=n); printf( =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(

6、); system(cls); else printf( 验证通过!请按Enter键进入!n); scanf(%c,&d); 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); pr

7、intf( *nn); printf( *nn); printf(请输入所选择的序号:); scanf(%d,&choice); getchar(); system(cls); switch(choice) case 0: x=0;break; case 1: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else head=addbook(head); printf(添加成功!n); printf(是否将新信息保存到文件?(y/n)n); scanf(%c,&a); getchar(); switch(

8、a) case n: break; case y: fprint(head); printf(保存成功!n); getchar(); break; break; case 2: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else deletebook(head); getchar(); break; break; case 3: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else print_book(hea

9、d); getchar(); break; case 4: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else paixu(head); getchar(); break; case 5: head=load(); if(head=NULL) printf(文件为空,请先录入数据!n); getchar(); break; else chaxun(head); getchar(); break; case 6: head=load(); if(head=NULL) printf(文件为空,请先录入数据

10、!n); getchar(); break; else xiugai(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; case y: fprint(head); printf(保存成功!n); getchar(); break; break; default: printf

11、(您的输入有误,请重新输入!n); getchar(); break; break; default: printf( 您的输入有误! 请重新输入!n); getchar(); break; /录入数据并形成链表struct book *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,&n

12、um); 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=(struct book *)

13、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; p-next=NULL; if(head=NULL) head=p; else tail-next=p; tail=p; do printf(请输入图书编号:); scanf(%d,&num); n=yanzheng(head,num); if(n=0) break; else printf(您输入的编号已存在,

14、请重新输入!n); while(1); if(num=0) break; else 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);

15、getchar(); return head;/插入结点,并且插入后仍按一定顺序struct book *addbook(struct book *head) struct book *ptr,*p1,*p2,*p; char bname50,wname20,press50,sort50; int size=sizeof(struct book); int num,time,n=1; float price; do printf(请输入图书编号:); scanf(%d,&num); n=yanzheng(head,num); if(n=0) break; else printf(您输入的编号已

16、存在,请重新输入!n); while(1); 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(); p=(struc

17、t 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; p2=head; ptr=p; while(ptr-nump2-num)&(p2-next!=NULL) p1=p2; p2=p2-next; if(ptr-numnum) if(head=p2) head=ptr; else p1-next=ptr; p-next=p2; else p2-ne

18、xt=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; p=p-next; if(p=NULL) return 0; else return 1;/将新链表写入文件中void fprint(struct book *head) FILE *fp; char ch=1; struct book *p1; if(fp=fopen(f1.txt,w)=NULL) prin

19、tf(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); fclose(fp);/从文件中读取图书信息struct book *load() FILE *fp; char ch; struct book *head,*tail,*p1; head=tail=NULL; if(fp=fopen(f1.txt,r)=NULL)

20、 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,p1-sort,&p1-time,&p1-price); if(head=NULL) head=p1; else tail-next=p1; tail=p1; tail-next=NULL; fclose(fp); return he

21、ad; else return NULL; /将整个链表的信息输出void print_book(struct book *head) struct book *ptr; if(head=NULL) printf(n没有信息!n); return; printf( 图书信息列表如下n); printf( =n); printf( 编号 图书名 作者名 出版社 类别 出版时间 价格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-

22、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) /对于文件中只有一组数据 printf(是否清空文件!(y/n)n); getchar(); scanf(%c,&b); getchar(); switch(b) case n: break; c

23、ase y: if(fp=fopen(f1.txt,w)=NULL) printf(File open error!n); exit(0); fclose(fp); printf(文件已清空!n); else while(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) case n: break; case y: fprint(head

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

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

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