C语言大作业图书管理.docx

上传人:scccc 文档编号:13559610 上传时间:2022-01-16 格式:DOCX 页数:31 大小:17.40KB
返回 下载 相关 举报
C语言大作业图书管理.docx_第1页
第1页 / 共31页
C语言大作业图书管理.docx_第2页
第2页 / 共31页
C语言大作业图书管理.docx_第3页
第3页 / 共31页
C语言大作业图书管理.docx_第4页
第4页 / 共31页
C语言大作业图书管理.docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《C语言大作业图书管理.docx》由会员分享,可在线阅读,更多相关《C语言大作业图书管理.docx(31页珍藏版)》请在三一文库上搜索。

1、C语言图书管理系统主要功能:1 .新进图书基本信息的输入。2 .显示全部记录3 .按图书名称查询图书基本信息。4 .根据图书名称对撤消的图书信息进行删除。5 .按图书名称从小到大排序。6 .统计某价格以上的图书数量。7 .列出所有未借出去的图书信息。基本信息:图书编号、图书名称、单价、作者、存在状态、借书人姓名、性别、学 号等#include #include #include #include typedef int BOOL;typedef struct bookinfo char number15;/* 产品编号 */char name30;/* 产品名称 */float price;/

2、* 单价 */char auther20;/* 作者 */BOOL isExit;/* 存在状态 */char lendername20;/* 借书人姓名 */charlendersex2;/* 借书人性另ij */char lendernum。5;/借书人学号 */BOOKINFO;void menu ()(printf (nnnnnnnn);printf (ttt 图书管理系统 n);printf (Attt1:新进图书基本信息的输入n);printf (nttt2:显示全部记录 n);printf (nttt3:根据图书名称查询图书基本信息n”);printf(“tN4:根据图书名称对撤

3、销的图书信息进行删除n“);printf(Attt5:按照图书名称从小大到排序nM);printf(Attt6:统计某价格以上的图书数量nH);printf(Attt7:列出所有未借出去的图书信息n);printf(Httt8:退出n“);void choice_1 Jnput_new()/*输入新进的图书信息*/char choice;FILE *p;BOOKINFO newbook;system(clsn);while(1)printf(输入图书编号gets(newbook.number);printf(输入图书名称gets(newbook.name);printfC, 输入图书单价sca

4、nf(%f,&newbook.price); while(getchar()!=,n,);printfC1 输入图书的作者:); gets(newbook.auther);printfC, 输入借书人姓名:); gets(newbook.lendername);printf(f 输入借书人性别:”); gets(newbook.lendersex);printf(输入借书人学号:); gets(newbook.lendernum);printf(M 是否保存该条书目?(Y/N)n”); choice=getch();while(choice!=Y&choice!=y&choice!=,N&ch

5、oice!=,n,) choice=getch();if(choice=Y|choice=y)newbook.isExit=1 ;/* 将图书状态设置成 1,表示没有借 出 */ p=fopen(Mc:bookinfo.data,nabH); fwrite(&newbook,sizeof(BOOKINFO),1 ,p);fclose(p);printf(n 该条书目已添加到 c:bookinfo.data 文件中!nH);)else(printf(”n本条书目未保存!n)printf(Mn是否继续添加书目?(Y/N)n“);choice=getch(); while(choice!=,Y,&c

6、hoice!=y,&choice!=N&choice!=n,)choice=getch();if (choice=Y| |choice=y) continue;else break;)void choice_2_display_all()/* 显示全部图书信息*/(FILE *p;int n;BOOKINFO bookinfo100;int booknumber=0;systemCcls);p=fopen(c:bookinfo.data”Jrb);while(!feof(p) fread(&bookinfobooknumber5sizeof(BOOKINFO),1 ,p); booknumbe

7、r+;/*booknumber-;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确/fclose(p);booknumber-;if(booknumber=0)(printf(没有任何图书信息!nn“);)elsen=0;printf(图书信息如下n“);prints图书信息|借书人信息n“);printf(编号名称单价作者图书状态|姓名 性别学号n);while(nbooknumber)printf(n%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8snn,bookinfon.number,bookinfon.name,book

8、infon.price,bookinfon.auther,bookinfon.isExit,bookinfon.lendername,bookinfon.lendersex,bookinfon.lendernum);n+;)printf(nn按任意键回到主菜单!n);getch();)void choice_3_search_according_name()/* 根据图书名称显示图书的信息 */char search20=,H,;/*search用来存放要查询的书名*/int n;FILE *p;char choice;BOOKINFO bookinfo100;int booknumber=0

9、;systemCcls);p=fopen(c:bookinfo.datan,nrbn);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1 ,p);booknumber+;)booknumber;/*使用feof()函数会多读一行,因此需要booknumber自减一次, 使书目的数量正确/fclose(p);while(1)printf(输入要查询的书本名称gets(search);if(booknumber=0)printf (”书库中没有任何信息Mn);printf (按任意键回到主菜单!nn);getch ();break

10、;/*if结束7elsefor (n=0;n=booknumber)printf(没有查找该书的任何信息!n“);printf(Hnn 是否继续查询?(Y/N)nH);choice=getch();while(choice!=Y,&choice!=,y,&choice!=,N,&choice!=,n)choice=getch();if(choice=Y,| |choice=y)continue;elsebreak;/*else 结束 7/*while结束7 void choice_4_delete_according_name()/*根据图书名称对图书信息进行删 除*/ char search

11、20=,H,;/*search用来存放要删除的书名7int nJ;FILE *p;char choice;BOOKINFO bookinfo100;int booknumber;system(nclsn);while(1)printf(输入要删除的书本名称gets(search);p=fopen(c:bookinfo.data,rbn);booknumber=0;while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1 ,p);booknumber+;)booknumber-;/*使用feof()函数会多读一行,因此需要booknum

12、ber自减一次,使书目的数量正确/fclose(p);if(booknumber=0)(printf(”书库中没有任何信息!nn);printf(按任意键回到主菜单Mn);getch();break;/*if 结束/elsefor(n=0;n=booknumber)printf(没有查找该书的任何信息!n“);elseprintf(是否确认需要删除该条书目?(Y/N);choice=getch();while(choice!=Y&choice!=,y,&choice!=,N&choice!=,n) choice=getch();if(choice=,Y,| |choice=y)for(i=n;

13、ibooknumber-1 ;i+)bookinfoi=bookinfoi+1 ;booknumber-;p=fopen(c:bookinfo.data,“wb);for(n=0;nbooknumber;n+)fwrite(&bookinfon,sizeof(BOOKINFO),1 ,p); fclose(p);printf(删除成功!n”);)elseprintf(nn该条书目没有被删除!”);)printf(Ann是否继续进行删除操作?(Y/N)n);choice=getch();while(choice!=Y,&choice!=,y,&choice!=N,&choice!=n) choi

14、ce=getch();if(choice=Y,| |choice=y)continue;elsebreak;/*else 结束 7/*while结束7 void choice_5_sort_according_name()/* 根据图书名称排序 */FILE *p;int m,n;BOOKINFO temp;BOOKINFO bookinfo100;int booknumber;p=fopen(c:bookinfo.data,rbH);booknumber=0;systemf,clsn);while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKI

15、NFO),1 ,p); booknumber+;booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/fclose(p);if(booknumber=0)(printf(没有任何图书信息!nn“);)elsefor(m=0;mbooknumber-1 ;m+)for(n=m+1 ;n0) temp=bookinfom;bookinfom=bookinfon;bookinfon=temp;p=fopen(c:bookinfo.data,wb,);for(m=0;mbooknumber;m4-+)fwrite(&bookinfom,s

16、izeof(BOOKINFO),1 ,p);fclose(p);printf(nnn 完成排序!nnH);)printf(按任意键回到主菜单!nu);getch();)void choice_6_display_high_price()/* 根据价格列出图书信息*/ float price;FILE *p;int n;int count=0;BOOKINFO bookinfo100;int booknumber;systemf,clsn);printf(”请输入价格:”);scanf(n%f,&price);p=fopen(c:bookinfo.data,Hrbn);booknumber=0;

17、while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1 ,p);booknumber+;)booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次, 使书目的数量正确*/fclose(p);if(booknumber=0)(printf(没有任何图书信息!nn“); elsefor(n=0;n=price)count+;)if(count=0)printf(“书库中没有比%.1f$价格高的图书price); elseprintf(“价格高于%.什$的图书信息如下nM,price);printf

18、(图书信息|借书人信息n“);printf(编号名称单价作者图书状态|姓名性别学号n“);for(n=0;n=price)printf(n%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8sn”, bookinfon.number,bookinfon.name,bookinfon.price,bookinfon.auther,bookinfon.isExit5bookinfon.lendername, bookinfon.lendersex5bookinfon.lenclernum);) ) )printf(nn按任意键回到主菜单!nn);getch();)void c

19、hoice_7_display_according_exitflag()/* 根据存在状态列出图书信 息*/ FILE *p;int n;int count=0;BOOKINFO bookinfo100;int booknumber;system(clsn);booknumber=0;p=fopen(c:bookinfo.data,rbn);while(!feof(p)fread(&bookinfobooknumber,sizeof(BOOKINFO),1 ,p);booknumber+;)booknumber-;fclose(p);if(booknumber=0)(printf(”书库中没有

20、任何书目存在!n*,);)else(for(n=0;nbooknumber;n+) if(bookinfon.isExit=1)count+;if(count=0)printf(”书库中的书籍全部借出!n);elseprintf(”书库中未被借出的图书信息如下:nn“);printf(图书信息|借书人信息nf,);printf(编号名称单价作者图书状态|姓名性别学号nn);for(n=0;nbooknumber;n+)if(bookinfon.isExit=1)pnntf(H%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8snM, bookinfon.number,b

21、ookinfon.name,bookinfon.price,bookinfon.auther,bookinfon.isExit,bookinfon.lendername, bookinfon.lendersex5bookinfon.lenclernum);printf(”n按任意键返回主菜单!n“);getch();)void main()char choice;clock_t tm;FILE *p;if(p=fopen(,c:bookinfo.clata,rb,)=NULL)p=fopen(c:bookinfo.data,wbH);fclose(p);while(1)system(MclsH

22、);menu();choice=getch();switch(choice)case T:choice_1_input_new();break;/*输入新进的图书信息*/case ,2,:choice_2_display_all();break;/*显示全部图书信息*/case ,3,:choice_3_search_according_name();break;/*根据图书名称显示图书的信息/case ,4,:choice_4_delete_according_name();break;/*根据图书名称对图书信息进行删除/case ,5,:choice_5_sort_according_name();break;/*根据图书名称排序V*/case ,6:choice_6_display_high_price();break;/*根据价格列出图书信息case 7,:choice_7_display_according_exitflag();break;/*根据存在状态列出图书信息*/按任意键退i !nn) ;getch() ;return;default:请输入菜单中的数字!(1-8f);tm=clock();while(clock()tm+1800);break;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1