C语言图书馆管理系统源代码(共11页)_第1页
C语言图书馆管理系统源代码(共11页)_第2页
C语言图书馆管理系统源代码(共11页)_第3页
C语言图书馆管理系统源代码(共11页)_第4页
C语言图书馆管理系统源代码(共11页)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include<conio.h>typedef int BOOL;typedef struct bookinfo char number15;/*产品编号*/ char name30;/*产品名称*/ float price;/*单价*/ char auther20;/*作者*/ BOOL isExit;/*存在状态*/ char lendername20;/*借

2、书人姓名*/ char lendersex2;/*借书人性别*/ char lendernum15;/*借书人学号*/BOOKINFO;void menu() printf("nnnnnnn"); printf("ttt图书管理系统n"); printf("ttt1:新进图书基本信息的输入n"); printf("ttt2:显示全部记录n"); printf("ttt3:根据图书名称查询图书基本信息n"); printf("ttt4:根据图书名称对撤销的图书信息进行删除n")

3、; 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(

4、newbook.number); printf("输入图书名称:"); gets(); printf("输入图书单价:"); scanf("%f",&newbook.price); while(getchar()!='n'); printf("输入图书的作者:"); gets(newbook.auther); printf("输入借书人姓名:"); gets(newbook.lendername); printf("输入借书人性别:&qu

5、ot;); 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=&#

6、39;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(); wh

7、ile(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("

8、;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(&q

9、uot; 图书信息如下n"); printf(" 图书信息 | 借书人信息 n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号n"); while(n<booknumber) printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8sn", bookinfon.number,,bookinfon.price, bookinfon.auther,bookinfon.isExit,bookinfon.lendername, book

10、infon.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:bo

11、okinfo.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

12、("按任意键回到主菜单!nn"); getch(); break; /*if结束*/ else for(n=0;n<booknumber;n+) if(strcmp(,search)=0) printf("该书的详细信息如下:n"); printf(" 图书信息 | 借书人信息 n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号n"); printf("%-6s%-12s%-8.1f%-8s%-9d| %-12s%-8s%-8sn"

13、, bookinfon.number,,bookinfon.price, bookinfon.auther,bookinfon.isExit,bookinfon.lendername, bookinfon.lendersex,bookinfon.lendernum); break; if(n>=booknumber) printf("没有查找该书的任何信息!n"); printf("nn是否继续查询?(Y/N)n"); choice=getch(); while(choice!='Y'&&

14、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; FI

15、LE *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-;/

16、*使用feof()函数会多读一行,因此需要booknumber自减一次,使书目的数量正确*/ fclose(p); if(booknumber=0) printf("书库中没有任何信息!nn"); printf("按任意键回到主菜单!nn"); getch(); break; /*if结束*/ else for(n=0;n<booknumber;n+) if(strcmp(,search)=0) break; if(n>=booknumber) printf("没有查找该书的任何信息!n");

17、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;i<booknumber-1;i+) bookinfoi=bookinfoi+1; booknumber-; p

18、=fopen("c:bookinfo.data","wb"); for(n=0;n<booknumber;n+) fwrite(&bookinfon,sizeof(BOOKINFO),1,p); fclose(p); printf("删除成功!n"); else printf("nn该条书目没有被删除!"); printf("nn是否继续进行删除操作?(Y/N)n"); choice=getch(); while(choice!='Y'&&choic

19、e!='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

20、=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 fo

21、r(m=0;m<booknumber-1;m+) for(n=m+1;n<booknumber;n+) if(strcmp(,)>0) temp=bookinfom; bookinfom=bookinfon; bookinfon=temp; p=fopen("c:bookinfo.data","wb"); for(m=0;m<booknumber;m+) fwrite(&bookinfom,sizeof(BOOKINFO),1,p); fclose(p); print

22、f("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:

23、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<booknumber;n+) if(bookinfon.p

24、rice>=price) count+; if(count=0) printf("书库中没有比%.1f$价格高的图书!",price); else printf(" 价格高于%.1f$的图书信息如下n",price); printf(" 图书信息 | 借书人信息 n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号n"); for(n=0;n<booknumber;n+) if(bookinfon.price>=price) printf("%-6s%-12s

25、%-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

26、 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"

27、;); else for(n=0;n<booknumber;n+) if(bookinfon.isExit=1) count+; if(count=0) printf("书库中的书籍全部借出!n"); else printf("书库中未被借出的图书信息如下:nn"); printf(" 图书信息 | 借书人信息 n"); printf("编号 名称 单价 作者 图书状态 | 姓名 性别 学号n"); for(n=0;n<booknumber;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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论