c语言图书管理系统急需!!

Python030

c语言图书管理系统急需!!,第1张

我简单给你说一下吧。

1、首先定义数据结构

图书结构:图书编号、图书名称、单价、作者、存在状态

人员结构:人员编号(学生为学号,教师为工作编号)、姓名、性别等

借书结构:人员编号、图书编号、借书时间、还书时间

2、由于是C系统,通常情况下,数据要存储在文件中,因此,还需要定义文件结构:图书、人员、借书信息

为了数据处理速度,可将借书信息中已经还书的信息单独放在还书信息中,借书信息中的数据只是已经借出还没有归还的数据。

3、系统功能定义,以及编码。

由于系统太过庞大,你还是自己试着做一下吧,应该可以做好的。

学习本身就是做程序,如果有困难,可以上我们团队提问题,随时恭候!

祝学习进步!

#include#include#include#include#includestructbook{charnumber[100]chartittle[100]charwriter[100]charpublisher[100]chardate[100]charprice[100]charstatus[100]charreader[100]}voidsearch_book()voidborrow_book()voidreturn_book()voidadd_book()voiddelete_book()voidmodify_book()voidscan_book()intmain(){intc1=0,c2,c3intl,x,zwhile(1){system("color2C")printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n")printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n")printf("\t\t\t*[1]用户登录*\n")printf("\t\t\t*[2]管理员登录*\n")printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n")printf("\n")printf("请选择你的操作:")scanf("%d",&c1)system("cls")break}if(c1==1){while(1){system("color2C")printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n")printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n")printf("\t\t\t*[1]查询图书*\n")printf("\t\t\t|[2]借阅图书|\n")printf("\t\t\t*[3]借还图书*\n")printf("\t\t\t*[4]浏览图书信息*\n")printf("\t\t\t|[5]退出图书管理系统|\n")printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n")printf("\n")printf("请选择你的操作:")scanf("%d",&c2)getchar()switch(c2){case1:search_book()breakcase2:borrow_book()breakcase3:return_book()breakcase4:scan_book()breakcase5:system("cls")return0}}}if(c1==2){while(1){system("color2C")printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n")printf("\t\t\t|*-*-*-图书管理系统*-*-*|\n")printf("\t\t\t|[1]添加图书|\n")printf("\t\t\t*[2]删减图书*\n")printf("\t\t\t|[3]修改图书信息|\n")printf("\t\t\t*[4]浏览图书信息*\n")printf("\t\t\t|[5]退出图书管理系统|\n")printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n")printf("\n")printf("请选择你的操作:")scanf("%d",&c3)getchar()switch(c3){case1:add_book()breakcase2:delete_book()breakcase3:modify_book()breakcase4:scan_book()breakcase5:system("cls")return0}}}}/*查询图书*/voidsearch_book(){FILE*fpstructbooknstructbooknnintl,rcharx,zfp=fopen("F:\\课程设计\\图书管理系统.txt","rb")while(1){l=0system("cls")printf("请输入图书名称:")scanf("%s",n.tittle)fflush(stdin)rewind(fp)while(1){fread(&nn,sizeof(nn),1,fp)if(feof(fp))breakr=strcmp(n.tittle,nn.tittle)if(r==0){l=1break}}if(l==0){printf("没有要查询的图书!!!\n\n")}else{printf("查询的图书为:")printf("\n")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")printf("%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader)printf("\n\n\n")}printf("是否继续查询图书?[是(y)/否(n)]?\n\n")do{x=getche()}while(x!='n'&&x!='y')if(x=='n')break}fclose(fp)system("cls")}//添加voidadd_book(){FILE*fpstructbooknstructbooknncharx,zintl,rfp=fopen("F:\\课程设计\\图书管理系统.txt","ab+")do{system("cls")do{l=0printf("\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")fflush(stdin)scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader)system("cls")rewind(fp)while(!feof(fp)){fread(&nn,sizeof(nn),1,fp)r=strcmp(n.tittle,nn.tittle)if(r==0){l=1printf("该图书已存在,请输入新的图书信息:\n\n")break}}}while(l)fwrite(&n,sizeof(n),1,fp)printf("\n")printf("是否继续输入新的图书信息[y/n]\n\n")do{x=getche()}while(x!='n'&&x!='y')}while(x=='y')fclose(fp)system("cls")}//删除图书voiddelete_book(){FILE*fp,*fp1charx,zstructbooknstructbooknnintl,rfp=fopen("F:\\课程设计\\图书管理系统.txt","ab+")while(1){l=0system("cls")printf("\n")printf("请输入需要删除的图书名:\n\n")fflush(stdin)scanf("%s",&n.tittle)rewind(fp)while(1){fread(&nn,sizeof(nn),1,fp)if(feof(fp))breakr=strcmp(n.tittle,nn.tittle)if(r==0){l=1break}}if(l==0){printf("\n")printf("对不起,未找到该图书\n")}else{printf("\n")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader)printf("\n")printf("确认删除图书信息?[是(y)/否(n)]\n\n")do{z=getche()}while(z!='n'&&z!='y')if(z=='n')breakelse{fp1=fopen("F:\\课程设计\\图书管理系统new.txt","wb")rewind(fp)while(1){fread(&nn,sizeof(nn),1,fp)if(feof(fp))breakr=strcmp(n.tittle,nn.tittle)if(r!=0)fwrite(&nn,sizeof(nn),1,fp1)}fclose(fp)fclose(fp1)fp=fopen("F:\\课程设计\\图书管理系统.txt","wb")fp1=fopen("F:\\课程设计\\图书管理系统new.txt","rb")while(1){fread(&nn,sizeof(nn),1,fp1)if(feof(fp1))breakfwrite(&nn,sizeof(nn),1,fp)}fclose(fp)fclose(fp1)}}printf("\n")printf("是否继续删除图书信息?[是(y)/否(n)]\n")do{x=getche()}while(x!='n'&&x!='y')if(x=='n')break}fclose(fp)system("cls")}//修改图书信息voidmodify_book(){FILE*fpstructbooknstructbooknnintl,rcharx,zfp=fopen("F:\\课程设计\\图书管理系统.txt","rb+")while(1){l=0printf("\n")system("cls")printf("请输入需要修改的图书名:\n\n")fflush(stdin)scanf("%s",&n.tittle)system("cls")rewind(fp)while(1){fread(&nn,sizeof(nn),1,fp)if(feof(fp))breakr=strcmp(n.tittle,nn.tittle)if(r==0){l=1break}}if(l==0){printf("\n")printf("对不起,未找到该图书信息\n\n")}else{printf("\n")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader)printf("请依次修改图书信息\n\n\n")fflush(stdin)scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader)fseek(fp,sizeof(nn),1)fwrite(&n,sizeof(nn),1,fp)}printf("\n")printf("是否继续修改用户信息[y/n]?\n\n")do{x=getch()}while(x!='n'&&x!='y')if(x=='n')break}fclose(fp)system("cls")}//借书voidborrow_book(){FILE*fpstructbooknstructbooknncharx,zintl,rfp=fopen("F:\\课程设计\\图书管理系统.txt","rb+")while(1){l=0system("cls")printf("\n")printf("请输入需要借阅的图书名:\n")fflush(stdin)scanf("%s",&n.tittle)rewind(fp)while(1){fread(&nn,sizeof(nn),1,fp)if(feof(fp))breakr=strcmp(n.tittle,nn.tittle)if(r==0){l=1break}}if(l==0){printf("\n")printf("对不起,未找到该图书。\n")}else{printf("\n")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader)printf("\n")fflush(stdin)printf("请输入图书信息并修改在库状态及借阅者信息")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader)fseek(fp,sizeof(nn),1)fwrite(&n,sizeof(nn),1,fp)}printf("\n")printf("是否继续借书?[是(y)/否(n)]\n\n")do{x=getch()}while(x!='n'&&x!='y')if(x=='n')break}fclose(fp)system("cls")}//还书voidreturn_book(){FILE*fpstructbooknstructbooknncharx,zintl,rfp=fopen("F:\\课程设计\\图书管理系统.txt","rb+")while(1){l=0system("cls")printf("\n")printf("请输入需要借还的图书名:\n")fflush(stdin)scanf("%s",&n.tittle)rewind(fp)while(1){fread(&nn,sizeof(nn),1,fp)if(feof(fp))breakr=strcmp(n.tittle,nn.tittle)if(r==0){l=1break}}if(l==0){printf("\n")printf("对不起,未找到该图书。\n")}else{printf("\n")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")printf("%s%s%s%s%s%s%s%s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader)printf("\n")fflush(stdin)printf("请输入图书信息并修改在库状态\n\n")printf("****************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")scanf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader)fseek(fp,-(int)sizeof(nn),1)fwrite(&n,sizeof(nn),1,fp)}printf("\n")printf("是否继续还书?[是(y)/否(n)]\n")do{x=getche()}while(x!='n'&&x!='y')if(x=='n')break}fclose(fp)system("cls")}//浏览voidscan_book(){FILE*fpcharx,zstructbooknfp=fopen("F:\\课程设计\\图书管理系统.txt","rb")rewind(fp)system("cls")while(1){fread(&n,sizeof(n),1,fp)if(feof(fp))breakelse{printf("********************************************\n")printf("编号书名作者出版社出版时间价格状态借阅者\n")printf("\n")printf("%s%s%s%s%s%s%s%s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader)printf("\n")}}printf("\n")printf("回到主菜单请按回车")do{x=getche()}while(x!='\r')if(x=='\r'){fclose(fp)system("cls")}}