版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h>#include<string.h>#include<stdlib.h>#defineSIZE(structbooklist*)malloc(sizeof(structbooklist)/建立已借阅图书信息结构体structborrowcharborbook_num10;charborbook_name22;charreturn_time15;charstu_num15;charstu_name15;structborrow*next;/建立预借图书信息结构体structprebor_stucharprebook_num10
2、;charprestu_num15;structprebor_stu*next;/建立图书结构体structbooklistcharnum10;charname22;charzuozhe15;charleibie10;charpub_time10;charprice10;charcondition10;structbooklist*next;structbooklist*create(void);/*创建图书信息链表*/structborrow*borrow_creat(structbooklist*head);/创建已借阅图书信息链表intpre_creat(structbooklist*h
3、ead);/学生登录系统预借图书并将信息存入文件prebor_stulist.txtstructprebor_stu*prebor_creat(void);/创建预借阅图书信息链表voidprintf1_(structbooklist*);/输出单个基本图书的数据voidstore(structbooklist*head);/*保存链表中的图书信息到文件booklist.txt*/voidprintfb1_(structborrow*);/输出单个借出图书的部分数据voidprintfb_(structborrow*p);/输出单个借出图书的数据voidprintfp1_(structpreb
4、or_stu*);/输出单个被预借出图书的部分数据voidprintfp_(structprebor_stu*);/输出单个被预借出图书的数据voidprintf_(structbooklist*,structborrow*,structprebor_stu*);/*2-输出链表中的图书信息*/structbooklist*load(void);/5-从文件读入图书信息structbooklist*num_paixu(structbooklist*);/4-按编号排序structbooklist*price_paixu(structbooklist*);/3-按价格顺序排序intkcnum(s
5、tructbooklist*head);/6-统计库存数voidchaxun1_(structbooklist*,structborrow*,structprebor_stu*);/7-查询图书的编号图书的信息,并输出voidchaxun2_(structbooklist*,structprebor_stu*,structborrow*);/7-按作者查询信息并输出voidchaxun3_(structbooklist*,structprebor_stu*,structborrow*);/7-查询某类别图书信息并自动输出voidchaxun4_(structborrow*,prebor_stu
6、*,structbooklist*);/7-按学号查询借阅信息structbooklist*shanchu(structbooklist*,structborrow*,structprebor_stu*);/9-删除数据structborrow*shanchu2_(structborrow*,structborrow*);/删除一个structborrow结构体的数据structprebor_stu*shanchu3_(structprebor_stu*,structprebor_stu*);/删除一个structprebor_stu结构体的数据voidxiugai(structbooklis
7、t*,structborrow*,structprebor_stu*);/10-修改数据voidborstore(structborrow*borrow_head);/保存已借阅图书信息到文件borrowlist.txt/重新保存修改后的预借阅信息到文件prebor_stulist.txt(全部覆盖)voidprestore(structprebor_stu*pre_head);structborrow*borload(void);/从文件提取信息创建已借阅图书源信息链表structbooklist*charu(structbooklist*head,structborrow*borrow_h
8、ead);/8-将图书的数据到顺序排放的链表中,且插入后也是顺序排放的structbooklist*scanf1_(void);/输入单个图书源数据voidexchange(structbooklist*,structbooklist*);/交换两个结构体内的内容structborrow*tianjia1_(structborrow*borrow_head,structbooklist*p);/添加一个structborrow结构体的数据intmain(void)intn,n1,x,k=0,flag,flag1,x1;charch;structbooklist*head=NULL;/图书信息链
9、表头指针structborrow*borrow_head=NULL;/已借阅图书信息链表头指针structprebor_stu*pre_head=NULL;/预借图书信息链表头指针flag1=0;x=x1=1;while(x)system("cls");printf("*n");printf("*>>>>>>>>>>>>欢迎使用君宁图书管理系统><<<<<<<<<<<<<<<*n
10、");printf("*0-退出系统5-从文件录入数据*n");printf("*1-录入数据存数*n");printf("*2-输出信息10-修改数据能*n");printf("*3-按价格排序据*n");printf("*4-按编号排序*n");6-统计库7-查询功8-增加数9-删除数据printf("*n");printf(" 请选择功能:");scanf("%d", &n); getchar();switch(
11、n)case 0:/0- 退出系统x = 0;printf("printf("谢谢使用君宁图书管理系统 !*n");欢迎下次使用 !*n");break;case 1:/1- 录入数据while(x1) system("cls");printf("* 欢迎使用君宁图书信息录入系统*n");printf("*0-放弃录入 *n");printf("*1-录入图书源信息*n");printf("*2-录入借出图书信息*n");printf("*3-录
12、入预借图书信息*n");printf("*祝您使用愉快*n");I*printf("请选择功能:");scanf("%d",&n1);getchar();switch(n1)case0:x1=0;break;case 1:head=create();/*创建图书信息链表*/printf("是否将源图书信息保存到文件booklist.txt!.(Y/N):");ch=getchar();if(ch='y'|ch='Y')store(head);getchar();br
13、eak;case 2:if(head=NULL)printf("请先录入图书源信息!n");getchar();break;elseborrow_head=borrow_creat(head);/创建已借阅图书信息链表printf("是否将源图书信息保存到文件borrowlist.txt!.(Y/N):");ch=getchar();if(ch='y'|ch='Y')borstore(borrow_head);getchar();break;case 3:if(head=NULL)printf("请先录入图书源信
14、息!n");getchar();break;elseflag=pre_creat(head);if(flag=1)printf("没有录入预借图书信息!nn");if(flag=2)pre_head=prebor_creat();/创建预借阅图书信息链表getchar();break;default:printf("输入错误指示!nn");break;case 2: /2-输出信息if(head=NULL)printf("请先录入图书信息!n");getchar();break;elseprintf_(head,borrow
15、_head,pre_head);break;case 3: /3-按价格排序if(head=NULL)printf("请先录入图书信息!n");getchar();break;elsehead=price_paixu(head);printf("是否将排序后的源图书信息保存到文件booklist.txt!.(Y/N):");ch=getchar();if(ch='y'|ch='Y')store(head);getchar();break;case 4:/4- 按编号排序if(head=NULL)printf("请
16、先录入图书信息!n");getchar();break;elsehead=num_paixu(head);printf("是否将排序后的源图书信息保存到文件booklist.txt!.(Y/N):");ch=getchar();if(ch='y'|ch='Y')store(head);getchar();break;case 5: /11-从文件读取数据head=load();if(head=NULL)printf("请先录入图书信息!n");getchar();break;elseborrow_head=bor
17、load();/从文件提取信息创建已借阅图书源信息链表pre_head=prebor_creat();/创建预借阅图书信息链表getchar();break;case 6: /6-统计库存数if(head=NULL)printf("请先录入图书信息!n");getchar();break;elsek=kcnum(head);printf("总共有3d本图书!nn",k);getchar();break;case 7:/7-查询信息if(head=NULL)printf("请先录入图书信息!n");getchar();break;els
18、ewhile(x1)system("cls");printf("*printf(" printf(" printf(" printf("I*I*I*I*printf("*printf("*欢迎使用君宁图书信息查询系统0-退出查询1-按编号2-按作者3-按类别4-按学号 祝您使用愉快printf("printf("I*I*n");*n");*n");*n");*n");*n");*n");*n");*n&qu
19、ot;);printf(" 请选择功能:");scanf("%d", &n1);getchar();switch(n1)case 0:x1 = 0; break;case 1:chaxun1_(head,borrow_head,pre_head);getchar();break;case 2:chaxun2_(head,pre_head,borrow_head);getchar();break;case3:chaxun3_(head,pre_head,borrow_head);getchar();break;case4:chaxun4_(borr
20、ow_head,pre_head,head);getchar();break;default:printf("输入指示有误!nn");break;x1=1;break;case 8:if(head=NULL)printf("请先录入图书信息!n");getchar();break;elsehead=charu(head,borrow_head);printf("是否将源图书信息保存到文件booklist.txt!.(Y/N):");ch=getchar();if(ch='y'|ch='Y')store(
21、head);getchar();break;case 9: /9-删除数据if(head=NULL)printf("请先录入图书信息!n");getchar();break;elsehead=shanchu(head,borrow_head,pre_head);borrow_head=borload();pre_head=prebor_creat();break;case 10: /10-修改数据if(head=NULL)printf("请先录入图书信息!n");getchar();break;elsexiugai(head,borrow_head,pr
22、e_head);borrow_head=borload();getchar();break;default:printf("输入错误指示,请重新输入!");getchar();break;return0;/*创建图书源信息信息链表*/structbooklist*create(void)structbooklist*head,*tail,*p;charnum10,name22,zuozhe15,leibie10,pub_time10,price10,condition10;head=tail=p=NULL;printf("当输入图书编号为0时结束信息输入n&quo
23、t;);printf("请输入图书编号:");gets(num);while(strcmp(num,"0")!=0)p=SIZE;printf("请输入书名:");gets(name);printf("请输入作者:");gets(zuozhe);printf("请输入类别:");gets(leibie);printf("请输入出版时间:");gets(pub_time);printf("请输入价格:");gets(price);printf("请
24、输入借阅情况:");gets(condition);printf("n");strcpy(p->num,num);strcpy(p->name,name);strcpy(p->zuozhe,zuozhe);strcpy(p->leibie,leibie);strcpy(p->pub_time,pub_time);strcpy(p->price,price);strcpy(p->condition,condition);p->next=NULL;if(head=NULL)head=p;elsetail->next
25、=p;tail=p;printf("请输入图书编号:");gets(num);printf("图书源信息已建立链条!n");returnhead;/创建已借阅图书源信息链表structborrow*borrow_creat(structbooklist*head)structbooklist*p;structborrow*borrow_head,*p1,*tail;borrow_head=p1=tail=NULL;for(p=head;p!=NULL;p=p->next)p1=(structborrow*)malloc(sizeof(structb
26、orrow);if(strcmp(p->condition,"借出")=0)printf("创建借出信息:n");strcpy(p1->borbook_num,p->num);strcpy(p1->borbook_name,p->name);getchar();printf("借阅编号为%s的图书的借阅信息:n",p->num);printf("请输入应归还时间:");gets(p1->return_time);printf("请输入学生学号:");ge
27、ts(p1->stu_num);printf("请输入学生姓名:");gets(p1->stu_name);printf("n");p1->next=NULL;if(borrow_head=NULL)borrow_head=p1;elsetail->next=p1;tail=p1;printf("成功创建已借出信息链表!nn");getchar();returnborrow_head;/保存已借阅图书信息到文件borrowlist.txtvoidborstore(structborrow*borrow_head
28、)FILE*fp;structborrow*p;if(fp=fopen("borrowlist.txt","w")=NULL)printf("Fileopenerror!n");exit(0);p=borrow_head;while(p!=NULL)fprintf(fp,"%16s%26s%16s%16s%16sn",p->borbook_num,p->borbook_name,p->return_time,p->stu_num,p->stu_name);p=p->next;fc
29、lose(fp);printf("文件成功保存到borrowlist.txt中!n");getchar();/从文件提取信息创建已借阅图书源信息链表structborrow*borload(void)structborrow*p,*tail,*head;FILE*fp;head=p=tail=NULL;if(fp=fopen("borrowlist.txt","r")=NULL)printf("文件borrowlist.txt打开失败!n");getchar();exit(0);while(!feof(fp)p=(
30、structborrow*)malloc(sizeof(structborrow);fscanf(fp,"%16s%26s%16s%16s%16sn",p->borbook_num,p->borbook_name,p->return_time,p->stu_num,p->stu_name);if(head=NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;fclose(fp);printf("已成功从文件borrowlist.txt提取信息创建已借阅图书源信息!n&qu
31、ot;);returnhead;/录入预借图书信息并将信息存入文件prebor_stulist.txtintpre_creat(structbooklist*head)structbooklist*b;structprebor_stu*p;chara10,c15;intn,x=1,flag=1;FILE*fp;b=head;p=(structprebor_stu*)malloc(sizeof(structprebor_stu);printf("进入预借图无!(按回车键继续、)n");getchar();while(x)printf("请输入要预借阅的图书编号:&q
32、uot;);gets(a);while(strcmp(b->num,a)!=0)&&b->next!=NULL)b=b->next;if(strcmp(b->num,a)!=0)printf("没有找到编号为s的图书!n",a);printf("输入-0结束录入!(输入其他数字继续录入)nn");printf("请选择功能:");scanf("%d",&n);getchar();if(n=0)x=0;getchar();elseprintf("请输入学号:&
33、quot;);gets(c);strcpy(p->prebook_num,a);strcpy(p->prestu_num,c);if(fp=fopen("prebor_stulist.txt","a+")=NULL)printf("Fileopenerror!n");exit(0);fprintf(fp,"%16s%16sn",p->prebook_num,p->prestu_num);fclose(fp);flag=2;printf("输入-0结束录入!(输入其他数字继续录入.)
34、nn");printf("请选择功能:");scanf("%d",&n);getchar();if(n=0)x=0;getchar();returnflag;/重新保存修改后的预借阅信息到文件prebor_stulist.txt(全部覆盖)voidprestore(structprebor_stu*pre_head)structprebor_stu*p;FILE*fp;p=pre_head;if(fp=fopen("prebor_stulist.txt","w")=NULL)printf(&quo
35、t;Fileopenerror!n");exit(0);while(p!=NULL)fprintf(fp,"%16s%16sn",p->prebook_num,p->prestu_num);p=p->next;fclose(fp);printf("文件成功保存到prebor_stulist.txt中!n");getchar();/从文件prebor_stulist.txt创建预借阅图书信息链表structprebor_stu*prebor_creat(void)structprebor_stu*p,*tail,*head;FI
36、LE*fp;head=p=tail=NULL;if(fp=fopen("prebor_stulist.txt","r")=NULL)printf("文件prebor_stulist.txt打开失败!n");getchar();while(!feof(fp)p=(structprebor_stu*)malloc(sizeof(structprebor_stu);fscanf(fp,"%16s%16sn",p->prebook_num,p->prestu_num);if(head=NULL)head=p;e
37、lsetail->next=p;tail=p;tail->next=NULL;!n");fclose(fp);printf("已从文件prebor_stulist.txt成功读取并建立预借阅图书信息getchar();returnhead;/*2-保存链表中的图书信息到文件booklist.txt*/voidstore(structbooklist*head)FILE*fp;structbooklist*p;if(fp=fopen("booklist.txt","w")=NULL)printf("Fileopen
38、error!n");exit(0);p=head;while(p!=NULL)fprintf(fp,"%16s%26s%16s%16s%16s%16s%16sn",p->num,p->name,p->zuozhe,p->leibie,p->pub_time,p->price,p->condition);p=p->next;fclose(fp);printf("文件成功保存到booklist.txt中!n");getchar();/输入单个图书源数据structbooklist*scanf1_(vo
39、id)structbooklist*p;p=SIZE;printf("请输入图书编号:");gets(p->num);printf("请输入书名:");gets(p->name);printf("请输入作者:");gets(p->zuozhe);printf("请输入类别:");gets(p->leibie);printf("请输入出版时间:");gets(p->pub_time);printf("请输入价格:");gets(p->pric
40、e);printf("请输入借阅情况:");gets(p->condition);returnp;/输出单个图书的数据voidprintf1_(structbooklist*p)printf("编号:");puts(p->num);printf("书名:");puts(p->name);printf("作者:");puts(p->zuozhe);printf("类别:");puts(p->leibie);printf("出版时间:");puts(
41、p->pub_time);printf("价格:");puts(p->price);printf("借阅情况:");puts(p->condition);/输出单个借出图书的部分数据voidprintfb1_(structborrow*p)printf("应归还时间:");puts(p->return_time);printf("借阅学生学号:");puts(p->stu_num);printf("借阅学生姓名:");puts(p->stu_name);/输出
42、单个借出图书的数据voidprintfb_(structborrow*p)printf("图书编号:");puts(p->borbook_num);printf("书名:");puts(p->borbook_name);printf("应归还时间:");puts(p->return_time);printf("借阅学生学号:");puts(p->stu_num);printf("借阅学生姓名:");puts(p->stu_name);/输出单个被预借出图书的部分数据
43、voidprintfp1_(structprebor_stu*p)printf("预借图书的学生学号:");puts(p->prestu_num);/输出单个被预借出图书的数据voidprintfp_(structprebor_stu*p)printf("图书编号:");puts(p->prebook_num);printf("预借阅图书的学生学号:");puts(p->prestu_num);/*3-输出链表中的图书信息*/voidprintf_(structbooklist*head,structborrow*b
44、orrow_head,structprebor_stu*pre_head)structbooklist*p;structborrow*b;structprebor_stu*pre;intx=1,n;p=head;b=borrow_head;pre=pre_head;while(x=1)system("cls");printf("*欢迎使用君宁图书信息输出系统*n");printf("*0-退出*n");printf("*1-输出图书源信息*n");printf("*2-输出借出图书信息*n");
45、printf("*3-输出预借借图书信息*n");printf("*祝您使用愉快*n");printf("请选择功能:");scanf("%d",&n);getchar();switch(n)case0:x=0;break;case 1:if(head!=NULL)printf("图书源信息如下:n");doprintf1_(p);printf("nn");p=p->next;while(p!=NULL);getchar();break;case 2:if(bo
46、rrow_head=NULL)printf("没有借出图书信息(按回车键继续、)!n");getchar();break;elseprintf("借出图书信息如下:n");doprintfb_(b);printf("nn");b=b->next;while(b!=NULL);printf("按回车键继续、n");getchar();break;case 3:if(pre_head=NULL)printf("没有预借图书信息(按回车键继续、)!n");getchar();getchar();
47、break;elseprintf("预借借图书信息如下:n");doprintfp_(pre);printf("nn");pre=pre->next;while(pre!=NULL);printf("按回车键继续、n");getchar();break;default:printf("输入错误(按回车键继续、)!n");getchar();break;/11-从文件读入图书信息structbooklist*load(void)structbooklist*p,*tail,*head;FILE*fp;head=
48、p=tail=NULL;if(fp=fopen("booklist.txt","r")=NULL)printf("文件booklist.txt打开失败!n");getchar();exit(0);while(!feof(fp)p=SIZE;fscanf(fp,"%16s%26s%16s%16s%16s%16s%16sn",p->num,p->name,p->zuozhe,pleibie,p->pub_time,p->price,p->condition);if(head=NULL
49、)head=p;elsetail->next=p;tail=p;tail->next=NULL;fclose(fp);printf("已成功读取文件booklist.txt,建立源图书信息链表!n");returnhead;/4-按编号排序并输出structbooklist*num_paixu(structbooklist*head)structbooklist*p,*p1,*tail;p1=NULL;tail=SIZE;for(p=head;p->next!=NULL;p=p->next)for(p1=p->next;p1!=NULL;p1=
50、p1->next)if(strcmp(p->num,p1->num)>0)exchange(tail,p1);exchange(p1,p);exchange(p,tail);printf("图书已按编号排序成功,具体信息如下:n");for(p=head;p!=NULL;p=p->next)printf1_(p);printf("n");returnhead;/3-按价格排序structbooklist*price_paixu(structbooklist*head)structbooklist*p,*p1,*tail;p1
51、=NULL;tail=SIZE;for(p=head;p->next!=NULL;p=p->next)for(p1=p->next;p1!=NULL;p1=p1->next)if(strcmp(p->price,p1->price)>0)exchange(tail,p1);exchange(p1,p);exchange(p,tail);printf("图书已按价格排序成功,具体信息如下:n");for(p=head;p!=NULL;p=p->next)printf1_(p);printf("n");retu
52、rnhead;/6-统计库存数intkcnum(structbooklist*head)inti=0;structbooklist*p;for(p=head;p!=NULL;p=p->next)i+;returni;/7-按编号查询信息并输出voidchaxun1_(structbooklist*head,structborrow*borrow_head,structprebor_stu*pre_head)chara10;structbooklist*p;structborrow*b;structprebor_stu*p1;intx1,x2;p=head;x1=x2=0;printf(&
53、quot;请输入要查询的图书编号:");gets(a);while(strcmp(p->num,a)!=0)&&p->next!=NULL)p=p->next;if(strcmp(p->num,a)!=0)printf("没有找到加号为s的图书!n",a);elsefor(b=borrow_head;b!=NULL;b=b->next)if(strcmp(b->borbook_num,a)=0)x1=1;printf("您要查询的书已借出,其具体信息如下:n");printfb1_(b);/输
54、出单个借出图书的数据printf1_(p);for(p1=pre_head;p1!=NULL;p1=p1->next)if(strcmp(p1->prebook_num,a)=0)x2=1;printf("您要查询的书已预借,其具体信息如下:n");printfp1_(p1);/输出单个被预借出图书的数据printf1_(p);if(x1=0&&x2=0)printf("此书未被预借!nn");printf("您要查询的图书信息如下:n");printf1_(p);/7-按作者查询信息voidchaxun2
55、_(structbooklist*head,structprebor_stu*pre_head,structborrow*borrow_head)chara10;structbooklist*p;structborrow*b;structprebor_stu*pre;intflag=1,x1;printf("请输入要查询的图书的作者:");gets(a);for(p=head;p!=NULL;p=p->next)if(strcmp(p->zuozhe,a)=0)if(flag=1)printf("您查询的%s的所有图书信息如下:nn",a);
56、flag=-1;printf1_(p);for(b=borrow_head;b!=NULL;b=b->next)if(strcmp(b->borbook_num,p->num)=0)printfb1_(b);x1=0;for(pre=pre_head;pre!=NULL;pre=pre->next)if(strcmp(pre->prebook_num,p->num)=0)printf("此书已被$学号的学生预借!n",pre->prestu_num);x1=1;if(x1=0)printf("此书未被预借!n")
57、;x1=1;printf("nn");if(flag=1)printf("没有找到您要查询的的图书信息!nn");/7-查询某类别图书信息并自动输出voidchaxun3_(structbooklist*head,structprebor_stu*pre_head,structborrow*borrow_head)chara10;structbooklist*p;structprebor_stu*pre;structborrow*b;intflag=1,x1;printf("请输入要查询的图书的类别:");gets(a);for(p=head;p!=NULL;p=p->next)if(strcmp(p->leibie,a)=0)if(flag=1)printf("您查询的%s的所有图书信息如下:nn",a);flag=-1;printf1_(p);for(b=borrow_head;b!=NULL;b=b->next)i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋买卖定金支付合同样本3篇
- 安装工程合同的工程进度报告3篇
- 旅游增强现实技术劳动合同模板3篇
- 市场摊位转让合同3篇
- 房屋买卖合同解除与继续履行3篇
- 安徽设计行业劳动合同模板3篇
- 挡水墙工程合同范例模板3篇
- 旅游产品经理劳动合同号3篇
- 房屋买卖合同范本写作心得3篇
- 教育培训机构审计业务合同3篇
- 第26课《诗词五首-渔家傲》课件【教材精讲精研】部编版语文八年级上册
- 湖南省高等教育自学考试 毕业生登记表
- 汉字文化精品课件
- 碾压式沥青混凝土防渗面板施工方案
- 【信息技术2.0】A5技术支持的课堂导入 初中历史《探寻新航路》课堂导入设计
- 修改留言条(课堂PPT)
- 3500常用字带拼音
- 安规PIN脚尺寸
- 工程部奖惩制度
- 出境竹木草制品生产企业卫生防疫管理手册
- 承建红砖烧成隧道窑合同协议书范本模板
评论
0/150
提交评论