C语言图书管理信息系统

Python018

C语言图书管理信息系统,第1张

借书的限制:教师180天,借15本;学生120天,借10本

图书的信息:      书的编号号,书名,作者,书的种类,书的总量以及书的剩余量

学生/教师信息:   学号/工号(4位数字字符),姓名,借书日期,还书日期(以此判定是否超出有效期)

(一)、查询:(无条件或有条件指按所有字段查询)

一、单链表上实现图书信息管理

利用链表结构实现图书存储

二 、二叉排序树或平衡树上实现图书信息管理

利用二叉排序树或平衡树实现图书的存储

三、B_树的操作(手工题)

插入、删除操作:

从空的3阶B_树开始,依次插入20,30,50,52,60,68,70,10,80,90,40,75。画出建树过程,然后分别画出删除50,60,10,75,20的B_树状态。

1.课程设计的题目内容要求

2.数据结构的设计思想和任务的总体结构

链接: https://pan.baidu.com/s/11BBC4ec7x3l62u83lJeGpw

提取码:1234

#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")}}