




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #include #include #include typedef int BOOL;typedef struct bookinfo char number15;/*产品编号*/ char name30;/*产品名称*/ float price;/*单价*/ char auther20;/*作者*/ BOOL isExit;/*存在状态*/ char lendername20;/*借书人姓名*/ char lendersex2;/*借书人性别*/ char lendernum15;/*借书人学号*/BOOKINFO;void menu() printf(nnnnnnn); printf(ttt图书管理系统n); printf(ttt1:新进图书基本信息的输入n); printf(ttt2:显示全部记录n); printf(ttt3:根据图书名称查询图书基本信息n); printf(ttt4:根据图书名称对撤销的图书信息进行删除n); printf(ttt5:按照图书名称从小大到排序n); printf(ttt6:统计某价格以上的图书数量n); printf(ttt7:列出所有未借出去的图书信息n); printf(ttt8:退出n); void choice_1_input_new()/*输入新进的图书信息*/ char choice; FILE *p; BOOKINFO newbook; system(cls); while(1) printf(输入图书编号:); gets(newbook.number); printf(输入图书名称:); gets(); printf(输入图书单价:); scanf(%f,&newbook.price); while(getchar()!=n); printf(输入图书的作者:); gets(newbook.auther); printf(输入借书人姓名:); gets(newbook.lendername); printf(输入借书人性别:); gets(newbook.lendersex); printf(输入借书人学号:); gets(newbook.lendernum); printf(是否保存该条书目?(Y/N)n); choice=getch(); while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getch(); if(choice=Y|choice=y) newbook.isExit=1;/*将图书状态设置成1,表示没有借出*/ p=fopen(c:bookinfo.data,ab); fwrite(&newbook,sizeof(BOOKINFO),1,p); fclose(p); printf(n该条书目已添加到c:bookinfo.data文件中!n); else printf(n本条书目未保存!n); printf(n是否继续添加书目?(Y/N)n); choice=getch(); while(choice!=Y&choice!=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; system(cls); p=fopen(c:bookinfo.data,rb); while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; /*booknumber-;使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); booknumber-; if(booknumber=0) printf(没有任何图书信息!nn); else n=0; printf( 图书信息如下n); printf( 图书信息 | 借书人信息 n); printf(编号 名称 单价 作者 图书状态 | 姓名 性别 学号n); while(nbooknumber) printf(%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8sn, bookinfon.number,,bookinfon.price, bookinfon.auther,bookinfon.isExit,bookinfon.lendername, bookinfon.lendersex,bookinfon.lendernum); n+; printf(nn按任意键回到主菜单!n); getch(); void choice_3_search_according_name()/*根据图书名称显示图书的信息*/ char search20=;/*search用来存放要查询的书名*/ int n; FILE *p; char choice; BOOKINFO bookinfo100; int booknumber=0; system(cls); p=fopen(c:bookinfo.data,rb); while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); while(1) printf(输入要查询的书本名称:); gets(search); if(booknumber=0) printf(书库中没有任何信息!nn); printf(按任意键回到主菜单!nn); getch(); break; /*if结束*/ else for(n=0;n=booknumber) printf(没有查找该书的任何信息!n); printf(nn是否继续查询?(Y/N)n); choice=getch(); while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getch(); if(choice=Y|choice=y) continue; else break; /*else结束*/ /*while(1)结束*/ void choice_4_delete_according_name()/*根据图书名称对图书信息进行删除*/ char search20=;/*search用来存放要删除的书名*/ int n,i; FILE *p; char choice; BOOKINFO bookinfo100; int booknumber; system(cls); while(1) printf(输入要删除的书本名称:); gets(search); p=fopen(c:bookinfo.data,rb); booknumber=0; while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(booknumber=0) printf(书库中没有任何信息!nn); printf(按任意键回到主菜单!nn); getch(); break; /*if结束*/ else for(n=0;n=booknumber) printf(没有查找该书的任何信息!n); else printf(是否确认需要删除该条书目?(Y/N); choice=getch(); while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getch(); if(choice=Y|choice=y) for(i=n;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); else printf(nn该条书目没有被删除!); printf(nn是否继续进行删除操作?(Y/N)n); choice=getch(); while(choice!=Y&choice!=y&choice!=N&choice!=n) choice=getch(); if(choice=Y|choice=y) continue; else break; /*else结束*/ /*while(1)结束*/ void choice_5_sort_according_name()/*根据图书名称排序*/ FILE *p; int m,n; BOOKINFO temp; BOOKINFO bookinfo100; int booknumber; p=fopen(c:bookinfo.data,rb); booknumber=0; system(cls); while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(booknumber=0) printf(没有任何图书信息!nn); else for(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;m+) fwrite(&bookinfom,sizeof(BOOKINFO),1,p); fclose(p); printf(nn完成排序!nn); printf(按任意键回到主菜单!n); getch(); void choice_6_display_high_price()/*根据价格列出图书信息*/ float price; FILE *p; int n; int count=0; BOOKINFO bookinfo100; int booknumber; system(cls); printf(请输入价格:); scanf(%f,&price); p=fopen(c:bookinfo.data,rb); booknumber=0; while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-;/*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(booknumber=0) printf(没有任何图书信息!nn); else for(n=0;n=price) count+; if(count=0) printf(书库中没有比%.1f$价格高的图书!,price); else printf( 价格高于%.1f$的图书信息如下n,price); printf( 图书信息 | 借书人信息 n); printf(编号 名称 单价 作者 图书状态 | 姓名 性别 学号n); for(n=0;n=price) printf(%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8sn, bookinfon.number,,bookinfon.price, bookinfon.auther,bookinfon.isExit,bookinfon.lendername, bookinfon.lendersex,bookinfon.lendernum); printf(nn按任意键回到主菜单!n); getch(); void choice_7_display_according_exitflag()/*根据存在状态列出图书信息*/ FILE *p; int n; int count=0; BOOKINFO bookinfo100; int booknumber; system(cls); booknumber=0; p=fopen(c:bookinfo.data,rb); while(!feof(p) fread(&bookinfobooknumber,sizeof(BOOKINFO),1,p); booknumber+; booknumber-; fclose(p); if(booknumber=0) printf(书库中没有任何书目存在!n); else for(n=0;nbooknumber;n+) if(bookinfon.isExit=1) count+; if(count=0) printf(书库中的书籍全部借出!n); else printf(书库中未被借出的图书信息如下:nn); printf( 图书信息 | 借书人信息 n); printf(编号 名称 单价 作者 图书状态 | 姓名 性别 学号n); for(n=0;nbooknumber;n+) if(bookinfon.isExit=1) printf(%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8sn, bookinfon.number,,bookinfon.price, bookinfon.auther,bookinfon.isExit,bookinfon.lendername, bookinfon.lendersex,bookinfon.lendernum); printf(n按任意键返回主菜单!n); getch(); void main() char choice; clock_t tm; FILE *p; if(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-广西-广西水利机械运行维护工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西工程测量员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东计算机操作员二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东水工闸门运行工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东医技工二级(技师)历年参考题库典型考点含答案解析
- 2020-2025年设备监理师之设备工程监理基础及相关知识高分通关题型题库附解析答案
- 2020-2025年基金从业资格证之私募股权投资基金基础知识通关题库(附答案)
- 2025年中级卫生职称-主管技师-输血技术(中级)代码:390历年参考题库典型考点含答案解析
- 2025年银行金融类-金融考试-期货从业历年参考题库含答案解析(5套)
- 2023年设备监理师之设备监理合同通关提分题库及完整答案
- 金风15兆瓦机组变流部分培训课件
- 2017年9月国家公共英语(三级)笔试真题试卷(题后含答案及解析)
- 膀胱镜检查记录
- 2021年西安陕鼓动力股份有限公司校园招聘笔试试题及答案解析
- 沈阳终止解除劳动合同证明书(三联)
- 化工装置静设备基本知识
- 电脑节能环保证书
- 江西师范大学研究生院非事业编制聘用人员公开招聘1人(专业学位培养办公室助理)(必考题)模拟卷
- 2021社会保险法知识竞赛试题库及答案
- 罐头食品加工工艺课件
- 《排课高手》用户手册
评论
0/150
提交评论